InfraGuard

サービス概要 — キュレーション型ライブボード

運用者がサービス(Web・データベース・セッション・プロキシ・Docker)を選んで優先度カードとして配置し、可用性ゲージとライブ時系列で監視するキュレーション型のライブサービスボードです。

概要 — 何をする画面か

サービス概要 は、サービス トップレベルメニューの最初の画面(/service)であり、稼働中のサービス(デーモン)のためのキュレーション型ライブ運用ボード です。運用者は注目したいサービスを自分で選び、優先度カード として配置します。各カードは種類ごとに異なるライブ指標を表示し、先頭(最優先)の web/db/session カードが 可用性ゲージ を駆動し、下部のストリップが選択カードの ライブ時系列 を描画します。

主な特徴:

このボードはデモ用の架空環境ではなく、すべて実データです。指標のソースは、コレクターがすでに投入しているテーブル、すなわち infr_web_metric・infr_db_metric・infr_redis_metric・infr_service(カタログ)です。

どんなときに使うか

画面構成

上部 KPI ストリップ

realKpi() が算出する全社サマリーです(30秒ポーリングで更新):

KPI 意味 ソース
Web トラフィック 登録済みウェブサービス全体の合計 RPS + 帯域 WebMetricService::kpi(dashboard())
DB 負荷 access=database コレクター全体の最新保存 QPS の合計 + 総接続数 DbCollectorService::latest()
Web 稼働率 24時間の可用性 WebProbeService::availabilityOrPassive()(能動プローブ優先)
レイテンシ プローブ応答の平均(ms) 同上
インシデント 直近7日間に発生したインシデント InfrIncident created_at ≥ now-7d

Web 稼働率とレイテンシは 能動的な合成プローブ を優先します。受動的な vts トラフィックカウンターだけでは、トラフィックのない障害・3xx の背後に隠れた 5xx・カウンターのリセットを誤診するため、ボードは WebProbeService の実 HTTP プローブ結果を使用します。プローブがまだ実行されていない(カバレッジがない)場合は、受動方式(web24h)にフォールバックします。

サービス可用性ゲージ

優先順で 先頭の web/db/session カード から描画します(この3種類がボードに1つもない場合はプレースホルダーのヒントを表示します)。

カード種別 ゲージ形状 中央の値 トーン規則
web 4分割のレスポンスコード・ドーナツ REQ(現在の RPS) 2xx=good · 3xx=info · 4xx=warn · 5xx=crit
database 接続飽和率(conn_pct)のアーク QPS ≥90 crit · ≥70 warn · それ以外 good
session ヒット率のアーク OPS ≥90 good · ≥70 warn · それ以外 crit

サービスボード(カードグリッド)

選択したサービスを 優先順 にカードとして配置します。各カードは種類ごとに異なる KPI セットを表示します:

種別 既定のデーモン ヘッダー(別名) 主な KPI
web nginx 代表ドメイン レイテンシ · RPS · オープンセッション(アクティブ接続数) · 24時間の累計リクエスト · エラー率
database mysql/mariadb/postgres/mongo コレクターの別名 QPS · 座席(使用中/最大) · 飽和率 · 実行中 · ロック(平均行ロック ms) · slow 累計 · 待機
session redis ノードの別名 OPS · ヒット率 · クライアント(現在のセッション数) · キー数 · 飽和率(メモリ使用率 %)
proxy software_key/proxy インスタンスの別名 依存関係(+N) · レイテンシ · リッスンポート
docker software_key/docker インスタンスの別名 依存関係(+N) · レイテンシ · リッスンポート

ライブサービス(下部の時系列)

系列を持つ選択カード(web/db/session)は、2列グリッド に SVG のエリア+ライン スパークとして描画されます。各グラフには時間軸を判別するための ルーラー(縦のグリッド線と 開始/中間/終了 の HH:MM ラベル)が付きます。上部の レンジ切替(1h · 6h · 1d) で表示ウィンドウを切り替えます(既定は 1h)。

ヘッダーのコントロール

使い方

1) サービスを選ぶ

  1. ボードヘッダーの [サービスを選択] / [サービスを追加] をクリックして選択モーダルを開きます。
  2. モーダルは利用可能なすべてのサービスを 種類別 にグループ化します(web → database → session → proxy → docker)。
  3. サービスをオン(✓)/オフに切り替えます。選択は即座にボードへ反映され、localStorage に保存されます。

初回訪問時の既定 = web・database・session それぞれの先頭項目が自動選択され、可用性ゲージがそのまま機能します。不要な場合はモーダルで選択を解除してください。

2) 優先度を調整する

3) 表示ウィンドウを変更する

// POST /service/series リクエスト例
{ "keys": ["web:12", "db:db@blue", "session:blue"], "range": "6h" }

カードキーの規約:

web:{infr_web_service.id}
db:{infr_collector.key}      例: db@blue
session:{node_alias}         例: blue
proxy:{infr_service.id}
docker:{infr_service.id}

4) 全画面の状況ボード

データソース

カード種別 ビルダー 実際のテーブル
web WebMetricService::dashboard() + WebProbeService::overlayStatus() infr_web_metric(vts カウンター) · infr_web_check(能動プローブ) · infr_web_service
database InfrCollector(access=database) + DbCollectorService::latest()/series() infr_db_metric · infr_collector
session RedisMetricService::dashboard() infr_redis_metric · infr_instance
proxy/docker InfrService(kind IN proxy,container) infr_service · infr_instance
KPI インシデント — infr_incident(直近7日間)

時系列のソース:

ステータストークン

トークン 意味
up 正常
degraded 劣化
down 障害(実際の接続/プローブの失敗)
pending 待機(判定保留。例: データ遅延)

DB カードの誤った赤表示の回避 — economy 収集モードでは、収集が一時的に遅れて最後のサンプルが5分以上前になると、statusOf は stale を理由に down を返します。DB 自体は正常なのに赤い警報が見えてしまうため、ボードは stale による down を pending へ降格 し、down は実際の接続失敗(ok=false)のときだけ維持します。さらに、ボードを見ているユーザーが在席している場合に限り、最後のサンプルが45秒以上前であれば ensureFresh(45) によりジャストインタイムで1回サンプリングします(スケジューラーがすでに収集中であれば接続を伴わない no-op)。またこのサンプラーは、リークを防ぐため finally ブロックで接続を破棄します。

アクセス権限

localStorage のキー:

infr:svcboard:sel:v1        選択したサービス key の配列(順序=優先度)
infr:svcboard:h:v1          ボード/ライブの高さスライダー値
infr:range:service-overview 下部時系列の range(1h/6h/1d)

トラブルシューティング・FAQ

ボードが空です。 ヘッダーの [サービスを追加] で注目したいサービスを配置してください。利用可能なサービスがまったくない場合(コレクターがまだデータを投入していない場合)、選択モーダルのグループが空に見えることがあります — まず コレクター の登録と収集パイプラインを確認してください。

可用性ゲージが表示されません。 ゲージには、優先順で先頭となる web/db/session カードが必要です。proxy/docker しか選んでいない場合はプレースホルダーのヒントが表示されます。web/db/session のカードを少なくとも1枚、前方に配置してください。

下部の時系列が空です。 系列を持つのは web/db/session カードだけで、proxy/docker は対象外です。また、選択したウィンドウ(1h/6h/1d)にソーステーブルのデータがない場合もグラフは空になります。

DB カードが赤いのに DB は正常です。 データ遅延の場合は pending(グレー/待機)へ降格されます。それでも down のままなら実際の接続失敗です — データベース 画面と、コレクター 配下の access=database コレクターの状態を確認してください。

リフレッシュしてもカードが残る/別の PC では違って見えます。 選択と並び順は、サーバー上のアカウント設定ではなくブラウザの localStorage が所有します。ブラウザ・端末ごとに独立しています。

5分のウィンドウが欲しいです。 現在の実装が提供するウィンドウは 1h · 6h · 1d です(既定 1h)。より短い観測には サーバー や データベース といった専用画面を使用してください。

関連項目

서비스 개요 — 큐레이션 라이브 보드
서비스 개요 — 큐레이션 라이브 보드