

# 为 GitHub Copilot 设置 OpenTelemetry
<a name="coding-agents-copilot"></a>

GitHub Copilot 会发出有关令牌使用情况、请求、工具调用和延迟的 OpenTelemetry（OTel）指标。当您将这些指标发送到 Amazon CloudWatch 时，它们会填充编程代理洞察控制面板的 GitHub Copilot 选项卡。有关控制面板的更多信息，请参阅 [编程代理洞察](coding-agents-insights.md)。

Copilot 直接将 OTLP 指标发送到 CloudWatch 原生 OTLP 指标端点，并通过持有者令牌（CloudWatch 指标 API 密钥）进行身份验证。不需要 OpenTelemetry 收集器。持有者令牌是 Copilot 目前支持的路径。

**注意**  
本指南仅介绍如何将 Copilot 的 OTel 指标发出到 CloudWatch，这与 Copilot 如何调用模型进行推理无关。Copilot 默认使用自己的模型，但企业可以引入自己的模型提供程序密钥，包括 Amazon Bedrock。有关更多信息，请参阅 GitHub Copilot 文档中的 [Use your own API keys](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/use-your-own-api-keys)。

**重要**  
持有者令牌是长期凭证。我们建议仅在短期 Amazon 凭证不可行的情况下使用它们，例如 Amazon 之外的开发人员笔记本电脑。有关安全权衡和密钥轮换指导，请参阅[为指标设置持有者令牌身份验证](CloudWatch-OTLP-MetricsBearerTokenAuth.md)。

## 先决条件
<a name="coding-agents-copilot-prereqs"></a>
+ 已安装 GitHub Copilot，且版本支持 OpenTelemetry 指标导出。
+ 用于模型推理的有效 GitHub Copilot 订阅。Copilot 默认使用其自己的模型；要改用 Amazon Bedrock，请按照 GitHub Copilot 文档中的 [Use your own API keys](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/use-your-own-api-keys) 所述配置自定义模型密钥。
+ 由具有 CloudWatch 指标权限的 IAM 用户创建的 CloudWatch 指标 API 密钥（持有者令牌）。有关创建 IAM 用户和生成密钥的过程，请参阅[为指标设置持有者令牌身份验证](CloudWatch-OTLP-MetricsBearerTokenAuth.md)。

## 配置指标导出程序
<a name="coding-agents-copilot-configure"></a>

配置 Copilot 的 OpenTelemetry 导出程序，使用 `Authorization` 标头中的持有者令牌将指标发送到 CloudWatch 指标端点。在启动 Copilot 的环境中设置下面的环境变量。设置 `COPILOT_OTEL_ENABLED=true` 以启用 OpenTelemetry。Copilot 对所有信号使用标准 OpenTelemetry 变量；它不支持特定于指标的覆盖。将 `OTEL_EXPORTER_OTLP_ENDPOINT` 设置为*不带* `/v1/metrics` 路径的基本端点：导出程序会为您追加信号路径。

```
export COPILOT_OTEL_ENABLED=true
export OTEL_EXPORTER_OTLP_ENDPOINT="https://monitoring.{{region}}.amazonaws.com"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer {{YOUR_API_KEY}}"
```

**注意**  
将持有者令牌视为机密。避免将其提交到源代码控制或共享的 Shell 配置文件，并按照 [为指标设置持有者令牌身份验证](CloudWatch-OTLP-MetricsBearerTokenAuth.md) 中所述定期轮换密钥。

## 添加身份和组织属性
<a name="coding-agents-copilot-attributes"></a>

编程代理洞察控制面板按开发人员、团队、部门和其他组织维度对使用情况进行分组。通过 `OTEL_RESOURCE_ATTRIBUTES` 环境变量将这些内容作为 OTel *资源*属性提供。根据开发人员的身份和组织结构设置值。

```
export OTEL_RESOURCE_ATTRIBUTES="\
user.id={{alias}},\
user.email={{developer@example.com}},\
user.name={{Jane Doe}},\
department={{engineering}},\
team.id={{platform}},\
cost_center={{cc-1234}},\
organization={{example-corp}},\
location={{us-seattle}},\
role={{software-engineer}},\
manager={{manager@example.com}}"
```

## 验证和查看
<a name="coding-agents-copilot-verify"></a>

使用 Copilot 生成指标，然后确认数据已到达 CloudWatch。

**验证指标**

1. 使用 Copilot 执行一些会生成遥测数据的工作。

1. 在 CloudWatch 控制台中，选择 **GenAI 可观测性**、**编程代理洞察**，然后选择 GitHub Copilot 选项卡。指标通常会在几分钟内显示。

1. 或者，直接使用 PromQL 查询指标。有关更多信息，请参阅 [PromQL 查询](CloudWatch-PromQL-Querying.md)。