本指南说明如何使用托管的 OpenTelemetry 代理,将 Azure 容器应用 配置为把日志、跟踪和指标转发到 Datadog。
有关托管 OpenTelemetry 代理的详细信息,请参阅
学习内容
- 创建用于遥测数据摄取的 Datadog API 密钥。
- 使用 Bicep、Azure CLI 或 Azure 门户在容器应用环境中配置 Datadog 目标。
- 将配置更新应用到现有的容器应用环境和应用。
- 验证 Datadog 中的遥测数据。
先决条件
- Azure订阅,可在其中创建资源组并部署Azure 容器应用资源。
- Datadog 环境和 API 密钥。
- 已安装并登录 Azure CLI。
- 已安装 Azure 容器应用 CLI 扩展。
az extension add --name containerapp --upgrade
创建 Datadog API 密钥
使用允许遥测引入的权限创建 Datadog API 密钥。
对于容器应用托管 OTel 配置,需要以下 Datadog 值:
-
site(完整的 Datadog 站点值,例如:datadoghq.com、us3.datadoghq.com、us5.datadoghq.com、datadoghq.eu) -
key(Datadog API 密钥)
有关 Datadog 密钥的创建和管理,请参阅 Datadog API 和应用程序密钥。
配置 OpenTelemetry 目标
使用以下选项之一将 Datadog 配置为容器应用环境中的 OpenTelemetry 目标。
Important
配置托管的 OpenTelemetry 目标不会自动生成遥测数据。 您的应用程序还必须通过 OpenTelemetry SDK 进行检测,以生成跟踪、指标和日志。
为部署命令设置 CLI 变量:
$RESOURCE_GROUP = "<resource-group-name>"
$DATADOG_SITE = "<datadog-site>" # Example: us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu
$DATADOG_API_KEY = ""
$IMAGE = ""
$ACR_USERNAME = ""
$ACR_PASSWORD = ""
使用托管环境资源块,如以下示例所示:
param datadogSite string
@secure()
param datadogApiKey string
var datadogDestinationName = 'dataDog'
resource environment 'Microsoft.App/managedEnvironments@2024-10-02-preview' = {
name: ''
location: ''
properties: {
openTelemetryConfiguration: {
destinationsConfiguration: {
dataDogConfiguration: {
site: datadogSite
key: datadogApiKey
}
}
tracesConfiguration: {
destinations: [
datadogDestinationName
]
}
logsConfiguration: {
destinations: [
datadogDestinationName
]
}
metricsConfiguration: {
destinations: [
datadogDestinationName
]
}
}
}
}
使用容器应用资源块(如以下示例所示)设置所需的环境变量:
resource app 'Microsoft.App/containerApps@2024-10-02-preview' = {
name: ''
location: ''
properties: {
managedEnvironmentId: environment.id
template: {
containers: [
{
name: ''
image: ''
env: [
{
name: 'OTEL_SERVICE_NAME'
value: ''
}
{
name: 'OTEL_TRACES_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_METRICS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_LOGS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_EXPORTER_OTLP_PROTOCOL'
value: 'grpc'
}
]
}
]
}
}
}
对于生产环境部署,应通过安全的 Bicep 参数或 密钥保管库 传递令牌值,而不要将机密硬编码。
更新模板后,从存储库根目录部署Bicep配置:
az deployment group create `
--resource-group $RESOURCE_GROUP `
--template-file infra/main.bicep `
--parameters @infra/main.parameters.json `
image=$IMAGE `
acrUsername=$ACR_USERNAME `
acrPassword=$ACR_PASSWORD `
datadogSite="$DATADOG_SITE" `
datadogApiKey="$DATADOG_API_KEY"
你的容器应用现已配置为通过托管的 OpenTelemetry 代理将遥测数据发送到 Datadog。
验证 Datadog 中的 OpenTelemetry 数据
完成配置后,容器应用将开始通过托管 OpenTelemetry 代理将遥测数据发送到 Datadog。 使用 Datadog 确认日志、追踪和指标是否已从应用程序发送,并确认这些数据显示在预期的服务和环境上下文中。
通过检查 Datadog 工具(如日志浏览、分布式跟踪和指标搜索)来验证结果。 确切的查询或导航路径因所检查的数据而异。
有关 Datadog 中数据探索的更多信息,请参阅 Datadog 可观测性和遥测。