本指南說明如何設定 Azure 容器應用程式,透過管理的 OpenTelemetry 代理程式,將日誌、追蹤和指標轉發給 Datadog。
如需更多有關受控 OpenTelemetry 代理程式的資訊,請參閱 在 Azure 容器應用程式 中設定 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 金鑰。
您需要下列 Datadog 值,才能設定 Container Apps 受控 OTel 組態
-
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 可觀察性與遙測。