diagnostics-prometheus 插件公开诊断指标。它会监听可信诊断以及
内部标记、由调度器负责的诊断事件(队列、内存和
会话恢复信号),并在以下地址提供 Prometheus 文本端点:
text/plain; version=0.0.4; charset=utf-8,即标准的
Prometheus 展示格式。
有关跟踪、日志、OTLP 推送和 OpenTelemetry GenAI 语义属性,请参阅 OpenTelemetry 导出。
快速开始
1
安装插件
2
启用插件
- 配置
- CLI
3
重启 Gateway 网关
HTTP 路由会在插件启动时注册,因此启用后需要重新加载。
4
抓取受保护的路由
发送操作员客户端所使用的同一 Gateway 网关身份验证信息:
5
接入 Prometheus
diagnostics.enabled 默认为 true;仅在受到严格约束的环境中将其设为 false。如果它为 false,插件仍会注册 HTTP 路由,但不会有诊断事件流入导出器,因此响应为空。导出的指标
对于模型调用指标,
observation_unit="request" 衡量一次可观测的
提供商请求。observation_unit="turn" 衡量一次合成的 Claude Code
或 Codex CLI 智能体轮次,其中可能包含多个隐藏的提供商请求。
比较延迟时,请将这些序列分开。
标签策略
有界、低基数标签
有界、低基数标签
Prometheus 标签保持有界且低基数。导出器不会发出原始诊断标识符,例如
runId、sessionKey、sessionId、callId、toolCallId、消息 ID、聊天 ID 或提供商请求 ID。标签值会被脱敏,并且必须符合 OpenClaw 的低基数字符策略。不符合该策略的值将根据指标替换为 unknown、other 或 none。看起来像带作用域的智能体会话键的标签也会替换为 unknown。序列上限和溢出计数
序列上限和溢出计数
导出器将在内存中保留的时间序列总数限制为 2048 个,此限制涵盖计数器、仪表和直方图。超过此上限的新序列会被丢弃,并且每次都会使
openclaw_prometheus_series_dropped_total 增加 1。请监控此计数器;它是上游某个属性正在泄漏高基数值的明确信号。导出器绝不会自动提高上限;如果该值持续上升,应修复来源,而不是禁用上限。Prometheus 输出中绝不会出现的内容
Prometheus 输出中绝不会出现的内容
- 提示词文本、响应文本、工具输入、工具输出、系统提示词
- Talk 转录文本、音频载荷、通话 ID、房间 ID、移交令牌、轮次 ID 和原始会话 ID
- 原始提供商请求 ID(如适用,仅在 span 上使用有界哈希值——绝不会用于指标)
- 会话键和会话 ID
- 主机名、文件路径、密钥值
PromQL 配方
在 Prometheus 与 OpenTelemetry 导出之间进行选择
OpenClaw 独立支持这两种接口。你可以运行其中任意一种、同时运行两种,或两种都不运行。- diagnostics-prometheus
- diagnostics-otel
- 拉取模型:Prometheus 抓取
/api/diagnostics/prometheus。 - 无需外部收集器。
- 通过常规 Gateway 网关身份验证进行认证。
- 该接口仅包含指标(不包含追踪或日志)。
- 最适合已标准化采用 Prometheus + Grafana 的技术栈。
故障排查
响应正文为空
响应正文为空
- 检查配置中的
diagnostics.enabled是否未设置为false(其默认值为true)。 - 使用
openclaw plugins list --enabled确认插件已启用并加载。 - 生成一些流量;计数器和直方图只有在至少发生一个事件后才会输出行。
401 / 未授权
401 / 未授权
该端点需要 Gateway 网关操作员权限范围(
auth: "gateway" 和 gatewayRuntimeScopeSurface: "trusted-operator")。请使用 Prometheus 访问任何其他 Gateway 网关操作员路由时所用的相同令牌或密码。不提供公开的未认证模式。`openclaw_prometheus_series_dropped_total` 持续上升
`openclaw_prometheus_series_dropped_total` 持续上升
某个新属性正在导致序列数超过 2048 个的上限。检查最近的指标,查找基数异常高的标签,并从源头修复。导出器会有意丢弃新序列,而不是静默重写标签。
重启后 Prometheus 显示陈旧序列
重启后 Prometheus 显示陈旧序列
该插件仅在内存中保存状态。Gateway 网关重启后,计数器会重置为零,仪表则从下一次报告的值重新开始。使用 PromQL
rate() 和 increase() 可正确处理重置。相关内容
- 诊断导出 — 用于支持包的本地诊断 zip 文件
- 健康状态和就绪状态 —
/healthz和/readyz探针 - 日志 — 基于文件的日志记录
- OpenTelemetry 导出 — 通过 OTLP 推送追踪、指标和日志