mcpField
O
omni-resilience

omni-resilience

github.com/diegosouzapwクラウド・DevOps82.6k902 回インストール今日更新
リポジトリ

omni-resilience について

omni-resilience は、OmniRoute とプロバイダーの状態を監視する運用担当者向けスキルです。サーキットブレーカー、レイテンシ、クォータ、予算に加え、圧縮結果キャッシュの統計を確認できます。

主な機能

  1. 01システム状態とサーキットブレーカーの確認
  2. 02プロバイダーの p50、p95、p99 レイテンシ監視
  3. 03クォータと予算上限の確認
  4. 04圧縮結果キャッシュ統計の確認

活用シーン

  1. 01プロバイダー障害やクールダウンの調査
  2. 02レイテンシ、使用量、クォータの監視
  3. 03予算上限への到達状況の確認

MCP 対応

OmniRoute を MCP サーバーとして使う場合、MCP ツールからヘルス情報、プロバイダーメトリクス、セッション情報、クォータを確認できます。MCP ツール呼び出しの監査ログも記録されます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/diegosouzapw/omniroute --skill omni-resilience

インストール後、Claude Code で/omni-resilienceを入力して読み込まれたか確認します。

詳細

概要

プロバイダーのヘルス状態、サーキットブレーカーの状態、p50/p95/p99 のレイテンシメトリクス、予算ガードのアラートを監視します。接続のクールダウンとモデルのロックアウトをリアルタイムで確認できます。

認証

すべてのリクエストには、有効な Bearer トークンまたはセッション Cookie が必要です。POST /api/auth/login でトークンを取得するか、ローカル開発用に REQUIRE_API_KEY=false を設定してください。

エンドポイント

GET /api/monitoring/health

システムのヘルスチェック

稼働時間、メモリ、サーキットブレーカー、レート制限などのシステムのヘルス情報を返します。

curl http://localhost:20128/api/monitoring/health \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/monitoring/compression

圧縮結果メモの統計情報を取得します

プロセス内の圧縮結果メモの可観測性スナップショットです。サイズ、容量、累積のヒット数/ミス数/ヒット率に加え、1 分/5 分/15 分/1 時間の期間別レートを含みます。軽量で、頻繁なポーリングを想定した GET /api/monitoring/health の補完機能です(DB やプロバイダーの読み取りは行いません)。Cache-Control: no-store, no-cache, must-revalidate を付けて送信されます。カウンターはプロセスの再起動時にリセットされます。

curl http://localhost:20128/api/monitoring/compression \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/provider-metrics

プロバイダーのメトリクスを取得します

curl http://localhost:20128/api/provider-metrics \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

ペイロード

リクエスト/レスポンスのスキーマの詳細については、完全な OpenAPI 仕様を GET /api/openapi/spec または docs/openapi.yaml で確認してください。

OmniRoute — 監視とヘルス状態

OMNIROUTE_URL と OMNIROUTE_KEY が必要です。セットアップについては、エントリーポイントの SKILL を参照してください。

システムのヘルス状態

curl $OMNIROUTE_URL/api/health \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

稼働時間、メモリ、アクティブな接続、サーキットブレーカーの状態、レート制限の状態、キャッシュ統計情報を返します。

認証なしでの簡易チェック:

curl $OMNIROUTE_URL/api/health
# → {"ok":true}

プロバイダーごとのサーキットブレーカー

サーキットブレーカーは、障害が発生しているプロバイダーにトラフィックが送られるのを防ぎます。

状態:CLOSED(正常)、OPEN(ブロック中)、HALF_OPEN(プローブモード — 自動復旧)。

curl $OMNIROUTE_URL/api/monitoring/health \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

レスポンスには、プロバイダーごとの状態と resetAt タイムスタンプを含む circuitBreakers 配列が含まれます。

プロバイダーごとのメトリクス(p50/p95/p99)

curl $OMNIROUTE_URL/api/providers/metrics \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

プロバイダーごとのレスポンス形式:

{
  "provider": "anthropic",
  "requests": 1247,
  "successRate": 0.994,
  "latency": { "p50": 820, "p95": 2100, "p99": 3800 },
  "circuitState": "CLOSED",
  "tokensUsed": 2847000
}

MCP 経由(OmniRoute が MCP サーバーの場合)

omniroute_get_health            → full system health snapshot
omniroute_get_provider_metrics  → p50/p95/p99 + circuit state per provider
omniroute_get_session_snapshot  → cost, tokens, errors for current session
omniroute_check_quota           → quota balance + percent remaining + reset time
omniroute_db_health_check       → diagnose + auto-repair database drift

クォータの確認

curl $OMNIROUTE_URL/api/quota \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

プロバイダー/アカウントごとの使用済みトークン数と総トークン数、およびリクエスト数を、resetAt タイムスタンプとともに返します。

予算ガード(支出上限)

セッションの支出上限を設定します。上限に達すると、リクエストが制限またはブロックされます。

curl -X POST $OMNIROUTE_URL/api/budget/guard \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "limitUsd": 5.00,
    "action": "degrade",
    "degradeTo": "openai/gpt-4o-mini"
  }'

action のオプション:

  • degrade — 上限に達したとき、より安価なモデルに切り替えます
  • block — 上限に達したとき、429 を返します
  • alert — リクエストを続行し、X-Budget-Warning ヘッダーを追加します

MCP 監査ログ

OmniRoute はすべての MCP ツール呼び出しを mcp_audit テーブルに記録します。API 経由でクエリできます。

curl "$OMNIROUTE_URL/api/mcp/status" \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

サーバーの状態、ハートビート、最近の監査アクティビティの概要を返します。

エラー

  • ヘルスエンドポイントで 503 → OmniRoute の起動中です。5 秒後に再試行してください
  • サーキットブレーカーが OPEN → プロバイダーは一時的にブロックされています。自動復旧の時刻は resetAt で確認してください
  • 429 budget_exceeded → 予算ガードの上限に達しました。上限を引き上げるか、リセットをお待ちください

コメント