Skip to content

遥测为什么没亮:/status 与 claude doctor 会点名被忽略的变量 ​

「环境变量写了 CLAUDE_CODE_ENABLE_TELEMETRY,面板却一片安静」——这类问题以前只能猜优先级。CLI 2.1.282 把答案摆到明处:启动时会有提示,/status 和 claude doctor 也会列出项目 settings 里被忽略、或把遥测关掉的变量,解释「为什么遥测其实没在跑」。

和 Auto mode 是否走服务端分类器的关系,可对照 Auto mode 服务端分类器;本文聚焦遥测可见性与 settings 边界。

2.1.282 加了什么 ​

公开 changelog 写明:

  • 启动通知;
  • /status 条目;
  • claude doctor 条目;

都会列出:项目 settings 文件里被忽略的遥测相关变量,以及关掉遥测的变量。目标不是教你「必须开遥测」,而是让「开了 / 没开 / 被谁盖掉」可核对。

排查顺序建议:

  1. claude doctor —— 机器级健康检查,适合复制给同事。
  2. 会话内 /status —— 看当前会话实际生效态。
  3. 对照启动横幅里是否已点名某变量。

三处说法不一致时,以当前会话 /status 为准,再回头查哪份 settings 覆盖了环境变量。

项目 / 本地 settings:导出类 OTEL 会被忽略 ​

同版本另一条变更更关键:

项目与本地 settings 忽略会打开导出、设置导出端点、或捕获内容的 OpenTelemetry 变量,例如 CLAUDE_CODE_ENABLE_TELEMETRY、OTEL_LOG_* 一类。

含义直白:

写法位置期望「靠它打开导出」实际
用户级 / 托管策略等(非项目本地那一类)可能生效(以官方层级为准)按原优先级
项目或本地 settings 里塞导出开关 / 端点 / 内容采集想让仓库一 clone 就全员打点会被忽略

这是安全与隐私默认:仓库不该悄悄替每位贡献者打开内容级遥测导出。需要组织级采集时,走托管 settings / 管理策略,别塞进每个 repo 的 .claude 本地文件指望生效。

和 Auto mode 服务端默认的交叉 ​

2.1.282 还写:在直连 Anthropic API、且遥测关闭时,Auto mode 默认改用服务端分类器(可用 CLAUDE_CODE_AUTO_MODE_SERVER=0 退出)。也就是说:

  • 你关掉遥测,省的是本地/导出侧开销;
  • Auto mode 仍可能走服务端分类,避免分类器开销计到你头上(细节见此前 auto mode server 文)。

排「遥测没数据」时,别和「Auto mode 是否 server-side」混成同一个开关——/status 里两者都会各自露一行时,分开读。

实操清单 ​

  1. 升级到 2.1.282+。
  2. 跑 claude doctor,搜 telemetry / OTEL / ignored。
  3. 开会话执行 /status,确认「被忽略的变量」列表是否点到你刚改的那几项。
  4. 若变量写在项目或本地 settings:挪到允许的层级,或接受「仓库级打点本来就不会生效」。
  5. 企业环境优先问管理员托管策略,而不是在每个项目里复制一份 OTEL_*。

遥测从「黑盒猜」变成「点名告诉你为何熄灭」。先看 doctor 和 /status,再改配置,少走半小时弯路。

Claude-cn.org,专注于 Claude Code 中文教程