跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

OpenTelemetry 导出配置

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

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,避免把该辅助脚本误认为普通只读检查。