Esportare i dati OpenTelemetry verso Datadog in App contenitore di Azure

Questa guida illustra come configurare App contenitore di Azure per inoltrare log, tracce e metriche a Datadog usando l'agente OpenTelemetry gestito.

Per altre informazioni sull'agente OpenTelemetry gestito, vedere Impostare gli agenti OpenTelemetry in App contenitore di Azure.

Cosa imparerai

  • Creare una chiave API Datadog per l'inserimento dei dati di telemetria.
  • Configurare una destinazione Datadog nell'ambiente App contenitore usando Bicep, interfaccia della riga di comando di Azure o il portale di Azure.
  • Applica gli aggiornamenti di configurazione all'ambiente e all'app Container Apps esistenti.
  • Verificare i dati di telemetria in Datadog.

Prerequisiti

  • Una sottoscrizione Azure in cui è possibile creare gruppi di risorse e distribuire App contenitore di Azure risorse.
  • Un ambiente Datadog e una chiave API.
  • interfaccia della riga di comando di Azure è stato installato e l'accesso è avvenuto.
  • Estensione dell'interfaccia della riga di comando di App contenitore di Azure installata.
az extension add --name containerapp --upgrade

Creare una chiave API Datadog

Creare una chiave API Datadog con autorizzazioni che consentono l'inserimento dei dati di telemetria.

Sono necessari i seguenti valori Datadog per la configurazione OTel gestita di Container Apps:

  • site(valore completo del sito Datadog, ad esempio: datadoghq.com, us3.datadoghq.comus5.datadoghq.com, , datadoghq.eu)
  • key (Chiave API Datadog)

Per la creazione e la gestione delle chiavi di Datadog, vedere Api Datadog e chiavi dell'applicazione.

Configurare le destinazioni OpenTelemetry

Usa una delle opzioni seguenti per configurare Datadog come destinazione OpenTelemetry nell'ambiente Container Apps.

Importante

La configurazione di una destinazione OpenTelemetry gestita non produce automaticamente dati di telemetria. L'applicazione deve anche essere instrumentata per generare tracce, metriche e log tramite OpenTelemetry SDK.

Impostare le variabili CLI per il comando di distribuzione:

$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 = ""

Usare un blocco di risorse dell'ambiente gestito come nell'esempio seguente:

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

Usare un blocco di risorse dell'app contenitore come l'esempio seguente per impostare le variabili di ambiente necessarie:

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

Per le distribuzioni di produzione, passa i valori dei token tramite parametri Bicep sicuri o Key Vault, anziché codificare i segreti direttamente nel codice.

Dopo aver aggiornato il modello, distribuisci la configurazione Bicep dalla radice del repository:

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"

La tua app contenitore è ora configurata per inviare dati di telemetria a Datadog tramite l'agente OpenTelemetry gestito.

Verifica i dati OpenTelemetry in Datadog

Dopo aver completato la configurazione, l'app contenitore inizia a inviare dati di telemetria a Datadog tramite l'agente OpenTelemetry gestito. Usare Datadog per verificare che i log, le tracce e le metriche arrivino dall'applicazione e che i dati vengano visualizzati nel contesto del servizio e dell'ambiente previsti.

Convalidare i risultati controllando strumenti di Datadog come l'esplorazione dei log, la traccia distribuita e la ricerca delle metriche. La query esatta o il percorso di spostamento variano a seconda dei dati esaminati.

Per altre informazioni sull'esplorazione dei dati in Datadog, vedere Datadog osservabilità e telemetria.