OpenClaw 通过官方 diagnostics-otel 插件使用 OTLP/HTTP(protobuf) 导出诊断数据,支持任何接受 OTLP/HTTP 的 collector 或后端(Grafana、Datadog、Honeycomb、New Relic、Tempo 等)。

快速开始

openclaw plugins install clawhub:@openclaw/diagnostics-otel
openclaw plugins enable diagnostics-otel
{
  plugins: {
    allow: ["diagnostics-otel"],
    entries: { "diagnostics-otel": { enabled: true } },
  },
  diagnostics: {
    enabled: true,
    otel: {
      enabled: true,
      endpoint: "http://otel-collector:4318",
      protocol: "http/protobuf",
      serviceName: "openclaw-gateway",
      traces: true,
      metrics: true,
      logs: true,
      sampleRate: 0.2,
      flushIntervalMs: 60000,
    },
  },
}

注意:protocol 目前仅支持 http/protobuf,grpc 被忽略。

导出信号

信号内容
Metricstoken 用量、成本、运行时长、消息流、Talk 事件、队列、会话状态、exec、内存压力
Traces模型调用、harness 生命周期、工具执行、exec、webhook/消息处理、上下文组装、工具循环
Logs结构化 logging.file 记录通过 OTLP 导出

配置参考

{
  diagnostics: {
    otel: {
      endpoint: "http://otel-collector:4318",
      tracesEndpoint: "...",   // 信号级别端点覆盖
      metricsEndpoint: "...",
      logsEndpoint: "...",
      headers: { "x-collector-token": "..." },
      sampleRate: 0.2,         // 根 span 采样率 0.0..1.0
      flushIntervalMs: 60000,  // 指标导出间隔(最小 1000ms)
      captureContent: {        // 默认全部关闭
        enabled: false,
        inputMessages: false,
        outputMessages: false,
        toolInputs: false,
        toolOutputs: false,
        systemPrompt: false,
      },
    },
  },
}

环境变量

变量用途
OTEL_EXPORTER_OTLP_ENDPOINT覆盖 diagnostics.otel.endpoint
OTEL_SERVICE_NAME覆盖 diagnostics.otel.serviceName
OTEL_SEMCONV_STABILITY_OPT_IN设为 gen_ai_latest_experimental 使用最新 GenAI span 属性
OPENCLAW_OTEL_PRELOADED设为 1 跳过 NodeSDK 生命周期(已有全局 SDK 时)

隐私模型

默认不导出原始内容:

  • 不含提示词、响应文本、工具输入/输出、系统提示
  • Span 仅携带有界标识符(channel、provider、model、错误类别、请求 ID 哈希)

仅在 captureContent.* 显式启用时才导出对应内容类别。

诊断标志(无 OTLP 时)

OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload openclaw gateway

或配置:

{ diagnostics: { flags: ["telegram.http"] } }

相关链接