監視ダッシュボード設計事例

2026.02.26
監視ダッシュボード設計事例

監視ダッシュボード設計事例

SLOから逆算するレイヤ設計:SLO→症状→原因→行動

ダッシュボードは「見る」ためではなく「判断する」ための道具です。最初に据えるべきはSLO(例:APIの可用性99.9%、p95レイテンシ300ms以下、5xx比率0.1%未満)。この目標から逆算して、上から順に「ユーザー影響→症状→原因→行動(Runbook)」の列を並べると迷いが減ります。

4つの列で迷子を防ぐ

  • 列1:ユーザー影響(SLO、エラーバジェット燃焼率、外形監視成功率)
  • 列2:症状(p95/p99レイテンシ、5xx/4xx比率、タイムアウト数、キュー遅延)
  • 列3:原因候補(DB接続プール使用率、キャッシュヒット率、スロークエリ数、GCポーズ、スレッド/FD消費、CPU/メモリ/ディスクIO/ネットワーク飽和)
  • 列4:行動(直リンクのRunbook、フェイルオーバー/スケール手順、Feature Flagやデプロイのロールバック)

トップ行には「SLO達成率」と「エラーバジェット燃焼率」を大きく配置。次にAPI別のp95レイテンシ、5xx比率、外形監視の結果。3行目でRDSやRedis、メッセージキューの健全性を並べ、最下段にデプロイや設定変更のアノテーションを重ねます。判断の起点が常にSLOになるよう視線誘導を設計します。

1画面で“判断”まで行けるUIの作り方

時間軸と文脈の統一

  • 時間範囲は「5分/1時間/24時間」をワンクリック。全パネルで同期。
  • デプロイ、Feature Flag、DBマイグレーションのアノテーションを常時表示。
  • 7日移動中央値や前週同時刻と比較のバンドを重ね、昼夜・曜日変動を見誤らない。

最初に見る3枚+深掘りリンク

  • パネル数は1画面12枚以内。左上から「SLO/バジェット/外形監視」。
  • 色は「緑/黄/赤」。赤の定義は“5分以上継続”など時間条件つきにする。
  • 各パネル右上にRunbookへの深掘りリンク。例:「5xx急増→WAF/アプリ/依存先の切り分け手順」。

アラートノイズを減らす設計

  • 閾値は平常時のp95+3σを目安に仮置きし、1週間で実測に合わせて調整。
  • 「変化率」条件(例:5分でレイテンシ2倍)を併用し、恒常的な高負荷と区別。
  • 「抑制ルール」:メンテナンス時はSLOを一時的に休眠。アノテーションで自動抑制。

AIの活用も現場では有効です。ChatGPTやClaudeでアラート説明文とRunbookの下書きを作成、CopilotでPromQLやログクエリの雛形を生成、Geminiで過去の類似インシデントを検索して再発防止策へつなげる、といった流れは実務に馴染みます。

データ取得と更新間隔の設計ポイント

収集方式と保持

  • Pull型(Prometheusなど)で15秒スクレイプを標準、外形監視やUptimeは5秒。
  • 高解像度は14日保持、以降は1分にロールアップして90日。容量計画は先に決める。
  • ビジネスKPIは60秒粒度で十分。SLOの算出は1分アグリゲーションで誤検出を防止。

メトリクス別の目安

  • APIレイテンシ/エラー:10〜15秒
  • CPU/メモリ/FD/接続数:15秒
  • ディスクIO/ネットワーク:30秒
  • DBスロークエリ/レプリケーション遅延:30〜60秒
  • キュー長/遅延:10秒

欠損値の扱いはゼロ埋めを避け、欠損は欠損として表示(線を切る)。可視化の補間で誤検知が起きがちなためです。権限設計は「閲覧は全員、編集は最小限、アノテーションは誰でも」を基本に、インシデントのタイムラインをダッシュボードに集約します。

身近な企業の失敗→改善:家具ECのダッシュボード再設計

従業員50名の家具EC「コジマ家具オンライン」。3台のWebサーバとRDS、Redis、決済ゲートウェイ連携という構成。ブラックフライデー前の障害で、カートAPIの5xxが12%に跳ね上がったのに、当時のダッシュボードはCPUとメモリのタイルが並ぶだけ。SLOもなく、デプロイ直後のスロークエリ増加に誰も気づけませんでした。アラートは20件以上同時に鳴り、何から手をつけるか判断できず復旧に42分。

改善ではSLOを「可用性99.9%、p95レイテンシ300ms」に設定し、ダッシュボードを4列で再構成。1行目はSLO、エラーバジェット燃焼率、外形監視。2行目に「カート/在庫/決済」各APIのp95/5xx。3行目にRDSの接続プール使用率、スロークエリ数、Redisヒット率とp99レイテンシ、メッセージキュー長。4行目にGitのコミットID、CDのデプロイ履歴、Feature Flag変更のアノテーションを集約。

閾値は「DB接続プール使用率90%超が5分継続で赤」「Redis p99 5ms超で黄」「キュー長500超で赤」。アラートはSLO関連と「変化率」だけに絞り、他はダッシュボード観察用に降格。RunbookはChatGPTに既存手順を投げて体裁を整え、Claudeで障害ログからタイムライン要約を自動生成、CopilotでPromQLの微調整、Geminiで過去の似た事例を検索して対策に反映しました。その結果、MTTDは18分→3分、MTTRは42分→12分、当日の売上損失は70%減。現場の体感としても「どこを見るか」が即座に分かるようになりました。

運用に落とすための最終チェックリスト

  • SLOとエラーバジェットが左上に常設されている
  • ユーザー影響→症状→原因→行動の順で視線が流れる
  • パネルは12枚以内、色と単位が統一されている
  • アノテーション(デプロイ/Flag/メンテ)が全パネルで同期
  • 閾値は時間条件つき、変化率検知を併用、ノイズは抑制
  • Runbookとチケット起票が各パネルから1クリック
  • 高頻度メトリクスは15秒、保持とロールアップ方針が明文化
  • インシデント後にダッシュボードをレビューし、恒久改善を反映

サーバ監視運用事業の現場では、ダッシュボードは24/365の意思決定インターフェースです。SLOから逆算したレイヤ、1画面で判断できるUI、更新間隔と保持の納得感、そして失敗からの学びを仕組みに組み込むこと。これらが回り始めると、監視は「鳴るか鳴らないか」から「素早く正しく手を打つ」運用へと自然に進化します。