運用 2026-08-20 ⏱ 約 20 分

監視設計入門 — 目的からSLI定義まで

監視の目的を「意思決定」と捉え直し、特定のツールに依存しない監視設計の進め方を、全体像・設計原則・ユーザー影響シナリオの洗い出し・SLI定義という順序で入門者向けに整理する。

Read in: en
監視設計入門 — 目的からSLI定義まで

監視を「監視ツールで何を拾うか」から考え始めると、アラートは増えるのに判断には使えない、という状態に陥りやすい。この記事では監視の目的を意思決定と捉え直し、特定のツールやシステムに依存しない監視設計の進め方を、全体像・設計原則・シナリオ洗い出し・SLI定義という順序で整理する。

監視の目的

監視の目的は検知そのものではなく意思決定である。一般に監視の目的として語られる次の4つのユースケースは、いずれも観測をもとに誰かが次の行動を決めることで初めて価値になる。

意思決定として具体化すると、監視システムは次の3つの問いに答える存在である。

  1. 今、人を呼ぶべきか — アラート
  2. 何が起きているか — 状況把握(ダッシュボード)
  3. なぜ起きたか — 調査・事後分析(テレメトリの探索)

この3つは要求特性が異なるため、混ぜて設計しない(混同がノイズとアラート疲れの最大要因になる)。以降の設計では、この3つの問いのどれに答えるためのものかを常に区別して進める。

スコープ

本記事は監視の入門として、監視の全体像と設計の進め方を、特定のツールや特定のシステムに依存しない形で一通り把握できることを目指す。用語や分類は一般に確立された定義(OpenTelemetry・Google SRE本・ITIL 4・ISO/IEC 27001/27002など)に基づく(「監視の全体像」を参照)。本記事は「測れる状態を作る」(SLI定義と計測開始)までを扱う。

監視の全体像

監視の全体像は「何を材料にするか(データの型)」「どこで測るか(計測位置)」「何を測るか(指標)」の3つの軸で押さえられる。加えて、イベント・アラートや監査監視といった運用・セキュリティの用語も、確立された標準に対応づけておく。なお「死活監視・性能監視」といった分類を定めた単一の規格は存在しない(業界慣習の語彙である)ため、以下は確立された定義体系に基づいて整理する。

データの型 — OpenTelemetry(CNCFプロジェクトであり、計装の事実上の標準)のシグナル定義に従う。

監視の主材料となるのはこの3つである(OpenTelemetryはこのほかに、コンテキストを伝播するBaggageもシグナルと位置づけ、Profilesをシグナルとして開発中である)。アラートやダッシュボードはシグナルではなく、出力形態である(テレメトリ→判定・可視化→通知)。

計測位置 — Google SRE本の定義に従う。

人を呼ぶ根拠にできるかは計測位置ではなく、症状を捉えているかで決まる(「設計原則」の原則1)。実務では、ロードバランサで測ったエラー率のようにホワイトボックス計測が症状を捉えることも多い。

何を測るか — 4大シグナル(レイテンシ・トラフィック・エラー・飽和度)を最小セットとする(Google SRE本)。リクエスト側の整理にはRED(Rate/Errors/Duration)、リソース側にはUSE(Utilization/Saturation/Errors)を補助的に使う。具体的なメトリクスに落とすと次のとおり。

対象 フレーム 見るメトリクスの例
アプリケーション(リクエストを受けるもの) RED リクエスト数/エラー率/応答時間の分布(p95・p99)。加えてスレッドプール・コネクションプールなどの飽和度
システムリソース USE CPU・メモリ・ディスク・ネットワークそれぞれの使用率/飽和度/エラー

運用・セキュリティの用語 — イベント・アラートは、ITIL 4の「監視とイベント管理(Monitoring and Event Management)」プラクティスの定義に基づく。ITIL 4はイベントを「サービスや構成要素(CI)の状態変化のうち、運用上意味を持つもの」と定義する。セキュリティ・監査の監視は、ISO/IEC 27002:2022の管理策に対応づける(8.15ログ取得〈Logging〉、8.16監視活動〈Monitoring activities〉)。これらの管理策はISO/IEC 27001:2022附属書Aから参照される。

設計原則

設計判断で迷ったときの拠り所となる原則を、「何を・どこで・どう測るか」の3つの問いに対応させて1つずつ定める。いずれも「監視の目的は意思決定である」ことからの帰結である。

  1. 何を測るか — 症状を第一の計測対象にする:「ユーザーが困っているか」に直接答える計測を最優先する。原因側(CPU・ディスクなど)の計測は予防・調査の補助とし、放置すれば確実に症状に至るもの(枯渇予測・証明書期限など)は予兆として計測に含める
  2. どこで測るか — ユーザーに近い側で測る:計測点はユーザーに近いほど症状を正しく捉える。また計測経路は監視対象自身に依存させない(対象が止まると計測も止まる構成を避ける)
  3. どう測るか — 失敗の型に合わせて計測を設計する:エラー・遅延(顕在的失敗)はリクエストの計測で、成功に見えて中身が誤っている(暗黙的失敗)は整合性検証で捕らえる。検知手段は失敗の型から導き、両方の型をカバーする

前提情報を揃える

設計を始める前に、監視対象を説明できる状態を作る。対象を知らないまま設計すると、シナリオの洗い出しが浅くなり、計測点の選択(原則2)も誤る。揃えるものは次の4つ。

最新の資料がなければこの時点で作る。監視設計の過程で構成図が初めて描かれることは珍しくなく、それ自体に価値がある。

ユーザー影響シナリオの洗い出し

設計の起点は「ユーザーに起きたら困ること」の一覧である。監視項目やメトリクスからではなくユーザー影響から出発することで、症状ベース(原則1)の設計が自然に導かれる。洗い出しの要領は次の3点。

この段階では想定原因を深追いしない。「なぜ起きるか」を考え始めると原因ベース設計に引き戻され、列挙も発散する。原因の特定は調査用テレメトリの役割である。

SLI定義

SLI(Service Level Indicator)は、シナリオごとに「ユーザーが困っているか」を数値で答える指標である。本数は3〜5本に絞り、定義にあたっては次の4点を守る。

監視設計の例

「ユーザー影響シナリオの洗い出し」と「SLI定義」を架空のECサイトの注文機能に適用し、監視設計の成果物のイメージを示す。

まずユーザー影響シナリオの一覧(洗い出しの成果物)。

# シナリオ 深刻度
S1 注文が完了できない(エラー・タイムアウト) 顕在的
S2 注文完了までが遅い 顕在的
S3 成功と表示されたが、実際には注文が受け付けられていない 暗黙的
S4 誤った金額・内容で注文が確定する 暗黙的

次にシナリオ→SLIの対応表(SLI定義の成果物)。仕様と実装を分けて記述する。

SLI 仕様(計測手段非依存) 実装(計測点・判定・母集団) 守るシナリオ
注文成功率 注文確定要求のうち、正しく受理された割合 ロードバランサのアクセスログで5xx・タイムアウトを失敗と判定。母集団=注文確定リクエスト全件 S1
注文レイテンシ 注文確定要求のうち、2秒以内に応答した割合 同じ計測点で応答時間を記録し、p95/p99も保持 S2
注文整合率 成功と表示された注文のうち、注文データが正しい内容で存在する割合 注文完了イベントログと注文データベースを5分ごとに突合 S3、S4

分解軸としてテナント・決済手段・クライアント種別をラベルで持たせる。SLIは3本に収まっており、各SLIは定義でき次第計測を開始してベースラインを蓄積する。ここまでが監視設計のアウトプットであり、この先(閾値・通知・対応手順)はアラート設計として検討を進められる。

GQMアプローチ

ここまでの流れ(目的→ユーザー影響シナリオ→SLI)は、GQM(Goal-Question-Metric)という目標駆動の計測フレームワークを監視に当てはめたものと見なせる。GQMはVictor BasiliとDavid Weissが提唱し(1984年)、のちにBasili・Caldiera・Rombachが整理した、ソフトウェアの品質を測る考え方である。計測を次の3レベルで定義する。

定義はGoalからMetricへと具体化し、解釈は逆にMetricからGoalへと積み上げる。要点は、すべての指標が問い(=目標)に紐づくことである。目標に結びつく指標だけを残せば、目的のない計測がノイズやアラート疲れになるのを避けられる。これは、指標ではなく症状(ユーザー影響)を起点にするという原則1と重なる。

本記事の成果物は、GQMの各レベルにそのまま対応する。

graph TD G["Goal(目標): 注文機能の信頼性を保つ"] Q1["Question(質問): 成功しているか"] Q2["Question(質問): 十分速いか"] Q3["Question(質問): 整合しているか"] M1["Metric(SLI): 注文成功率"] M2["Metric(SLI): 注文レイテンシ"] M3["Metric(SLI): 注文整合率"] G --> Q1 G --> Q2 G --> Q3 Q1 --> M1 Q2 --> M2 Q3 --> M3
GQM 本記事での対応 ECサイトの例
Goal(目標) 監視の目的・守りたい信頼性 注文機能の信頼性を保つ
Question(質問) ユーザー影響シナリオ 注文は成功しているか/十分速いか/整合しているか
Metric(指標) SLI 注文成功率/注文レイテンシ/注文整合率

Goalが曖昧だと後続の問いや指標もぶれる。Basiliらの目標テンプレート「〈対象〉を、〈目的〉のために、〈品質特性〉の観点で、〈立場〉の視点から評価する」に沿って言語化しておくとよい。ただしGQMは目標を起点とするため、掲げた目標が示唆しない失敗は取りこぼす。顕在的・暗黙的の2つの型からシナリオを洗い出す作業(前述)と併用して網羅性を補うとよい。

参考

Tags: 監視 信頼性 SLI
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事