サービスモニターガイド
GIIPエコシステムで稼働するサービス・cronスクリプトのリアルタイム状態、健全性、実行履歴を1つの管理者画面で監視します。サマリーダッシュボードで全体像を把握し、リスト・フロー・トリガーの各ビューで個々のサービスを詳細に確認できます。
📋 概要
サービスモニターページは、GIIPエコシステムで稼働するcronスクリプト・エージェントワーカー・Azure Functionのリアルタイム状態を監視する管理者画面です。各サービスが最後に報告した状態(実行中/正常/エラー/未報告)、実行時刻、テレメトリ(成功・失敗・スキップなど)を表で表示し、上部のサマリーカードで全体の健全性を一目で把握できます。データはエージェントが時系列ストア(tKVS)に送信した状態レポートから取得され、この画面は運用者が「何が動き、何が止まっているか」を判断する管制画面です。
⚠️ この画面は管理者専用です。 アクセスには管理者レベル
uLevel >= 70が必要です。それ未満のユーザーはホームへリダイレクトされます。
🔍 画面構成
1. 上部ヘッダー
- ページタイトル/説明: 「サービスモニター」(ローカライズ済み)とサマリー説明。
- ビュー切替ボタン: リスト / フロー / トリガー の3ビューをトグルします。
- 更新ボタン: サービス状態を即時に再取得します(読込中はアイコンが回転)。リストビューは30秒ごと、フロー・トリガービューは60秒ごとに自動更新されます。
2. サマリーダッシュボード
上部の4枚のカードで全サービスの集計状況を表示します。
| カード | 意味 |
|---|---|
| 全体(Total) | 監視対象サービス/スクリプトの総数 |
| 実行中(Running) | 現在 RUNNING 状態で実行中のサービス数 |
| 正常(Healthy) | IDLE(正常待機)状態で報告したサービス数 |
| エラー(Error) | ERROR(失敗/異常)状態で報告したサービス数 |
3. リストビュー(サービス表)
各行が1つのサービス/スクリプトを表し、クリックで展開して詳細(サブタスク・指標)を確認できます。
| 列 | 説明 |
|---|---|
| Script Name | スクリプト/サービス名 |
| Migration | Azure Function移行状態(完了/保留/該当なし) |
| Hostname | レポートを送信したホスト |
| Status | 状態バッジ(RUNNING / IDLE / ERROR / UNKNOWN) |
| Last Execution | 最終実行時刻 |
| Telemetry | 成功・失敗・スキップ・強制終了などの実行指標 |
| Details | 展開(サブタスク・元レポートの確認) |
4. フロービュー
サービス間の依存関係とデータフローを可視化します(ServiceMonitorFlow)。どのサービスがどのサービスへ続くかをフロー図で確認します。
5. トリガービュー
登録済みトリガー(スケジュール)ごとの直近の実行状況と 超過(overdue) の有無を表で表示します。予定周期を過ぎてレポートがないトリガーを切り分けて確認できます。
🛠️ 状態チェックの方法
- 画面に入ったら、まず上部の サマリーカード でエラー(Error)件数を確認します。
- リスト ビューで状態バッジが
ERRORまたはUNKNOWN(レポートなし)の行を探します。 - 該当行をクリックして展開し、Last Execution / Telemetry / サブタスク を確認します — 最終実行時刻が古い、または失敗指標が高い場合は非稼働の候補です。
- 更新 ボタンで最新レポートを再取得し、一時的な遅延かどうかを確認します。
- トリガー ビューへ移り、予定周期を過ぎた(超過)トリガーがないか相互確認します。
💡 参考
- 状態値の意味:
RUNNING=実行中、IDLE=正常待機(サマリーの「正常」に集計)、ERROR=失敗、UNKNOWN=直近のレポートなし(エージェントがtKVSに状態を送信していない状態)。 - UNKNOWNが多い場合は、サービスが停止したというより、該当エージェント/スクリプトがテレメトリを報告できていない状態の可能性があります — まずエージェントの稼働可否を確認してください。
- 自動更新: リストは30秒、フロー・トリガーは60秒周期で自動更新されるため、値が周期的に変わることがあります。
- アクセス権限は propモード でページに
minLevel={70}がハードコードされているため、常にuLevel >= 70が必要です(メニュー設定値とは無関係)。
API参照
このページは3つのディスパッチコマンド(fetchAzureCommand 経由)でバックエンドと通信します。別途APIガイドがないため、要点をここに記載します。
| コマンド | 用途 | バックエンドSP |
|---|---|---|
ApiServiceMonitorGetStatus | サービス/スクリプト状態一覧の取得(サマリー・リストビュー) | pApiApiServiceMonitorGetStatusbyAK |
ApiServiceMonitorGetFlow | フロービューのノード/エッジ取得 | (フロー用SP) |
ApiServiceMonitorGetTriggerStatus | トリガービューのトリガー別実行状況取得 | pApiApiServiceMonitorGetTriggerStatusbyAK |
ApiServiceMonitorDelete | リストビューのサービス状態レコード1件を ksn で削除(ゴミ箱ボタン、確認モーダル必須)。ガード: 行の kFactor がサービスモニターの factor の場合のみ削除し、それ以外は 403 を返す。ペイロード { ksn }。(giip #1214) | pApiApiServiceMonitorDeletebyAK |
- レスポンスは結果セットの配列形式(例:
[データ, 状態])で、クライアントは最初の(データ)配列を読み取ります。 - 状態フィールド
RstVal = 200は正常、RstVal = 401はセッション期限切れ/未認証(再ログインが必要)を意味します。
トラブルシューティング
| 症状 | 原因 | 解決 |
|---|---|---|
| アクセス直後にホームへ戻される | uLevel が70未満 | 管理者アカウント(レベル70+)でログインしてください。 |
| 「セッション期限切れ」/401エラー | 認証トークンの期限切れまたは欠如 | 再ログイン後、更新を押してください。 |
表の大半が UNKNOWN | エージェント/スクリプトがtKVSに状態を報告していない | 該当エージェントの稼働可否とテレメトリ報告経路を確認してください。 |
| トリガービューが全て「超過(赤)」 | トリガーのkfactorが空でtKVSレポートと結合できない構造的な誤検知の可能性 | 個々のトリガーの直近レポート有無を確認し、実際に「止まった」トリガーのみ対処してください。 |
| 値が変わり続ける | 30秒/60秒の自動更新が動作している | 正常です。特定時点を固定して見たい場合は値をキャプチャしてください。 |
| 上部のガイドボタン(📖)が表示されない | ガイドマッピング未反映(旧バージョン配信) | このガイドが配信・インデックス化されると表示されます。 |
バージョン: 1.0
最終更新: 2026-08-04
ソースファイル: giipv3/public/help/service-monitor.ja.md