OpenTelemetry-gegevens exporteren naar Dynatrace in Azure Container Apps

Deze handleiding laat zien hoe u Azure Container Apps configureert om logboeken, traceringen en metrische gegevens door te sturen naar Dynatrace met behulp van de beheerde OpenTelemetry-agent.

Zie Set up OpenTelemetry agents in Azure Container Apps voor meer informatie over de beheerde OpenTelemetry-agent.

Wat u leert

  • Maak een Dynatrace-ingest-token met de vereiste scopes.
  • Configureer een bestemming voor de Dynatrace OpenTelemetry Protocol (OTLP) met Bicep of via de Azure-portal.
  • Configureer vereiste app-omgevingsvariabelen voor het exporteren van metrische gegevens.
  • Pas configuratie-updates toe op uw bestaande Container Apps-omgeving en -app.
  • Telemetrie controleren in Dynatrace.

Prerequisites

  • Een Azure-abonnement waarin u resourcegroepen kunt maken en Azure Container Apps resources kunt implementeren.
  • Een Dynatrace SaaS-omgeving.
  • Azure CLI is geïnstalleerd en aangemeld.
  • Azure Container Apps CLI-extensie geïnstalleerd.
az extension add --name containerapp --upgrade

Een Dynatrace-innametoken maken

Maak een Dynatrace API-token met deze machtigingen:

  • logs.ingest
  • metrics.ingest
  • openTelemetryTrace.ingest

Zie richtlijnen voor Dynatrace OTLP-authenticatie voor stappen voor het maken van tokens en details over machtigingen.

OpenTelemetry-bestemmingen configureren

Gebruik een van de volgende opties om Dynatrace te configureren als een OpenTelemetry-eindpunt in uw Container Apps-omgeving.

Important

Het configureren van een beheerde OpenTelemetry-bestemming produceert niet automatisch telemetrie. Uw toepassing moet ook worden geïnstrueerd om traceringen, metrische gegevens en logboeken te verzenden met behulp van een OpenTelemetry SDK.

CLI-variabelen instellen voor de implementatieopdracht:

$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$DYNATRACE_OTLP_ENDPOINT = "https://<TENANT>.live.dynatrace.com/api/v2/otlp"
$DYNATRACE_API_TOKEN = "<DYNATRACE_INGEST_TOKEN>"

Gebruik alleen het OTLP-basiseindpunt (/api/v2/otlp). Voeg /v1/traces, /v1/metrics of /v1/logs niet toe; de beheerde agent voegt signaalpaden automatisch toe.

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
        ]
      }
    }
  }
}

Als u de vereiste omgevingsvariabelen wilt instellen, gebruikt u een resourceblok voor de container-app, zoals in het volgende voorbeeld:

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 moet OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=DELTA metrische gegevens opnemen.

Gebruik voor productie-implementaties beveiligde Bicep-parameters of Key Vault om tokenwaarden door te geven, in plaats van geheimen hard te coderen.

Nadat u de sjabloon hebt bijgewerkt, implementeert u de Bicep-configuratie vanaf de hoofdmap van de opslagplaats:

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"

Gebruik dezelfde eindpunt- en tokenwaarden die eerder in deze handleiding worden weergegeven, inclusief de OTLP-basiseindpuntindeling.

Uw container-app is nu geconfigureerd voor het verzenden van telemetrie naar Dynatrace.

OpenTelemetry-gegevens verifiëren in Dynatrace

Nadat u de configuratie hebt voltooid, moet uw Container App beginnen met het verzenden van telemetrie naar Dynatrace via de beheerde OpenTelemetry-agent. De snelste manier om te bevestigen dat metrische gegevens, logboeken en traceringen allemaal vanuit uw toepassing binnenkomen, is door de Services-app te openen in Dynatrace. De Services-app biedt één scherm waarin u alle drie de telemetriesignalen voor uw service op één plaats kunt valideren.

Uw telemetrie controleren:

  1. Open de Services-app in Dynatrace.
  2. Zoek uw Container App Service en controleer of er metrische gegevens, logboeken en traceringen aanwezig zijn voor de verwachte service- of omgevingscontext.

Als u achtergrondinformatie nodig hebt over hoe OpenTelemetry-gegevens worden opgenomen in Dynatrace, raadpleegt u de introductiehandleiding voor OpenTelemetry.

Als telemetrie ontbreekt of niet wordt weergegeven zoals verwacht, raadpleegt u de gids voor het oplossen van problemen met OpenTelemetry.