本指南說明如何設定 Azure 容器應用程式,透過受管理的 OpenTelemetry 代理將日誌、追蹤和指標轉發給 Dynatrace。
如需更多有關受控 OpenTelemetry 代理程式的資訊,請參閱 在 Azure 容器應用程式 中設定 OpenTelemetry 代理程式。
您學到什麼
- 使用所需範圍建立 Dynatrace 擷取權杖。
- 使用 Bicep 或 Azure 入口網站設定 Dynatrace OpenTelemetry Protocol(OTLP)目的地。
- 設定必要的應用程式環境變數以匯出指標。
- 對你現有的容器應用程式環境和應用程式套用設定更新。
- 在 Dynatrace 中驗證遙測數據。
先決條件
- 一個 Azure 訂閱,可以建立資源群組並部署 Azure 容器應用程式 資源。
- 一個 Dynatrace SaaS 環境。
- Azure CLI 已安裝並登入。
- 已安裝 Azure 容器應用程式 CLI 擴充功能。
az extension add --name containerapp --upgrade
建立 Dynatrace 擷取權杖
建立一個包含以下範圍的 Dynatrace API 令牌:
logs.ingestmetrics.ingestopenTelemetryTrace.ingest
關於令牌建立步驟及權限細節,請參閱 Dynatrace OTLP 認證指引。
設定 OpenTelemetry 目的端
請使用以下選項之一,在你的容器應用程式環境中將 Dynatrace 設定為 OpenTelemetry 端點。
Important
設定受管理的 OpenTelemetry 目的地並不會自動產生遙測結果。 您的應用程式也必須透過 OpenTelemetry SDK 進行儀器化,以發送追蹤、指標和日誌。
為部署指令設定 CLI 變數:
$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$DYNATRACE_OTLP_ENDPOINT = "https://<TENANT>.live.dynatrace.com/api/v2/otlp"
$DYNATRACE_API_TOKEN = "<DYNATRACE_INGEST_TOKEN>"
只使用 OTLP 基礎端點(/api/v2/otlp)。 不要附加 /v1/traces、 /v1/metrics或 /v1/logs;管理代理會自動附加訊號路徑。
var dynatraceEndpoint = 'https://<TENANT>.live.dynatrace.com/api/v2/otlp'
var dynatraceApiKey = '<DYNATRACE_INGEST_TOKEN>'
var dynatraceAuthHeader = 'Api-Token ${dynatraceApiKey}'
var dynatraceOtlpDestinationName = 'dynatrace-otlp'
resource environment 'Microsoft.App/managedEnvironments@2026-03-02-preview' = {
name: '<managed-environment-name>'
location: '<region>'
properties: {
openTelemetryConfiguration: {
destinationsConfiguration: {
otlpConfigurations: [
{
name: dynatraceOtlpDestinationName
endpoint: dynatraceEndpoint
protocol: 'http'
insecure: false
headers: [
{
key: 'Authorization'
value: dynatraceAuthHeader
}
]
}
]
}
tracesConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
logsConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
metricsConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
}
}
}
要設定所需的環境變數,請使用像以下範例的容器應用程式資源區塊:
resource app 'Microsoft.App/containerApps@2023-05-01' = {
name: '<CONTAINER_APP_NAME>'
location: '<REGION>'
properties: {
managedEnvironmentId: environment.id
template: {
containers: [
{
name: '<CONTAINER_NAME>'
image: '<IMAGE_NAME>'
env: [
{
name: 'OTEL_SERVICE_NAME'
value: '<SERVICE_NAME>'
}
{
name: 'OTEL_TRACES_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_METRICS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_LOGS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_EXPORTER_OTLP_METRICS_PROTOCOL'
value: 'http/protobuf'
}
{
name: 'OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE'
value: 'DELTA'
}
]
}
]
}
}
}
Dynatrace 需要 OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=DELTA 輸入指標。
對於生產部署,請透過安全 Bicep 參數或 金鑰保存庫 傳遞權杖值,而不要將祕密硬式編碼。
更新範本後,請從存放庫根目錄部署 Bicep 設定:
az deployment group create `
--resource-group $RESOURCE_GROUP `
--template-file infra/main.bicep `
--parameters @infra/main.parameters.json `
dynatraceEndpoint="$DYNATRACE_OTLP_ENDPOINT" `
dynatraceApiKey="$DYNATRACE_API_TOKEN"
請使用本指南前述所示的端點與令牌值,包括 OTLP 基礎端點格式。
你的容器應用程式現在已經設定成將遙測資料傳送到 Dynatrace。
在 Dynatrace 中驗證 OpenTelemetry 資料
完成設定後,容器應用程式應該會開始透過受管理的 OpenTelemetry 代理向 Dynatrace 傳送遙測資料。 確認指標、日誌和追蹤資料都從你的應用程式傳送最快的方法,就是在 Dynatrace 中開啟 服務應用程式 。 服務應用程式提供單一畫面,讓你能在同一地點驗證服務的三種遙測訊號。
要驗證你的遙測結果:
- 在 Dynatrace 中開啟 服務應用程式 。
- 找到你的容器應用程式服務,確認預期服務或環境的指標、日誌與追蹤是否存在。
如果你需要了解 OpenTelemetry 資料如何被導入 Dynatrace,請參閱 OpenTelemetry 入門指南。
如果遙測資料遺失或未如預期出現,請參閱 OpenTelemetry 故障排除指南。