Skip to main content
Skip to content

用于代理监控的 OpenTelemetry

了解 Copilot 代理的表现,以及它们如何与模型和工具交互。

OpenTelemetry (OTel) 是一个开放源代码可观测性框架。 它提供一种标准方法,用于收集遥测事件和指标并将其导出到兼容的可观测性工具。 有关详细信息,请参阅 OTel 网站上的什么是 OpenTelemetry?

启用 OTel 监视时,可以将用户 Copilot 客户端中的数据发送到与 OTel 兼容的后端。 这样,便可以分析代理会话并了解企业中的代理使用情况。

Copilot 会发送哪些数据?

Copilot 发送三种类型的数据:

  • 追踪展示代理会话的流程,并将各个步骤串联起来,包括模型调用和工具调用。 例如,跟踪可以显示某个代理调用模型、使用 readFile 工具,然后再次调用模型以生成响应。
  • 指标 是数值度量值,可帮助识别随时间推移的模式。 例如,令牌使用指标跟踪模型调用中使用的输入和输出令牌的数量。
  • 事件 记录特定时间点的各个操作。 例如,编辑反馈事件记录用户是接受还是拒绝代理编辑。

默认情况下,数据不包括直接标识属性、提示、响应、工具参数、工具结果或原始策略详细信息。 企业管理员可以通过托管设置独立启用以下捕获类:

  • 身份 添加经过 Copilot 身份验证的帐户名称、本地操作系统帐户和计算机名称。 这样,便可以在不收集对话或工具内容的情况下对活动进行归因。
  • 提示 包括用户、系统和开发人员提示内容以及关联的模型输入。
  • 响应 包括助理响应和支持的推理内容。
  • 工具参数 包括原始参数、命令、工具架构,以及工具、MCP 服务器、插件和挂钩的标识符。
  • 工具输出 包括工具结果和执行错误详细信息。
  • 策略详细信息 包括无界的策略信息,例如原始沙盒文件系统路径。 禁用此类时,有限策略态势和结果仍可用。

在使用代理主机的Copilot CLI、GitHub Copilot app和VS Code会话中,支持精细捕获控件。 VS Code本地代理工具支持标识捕获和旧版全有或全无内容捕获设置,但不独立应用五种内容捕获类别。

捕获的内容可能包含敏感信息,包括源代码、文件内容、用户提示、命令、工具结果和工作区或用户配置文件路径。 仅启用用例所需的类。

启用 OpenTelemetry

要从用户的 Copilot 客户端收集 OTel 数据:

  1. 配置可观测性后端。 选择支持 OpenTelemetry 协议(OTLP)的安全后端。 某些后端可以直接接收 OTLP 数据。 对于其他后端,请部署 OpenTelemetry 收集器 来接收、处理和转发数据。 有关示例,请参阅VS Code 文档中的与可观测性后端结合使用。
  2. 配置用户的客户端。 设置配置值以在每个客户端中启用 OTel,并通过配置终结点、标头和身份验证令牌将其配置为将数据发送到 OTLP 终结点。
  3. 解释数据。 使用收集的数据分析会话并确定趋势。 有关示例实现,请参阅 Microsoft 文档中使用 Grafana 监视 AI 编码代理。

配置用户的客户端

企业可以通过托管设置在受支持的客户端上强制执行 OTel 配置。 显式托管值优先于本地设置、SDK 配置和环境变量。 该 telemetry 属性包括用于启用和路由 OpenTelemetry,以及独立控制标识和敏感内容捕获的键。

有关详细信息,请参阅 企业管理设置入门 和 企业管理设置。

客户端文档

有关如何跨客户端使用 OpenTelemetry 的更多详细信息,请参阅: