mcpField
O
omni-resilience

omni-resilience

github.com/cheaper-inference云与 DevOps82.3k1.0k 次安装今天更新
代码仓库

关于 omni-resilience

omni-resilience 是面向运维人员的 OmniRoute 监控与健康检查技能。它通过 API 端点报告服务商健康状况、延迟百分位、断路器、配额和预算保护状态,并说明相关 MCP 工具。

主要功能

  1. 01检查系统和服务商健康状况
  2. 02查看断路器状态
  3. 03查看服务商延迟百分位
  4. 04监控配额余额和重置时间
  5. 05配置预算保护操作

适用场景

  1. 01诊断服务商故障和延迟
  2. 02检查断路器是否阻断流量
  3. 03跟踪配额用量和重置时间
  4. 04设置超出消费限额时的处理方式

MCP 相关

将 OmniRoute 用作 MCP 服务时,可提供健康状况、服务商指标、会话快照、配额检查和数据库健康检查工具。技能还介绍了通过 API 查询 MCP 服务状态和审计活动。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cheaper-inference/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

获取压缩结果备忘录统计信息

进程内压缩结果备忘录可观测性快照——包含大小、容量、生命周期命中数/未命中数/命中率,以及 1m/5m/15m/1h 时间窗口的速率。轻量级(不访问数据库,也不读取提供商数据),可配合 GET /api/monitoring/health 使用,适合频繁轮询。响应会附带 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"

响应包含 circuitBreakers 数组,其中包含各提供商的状态和 resetAt 时间戳。

各提供商指标(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 → 已达到预算防护限额;提高限额或等待重置

评论

支持 Markdown