Export dat OpenTelemetry do Dynatrace v Azure Container Apps

Tento průvodce ukazuje, jak nakonfigurovat Azure Container Apps pro předávání protokolů, trasování a metrik do dynatrace pomocí spravovaného agenta OpenTelemetry.

Další informace o spravovaném agentovi OpenTelemetry najdete v tématu Set up OpenTelemetry agents in Azure Container Apps.

Co se naučíte

  • Vytvořte token Dynatrace pro ingest s požadovanými oprávněními.
  • Nakonfigurujte cíl protokolu OTLP (Dynatrace OpenTelemetry Protocol) pomocí Bicep nebo portálu Azure.
  • Nakonfigurujte požadované proměnné prostředí aplikace pro export metrik.
  • Použijte aktualizace konfigurace pro stávající prostředí a aplikaci Container Apps.
  • Ověřte telemetrii v dynatrace.

Předpoklady

  • Předplatné Azure, ve kterém můžete vytvářet skupiny prostředků a nasazovat prostředky služby Azure Container Apps.
  • Prostředí Dynatrace SaaS.
  • Azure CLI nainstalované a přihlášené.
  • Rozšíření rozhraní příkazového řádku pro Azure Container Apps je nainstalované.
az extension add --name containerapp --upgrade

Vytvořte token pro ingest Dynatrace

Vytvořte token rozhraní Dynatrace API s těmito obory:

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

Postup vytvoření tokenu a podrobnosti oprávnění najdete v pokynech k ověřování Dynatrace OTLP.

Konfigurace cílů OpenTelemetry

Pomocí jedné z následujících možností nakonfigurujte Dynatrace jako koncový bod OpenTelemetry v prostředí Container Apps.

Important

Konfigurace spravovaného cíle OpenTelemetry automaticky nevede k vytváření telemetrie. Vaše aplikace musí být také instrumentována k odesílání tras, metrik a logů pomocí sady SDK OpenTelemetry.

Nastavte proměnné CLI pro příkaz pro nasazení:

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

Použijte pouze základní koncový bod OTLP (/api/v2/otlp). Nepřidávejte /v1/traces, /v1/metrics ani /v1/logs; spravovaný agent automaticky přidává cesty signálů.

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@2024-10-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
        ]
      }
    }
  }
}

K nastavení požadovaných proměnných prostředí použijte blok prostředků aplikace kontejneru, jako je následující příklad:

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 vyžaduje OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=DELTA pro příjem metrik.

Pro produkční nasazení předávejte hodnoty tokenů prostřednictvím zabezpečených parametrů v Bicepu nebo služby Key Vault namísto pevného zakódování tajných údajů.

Po aktualizaci šablony nasaďte konfiguraci Bicep z kořenového adresáře úložiště:

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"

Použijte stejné hodnoty koncového bodu a tokenu uvedené výše v této příručce, včetně formátu základního koncového bodu OTLP.

Vaše aplikace kontejneru je teď nakonfigurovaná tak, aby odesílala telemetrická data do dynatrace.

Ověření dat OpenTelemetry v dynatrace

Po dokončení konfigurace by vaše aplikace kontejneru měla začít odesílat telemetrii do Dynatrace prostřednictvím spravovaného agenta OpenTelemetry. Nejrychlejší způsob, jak potvrdit, že metriky, protokoly a trasování pocházejí z vaší aplikace, je otevřít aplikaci Služby v dynatrace. Aplikace Services poskytuje jednu obrazovku, kde můžete ověřit všechny tři signály telemetrie pro vaši službu na jednom místě.

Ověření telemetrie:

  1. Otevřete aplikaci Služby v dynatrace.
  2. Vyhledejte službu Container App Service a ověřte, že metriky, protokoly a trasování existují pro očekávaný kontext služby nebo prostředí.

Pokud potřebujete základní informace o tom, jak se data OpenTelemetry ingestují do dynatrace, přečtěte si úvodní příručku OpenTelemetry.

Pokud telemetrie chybí nebo se nezobrazuje podle očekávání, prohlédni si průvodce odstraňováním potíží s OpenTelemetry.