Eksportowanie danych OpenTelemetry do usługi Datadog w Azure Container Apps

W tym przewodniku pokazano, jak skonfigurować Azure Container Apps do przekazywania dzienników, śladów i metryk do usługi Datadog przy użyciu zarządzanego agenta OpenTelemetry.

Aby uzyskać więcej informacji na temat zarządzanego agenta OpenTelemetry, zobacz Set up OpenTelemetry agents in Azure Container Apps (Konfigurowanie agentów OpenTelemetry w programie Azure Container Apps

Czego się uczysz

  • Utwórz klucz API Datadog na potrzeby przyjmowania danych telemetrycznych.
  • Skonfiguruj miejsce docelowe usługi Datadog w środowisku usługi Container Apps przy użyciu Bicep, Azure CLI lub portalu Azure.
  • Zastosuj aktualizacje konfiguracji do istniejącego środowiska i aplikacji usługi Container Apps.
  • Sprawdź dane telemetryczne w usłudze Datadog.

Wymagania wstępne

  • Subskrypcja Azure, w której można tworzyć grupy zasobów i wdrażać zasoby Azure Container Apps.
  • Środowisko Datadog i klucz API.
  • Azure CLI zainstalowane i zalogowane.
  • Zainstalowano rozszerzenie interfejsu wiersza polecenia Azure Container Apps.
az extension add --name containerapp --upgrade

Tworzenie klucza interfejsu API usługi Datadog

Utwórz klucz interfejsu API usługi Datadog z uprawnieniami, które umożliwiają pozyskiwanie danych telemetrycznych.

Dla konfiguracji OTel zarządzanej przez usługę Container Apps potrzebne są następujące wartości usługi Datadog:

  • site (pełna wartość witryny Datadog, na przykład: datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu)
  • key (klucz API Datadog)

Aby uzyskać informacje na temat tworzenia i zarządzania kluczami usługi Datadog, zobacz Interfejs API usługi Datadog i klucze aplikacji.

Konfigurowanie miejsc docelowych OpenTelemetry

Użyj jednej z poniższych opcji, aby skonfigurować usługę Datadog jako miejsce docelowe OpenTelemetry w środowisku usługi Container Apps.

Important

Skonfigurowanie zarządzanego miejsca docelowego OpenTelemetry nie powoduje automatycznego generowania danych telemetrycznych. Aplikacja musi być również wyposażona w instrumentację umożliwiającą wysyłanie śladów, metryk i logów przy użyciu pakietu SDK OpenTelemetry.

Ustaw zmienne interfejsu wiersza polecenia dla polecenia wdrożenia:

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

Użyj bloku zasobów środowiska zarządzanego, takiego jak w poniższym przykładzie:

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

Użyj bloku zasobów aplikacji kontenera, takiego jak w poniższym przykładzie, aby ustawić wymagane zmienne środowiskowe:

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

W przypadku wdrożeń produkcyjnych przekaż wartości tokenów za pośrednictwem bezpiecznych parametrów Bicep lub Key Vault zamiast trwale zakodowanych wpisów tajnych.

Po zaktualizowaniu szablonu wdróż konfigurację Bicep z katalogu głównego repozytorium:

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"

Aplikacja kontenerowa jest teraz skonfigurowana do wysyłania danych telemetrycznych do Datadog za pośrednictwem zarządzanego agenta OpenTelemetry.

Weryfikowanie danych OpenTelemetry w usłudze Datadog

Po zakończeniu konfiguracji aplikacja kontenera zacznie wysyłać dane telemetryczne do usługi Datadog za pośrednictwem zarządzanego agenta OpenTelemetry. Użyj usługi Datadog, aby potwierdzić, że dzienniki, ślady i metryki docierają z aplikacji i czy dane są wyświetlane w oczekiwanym kontekście usługi i środowiska.

Zweryfikuj wyniki, sprawdzając narzędzia usługi Datadog, takie jak eksploracja dzienników, śledzenie rozproszone i wyszukiwanie metryk. Dokładna ścieżka zapytania lub nawigacji różni się w zależności od sprawdzanych danych.

Aby uzyskać więcej informacji na temat eksploracji danych w usłudze Datadog, zobacz Datadog observability and telemetry (Możliwość obserwowania i telemetria usługi Datadog).