用途:把「想采集 Copilot 遥测」推进到「可查询的遥测」。完成标准是导出已在真正生效的设置文件中启用、后端已收到数据、对应后端已有仪表盘,并通过查询存储确认数据落地,而非只看 HTTP 200。
模式(相互独立,可单用或全用):local-setup 在本机开启 Copilot OTel 导出,先展示精确设置 diff,批准后才写入;local-stack 在本机搭建接收后端,写文件后把命令交给用户,绝不代跑;org-distribution 向开发者机群推送 OTel 设置,只起草配置并解释,不做实际应用;azure-capture 将机群遥测汇入 Azure 并出图,写模板后交出部署命令。verification.md 为各模式共用,报告遥测可用前必读。请求只给目标未给模式时,选能达成目标的模式并说明选择;无上下文时「设置 Copilot 指标」默认先 local-setup 再 local-stack。
执行边界:代理写文件、打印命令;所有涉及 Docker、云控制平面或 IaC 工具链的命令(含 docker、az、terraform 及生成的脚本)均由用户执行,terraform plan 与 docker ps 也不例外。唯一例外是对本地遥测端点的只读查询,用于验证。
安全要点:github.copilot.chat.otel.captureContent 默认 false,但实测该栈在关闭时仍有六个属性以明文出现在 span 上:copilot_chat.user_request、gen_ai.input.messages、gen_ai.output.messages、gen_ai.tool.call.arguments、gen_ai.tool.call.result、gen_ai.system_instructions;copilot_chat.reasoning_content 存在但标记为 [encrypted]。因此任何 Copilot 遥测存储都应视为含提示内容,端点和后端卷均属敏感。来源冲突时取更严格者。用户粘贴的连接字符串、摄取密钥或令牌不得写入任何文件,并应告知其已留在对话记录中。
时效性:设置名、指标名与 API 版本均为某一构建的快照,扩展更新更快,错误名称会静默失败。设置以已安装扩展 manifest 的 contributes.configuration 为准,指标名以存储实际发出为准,过滤器行为需运行时证据。
限制:不猜测订阅、租户、区域、命名与凭据持有者;无法确认目标 settings.json 时停止;指标或设置名无法验证时如实说明;存储查询为空即报告尚未证实。生成文件默认放在工作区 copilot-otel/ 目录,写入前须告知路径;若为 git 仓库需提示会出现在 git status,并提供 .gitignore 或仓库外路径选项。设置写入为全局 settings.json 的逐键 upsert,保留其他键与注释,写入前做带时间戳备份并说明恢复方式。