Skip to content
FunCoding

Search

Search docs, Skills and MCP

OpenTelemetry 导出配置

选择本地文件或 OTLP collector,控制正文记录与敏感 span 属性。

This page has not been translated into English yet. The original Chinese version is shown below.

Qwen Code 的 OpenTelemetry 默认关闭,用于向自己的文件或 collector 导出日志、指标和 trace。它与产品用量统计、API 调试文件是不同通道。

先选择目的地

本地文件配置:

{
  "telemetry": {
    "enabled": true,
    "outfile": ".qwen/telemetry.log",
    "logPrompts": false,
    "includeSensitiveSpanAttributes": false
  }
}

设置 outfile 后停止 OTLP 导出,不需要另外设置 target。target 的 local/gcp 只是信息标签;改变标签不会把数据发送到云端。

标准 HTTP collector 配置片段:

{
  "telemetry": {
    "enabled": true,
    "otlpProtocol": "http",
    "otlpEndpoint": "http://localhost:4318",
    "logPrompts": false,
    "includeSensitiveSpanAttributes": false
  }
}

上例需确保没有同时生效的 outfile。collector 由使用者另行准备;配置完成不代表 collector 已经运行。

端点与覆盖

配置默认或语义
enabledfalse
otlpProtocolgrpc;也可选 http
otlpEndpointhttp://localhost:4317
otlpTracesEndpoint / otlpLogsEndpoint / otlpMetricsEndpointHTTP 的按信号端点覆盖,原样使用
outfile未设置;一旦设置优先于 OTLP
logPromptstrue,控制提示及 API 请求/响应正文日志
includeSensitiveSpanAttributesfalse,控制敏感原生 span 属性及相关 bridge 行为

HTTP 基础端点自动追加 /v1/traces、/v1/logs、/v1/metrics;已有信号路径时原样使用。非标准后端路径应明确配置对应 per-signal endpoint。gRPC 按服务路由,不追加这些 HTTP 路径。

环境变量使用 QWEN_TELEMETRY_ENABLED、OTLP_ENDPOINT、OTLP_PROTOCOL、OTLP_TRACES_ENDPOINT、OTLP_LOGS_ENDPOINT、OTLP_METRICS_ENDPOINT、OUTFILE、LOG_PROMPTS 等完整 QWEN_TELEMETRY_ 前缀名称。按信号端点也接受 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT 等标准名称,Qwen 专用变量优先。

CLI 对应 --telemetry / --no-telemetry、--telemetry-otlp-endpoint、--telemetry-otlp-protocol、--telemetry-outfile、--telemetry-log-prompts / --no-telemetry-log-prompts。--telemetry-target 已弃用,不能用它替代端点路由配置。

敏感 span 的范围

includeSensitiveSpanAttributes 启用后可记录完整输入与输出消息、系统指令、工具定义、最终执行参数和成功工具结果。LLM 层包含展开后的历史、文件与工具内容;主 agent 层使用原始用户文本投影和最后的可见回答。数据可能包含文件内容或命令中的秘密。

sensitiveSpanAttributeMaxLength 默认 1048576,合法范围为 1–104857600,单位是 JavaScript 字符串长度,不是 UTF-8 字节。标准 GenAI JSON 属性必须完整且有效;循环、无效或超长值会整项省略,不生成截断 JSON、预览或 hash。兼容 new_context 仍保留自己的裁剪行为。

对应 QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH 设成非法整数会使遥测配置解析失败,不静默回退。collector 还可能有更小的单属性上限;应用端接受不等于后端一定接收。

静态 gen_ai.tool.description 不受敏感开关控制,最多 4096 UTF-16 code units,包括 MCP 等工具提供者的描述,但不包含动态调用细节。

日志与 span 的开关不等价

logPrompts 和 includeSensitiveSpanAttributes 分别控制不同路径。HTTP trace-only 场景的 log-to-span bridge 对 prompt、request_text、response_text 同时要求两者;敏感开关也影响该桥接中参数和错误内容的保留。

关闭敏感 span 属性不等于关闭 OTel logs、UI telemetry 或聊天记录中的正文。检查数据范围时需要逐一核对输出通道,不能只看一个开关。enabled、logPrompts、includeSensitiveSpanAttributes 的布尔环境变量 true/1 表示启用,其他值表示关闭。

阿里云或本地 collector

ARMS 使用控制台提供的真实 OTLP endpoint。认证 header 通过 OTEL_EXPORTER_OTLP_HEADERS 或按信号标准变量提供,当前 settings.json 没有专门的 OTLP auth headers 字段。

上游开发仓库还提供 npm run telemetry -- --target=local,会下载并启动 Jaeger 与 collector、修改本地工作区遥测配置;退出时停止 collector。仅需查看本地记录时可先选择 outfile,避免把该辅助脚本误认为普通只读检查。