# 用于代理监控的 OpenTelemetry

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

OpenTelemetry （OTel） 是一个开放源代码可观测性框架。 它提供一种标准方法，用于收集遥测事件和指标并将其导出到兼容的可观测性工具。 有关详细信息，请参阅 [OTel 网站上的什么是 OpenTelemetry？](https://opentelemetry.io/docs/what-is-opentelemetry/)

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

## Copilot 会发送哪些数据？

Copilot 发送三种类型的数据：

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

默认情况下，数据不包括提示、响应或工具参数。 可以选择捕获此内容，但它可能包含敏感信息，例如代码、文件内容和用户提示。

## 启用 OpenTelemetry

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

1. **配置可观测性后端。** 选择支持 OpenTelemetry 协议（OTLP）的安全后端。 某些后端可以直接接收 OTLP 数据。 对于其他后端，请部署 [OpenTelemetry 收集器](https://opentelemetry.io/docs/collector/) 来接收、处理和转发数据。 有关示例，请参阅VS Code 文档中的[与可观测性后端结合使用](https://code.visualstudio.com/docs/agents/guides/monitoring-agents#_use-with-observability-backends)。
2. **配置用户的客户端。** 设置配置值以在每个客户端中启用 OTel，并通过配置终结点、标头和身份验证令牌将其配置为将数据发送到 OTLP 终结点。
3. **解释数据。** 使用收集的数据分析会话并确定趋势。 有关示例实现，请参阅 Microsoft 文档中[使用 Grafana 监视 AI 编码代理](https://learn.microsoft.com/en-gb/azure/managed-grafana/grafana-opentelemetry-app-insights)。

### 配置用户的客户端

企业可以通过托管设置在受支持的客户端上强制执行 OTel 配置。 这些设置会在所有用户的客户端上统一生效，且无法被覆盖。 该 `telemetry` 属性包括用于启用和配置 OpenTelemetry 的密钥。

有关详细信息，请参阅 [配置企业管理设置](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings) 和 [企业托管设置](/zh/copilot/reference/enterprise-administrators/enterprise-managed-settings)。

## 客户端文档

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

* 在VS Code文档中[使用 OpenTelemetry 监控代理使用情况](https://code.visualstudio.com/docs/agents/guides/monitoring-agents)
* [Copilot SDK 的 OpenTelemetry 检测](/zh/copilot/how-tos/copilot-sdk/observability/opentelemetry)
* [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#opentelemetry-monitoring)