コンテンツにスキップ

モジュール XXII — health、SLA とアップタイム

モジュール XXII は、estate の AI コンポーネントについて 3 つの問いに答える — 何が healthy で、何が劣化またはダウンしているか、そして何が何に依存するか。それは エージェントと MCP サーバーの信頼性に限定されており、ホストやインフラ全般の health ではない。このページは、このモジュールが何を測定し、何を実体化し、その正直な 端がどこにあるかのリファレンスである。

XXII はコアの消費者であり、プローバ(探査器)ではない。顧客のインフラへ ソケットを開くことはコネクタの関心事であり、封印された観測セットに health の種別は 存在しない。したがって health は、モジュールが証明できるシグナルから導出される:

  • Liveness(受動)。 MCP サーバーに接触するセッションやエージェント — または 行動するエージェント — は、その対象が生きている証拠である。これは対象の last-seen マーカーを更新し、依存関係エッジを畳み込む。
  • 能動プローブの結果。 外部のヘルスチェッカーまたはエージェント自身が、チェック ごとのレポートエンドポイントに結果を投稿する — 「ヘルスチェック / OTEL メトリクス」の 正直な取り込み経路。
  • Staleness(陳腐化)。 既知の対象が、期待されるケイデンス内で見られなくなること 自体がシグナルである。バックグラウンドのスイープがそれを degraded に、次いで down に遷移させ、インシデントを開く。スイープは劣化させるかダウンとマークする だけである。回復はもっぱら実際の liveness から来るため、新規に作成された チェックが誤った回復を発することは決してない。

このモジュールは 4 つのエンティティを所有する。health check は、オペレータが 宣言した監視対象(エージェントまたは MCP サーバー)で、期待されるケイデンスと SLA ターゲットを持ち、対象の現在のスナップショット状態 — healthydegradeddownunknown — を運ぶ。health event は、アップタイムと SLA が再構成される追記専用の 遷移台帳であり、実行中のカウンタとして保存されることは決してない。health incident は、劣化またはダウンした期間の open→resolved のライフサイクルで、対象ごとに 1 つの開いたインシデントが強制される。health dependency は自動発見される origin → target エッジ — 依存関係マップで、冪等に蓄積される。

health は宣言されたチェックに対してのみ実体化される。生きていると観測されたが 宣言されたチェックがない対象は、依存関係マップ上で正直に observed として提示される — 生きているのを見たが、health は測定していない — これは healthy(宣言された チェックがシグナルした)とも、unknown(名前はあるが liveness の証拠がない)とも異なる 状態である。本製品は、計算していない「測定済み healthy」状態を決して捏造しない。 XXII はまた、対象がコア id である場合に、対象の現在状態をコアの HealthStatus エンティティにミラーリングし、他のプレーンがエージェントや MCP の health を読めるように する。

XXII は、受動 liveness と依存関係マップのためにバスから edge.observed を消費し、加えてその API に届く能動プローブのレポートを消費する。それは生成するが、 配信しない。down、degraded、recovered、SLA-breach のシグナルは、最小データの FindingReport として finding.reported チャネルに発行される — これは モジュール XV(通知) が Slack、PagerDuty、 SIEM へルーティングする製品全体のアラートストリームである。XXII は決して配信せず、 自身の検出結果を購読することも決してない。