OpenTelemetry (OTel) 是一个开放源代码可观测性框架。 它提供一种标准方法,用于收集遥测事件和指标并将其导出到兼容的可观测性工具。 有关详细信息,请参阅 OTel 网站上的什么是 OpenTelemetry?
启用 OTel 监视时,可以将用户 Copilot 客户端中的数据发送到与 OTel 兼容的后端。 这样,便可以分析代理会话并了解企业中的代理使用情况。
Copilot 会发送哪些数据?
Copilot 发送三种类型的数据:
- 追踪展示代理会话的流程,并将各个步骤串联起来,包括模型调用和工具调用。 例如,跟踪可以显示某个代理调用模型、使用
readFile工具,然后再次调用模型以生成响应。 - 指标 是数值度量值,可帮助识别随时间推移的模式。 例如,令牌使用指标跟踪模型调用中使用的输入和输出令牌的数量。
- 事件 记录特定时间点的各个操作。 例如,编辑反馈事件记录用户是接受还是拒绝代理编辑。
默认情况下,数据不包括直接标识属性、提示、响应、工具参数、工具结果或原始策略详细信息。 企业管理员可以通过托管设置独立启用以下捕获类:
- 身份 添加经过 Copilot 身份验证的帐户名称、本地操作系统帐户和计算机名称。 这样,便可以在不收集对话或工具内容的情况下对活动进行归因。
- 提示 包括用户、系统和开发人员提示内容以及关联的模型输入。
- 响应 包括助理响应和支持的推理内容。
- 工具参数 包括原始参数、命令、工具架构,以及工具、MCP 服务器、插件和挂钩的标识符。
- 工具输出 包括工具结果和执行错误详细信息。
- 策略详细信息 包括无界的策略信息,例如原始沙盒文件系统路径。 禁用此类时,有限策略态势和结果仍可用。
在使用代理主机的Copilot CLI、GitHub Copilot app和VS Code会话中,支持精细捕获控件。 VS Code本地代理工具支持标识捕获和旧版全有或全无内容捕获设置,但不独立应用五种内容捕获类别。
捕获的内容可能包含敏感信息,包括源代码、文件内容、用户提示、命令、工具结果和工作区或用户配置文件路径。 仅启用用例所需的类。
启用 OpenTelemetry
要从用户的 Copilot 客户端收集 OTel 数据:
- 配置可观测性后端。 选择支持 OpenTelemetry 协议(OTLP)的安全后端。 某些后端可以直接接收 OTLP 数据。 对于其他后端,请部署 OpenTelemetry 收集器 来接收、处理和转发数据。 有关示例,请参阅VS Code 文档中的与可观测性后端结合使用。
- 配置用户的客户端。 设置配置值以在每个客户端中启用 OTel,并通过配置终结点、标头和身份验证令牌将其配置为将数据发送到 OTLP 终结点。
- 解释数据。 使用收集的数据分析会话并确定趋势。 有关示例实现,请参阅 Microsoft 文档中使用 Grafana 监视 AI 编码代理。
配置用户的客户端
企业可以通过托管设置在受支持的客户端上强制执行 OTel 配置。 显式托管值优先于本地设置、SDK 配置和环境变量。 该 telemetry 属性包括用于启用和路由 OpenTelemetry,以及独立控制标识和敏感内容捕获的键。
客户端文档
有关如何跨客户端使用 OpenTelemetry 的更多详细信息,请参阅:
-
在 VS Code 文档中[使用 OpenTelemetry 监视智能体使用情况](https://code.visualstudio.com/docs/agents/guides/monitoring-agents) - Copilot SDK 的 OpenTelemetry 检测
- GitHub Copilot CLI 命令参考