OpenTelemetry-gegevens exporteren naar Datadog in Azure Container Apps

Deze handleiding laat zien hoe u Azure Container Apps configureert om logboeken, traceringen en metrische gegevens door te sturen naar Datadog 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 Datadog-API-sleutel voor telemetrieopname.
  • Configureer een Datadog-bestemming in uw Container Apps-omgeving met behulp van Bicep, Azure CLI of de Azure-portal.
  • Pas configuratie-updates toe op uw bestaande Container Apps-omgeving en -app.
  • Telemetrie controleren in Datadog.

Prerequisites

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

Een Datadog-API-sleutel maken

Maak een Datadog-API-sleutel met machtigingen die telemetrieopname toestaan.

U hebt de volgende Datadog-waarden nodig voor de beheerde OTel-configuratie van Container Apps:

  • site (volledige Datadog-sitewaarde, bijvoorbeeld: datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu)
  • key (Datadog-API-sleutel)

Zie Datadog-API en toepassingssleutels voor het maken en beheren van Datadog-sleutels.

OpenTelemetry-bestemmingen configureren

Gebruik een van de volgende opties om Datadog te configureren als een OpenTelemetry-bestemming 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>"
$DATADOG_SITE = "<datadog-site>" # Example: us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu
$DATADOG_API_KEY = ""
$IMAGE = ""
$ACR_USERNAME = ""
$ACR_PASSWORD = ""

Gebruik een resourceblok voor een beheerde omgeving, zoals in het volgende voorbeeld:

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

Gebruik een resourceblok voor een container-app, zoals in het volgende voorbeeld om vereiste omgevingsvariabelen in te stellen:

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

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 `
  image=$IMAGE `
  acrUsername=$ACR_USERNAME `
  acrPassword=$ACR_PASSWORD `
  datadogSite="$DATADOG_SITE" `
  datadogApiKey="$DATADOG_API_KEY"

Uw container-app is nu geconfigureerd voor het verzenden van telemetrie naar Datadog via de beheerde OpenTelemetry-agent.

OpenTelemetry-gegevens controleren in Datadog

Nadat u de configuratie hebt voltooid, begint uw container-app met het verzenden van telemetrie naar Datadog via de beheerde OpenTelemetry-agent. Gebruik Datadog om te bevestigen dat logboeken, traceringen en metrische gegevens binnenkomen vanuit de toepassing en dat de gegevens worden weergegeven onder de verwachte service- en omgevingscontext.

Valideer resultaten door Datadog-hulpprogramma's zoals logboekverkenning, gedistribueerde tracering en metrische zoekopdrachten te controleren. De exacte query of het navigatiepad varieert naargelang de gegevens die u onderzoekt.

Zie Datadog-waarneembaarheid en telemetrie voor meer informatie over gegevensverkenning in Datadog.