Azure Container Apps'da OpenTelemetry verilerini Datadog'a aktarma

Bu kılavuz, yönetilen OpenTelemetry aracısını kullanarak günlükleri, izlemeleri ve ölçümleri Datadog'a iletmek için Azure Container Apps yapılandırmayı gösterir.

Yönetilen OpenTelemetry aracısı hakkında daha fazla bilgi için Azure Container Apps'te OpenTelemetry aracılarını ayarlama konusuna bakın.

Öğrendikleriniz

  • Telemetri alımı için bir Datadog API anahtarı oluşturun.
  • Bicep, Azure CLI veya Azure portalını kullanarak Container Apps ortamınızda bir Datadog hedefi yapılandırın.
  • Yapılandırma güncelleştirmelerini mevcut Container Apps ortamınıza ve uygulamanıza uygulayın.
  • Datadog'da telemetriyi doğrulayın.

Prerequisites

  • Kaynak grupları oluşturabileceğiniz ve Azure Container Apps kaynakları dağıtabileceğiniz bir Azure aboneliği.
  • Datadog ortamı ve API anahtarı.
  • Azure CLI yüklendi ve oturum açtı.
  • Azure Container Apps CLI uzantısı yüklü.
az extension add --name containerapp --upgrade

Datadog API anahtarı oluşturma

Telemetri alımına izin veren izinlere sahip bir Datadog API anahtarı oluşturun.

Container Apps tarafından yönetilen OTel yapılandırması için aşağıdaki Datadog değerlerine ihtiyacınız vardır:

  • site (tam Datadog site değeri, örneğin: datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu)
  • key (Datadog API anahtarı)

Datadog anahtarı oluşturma ve yönetimi için bkz. Datadog API'si ve uygulama anahtarları.

OpenTelemetry hedeflerini yapılandırma

Datadog'u Container Apps ortamınızda OpenTelemetry hedefi olarak yapılandırmak için aşağıdaki seçeneklerden birini kullanın.

Important

Yönetilen bir OpenTelemetry hedefini yapılandırmak otomatik olarak telemetri üretmez. Uygulamanızın ayrıca, bir OpenTelemetry SDK’sı kullanarak izler, metrikler ve günlükler üretecek şekilde araçlandırılması gerekir.

Dağıtım komutu için CLI değişkenlerini ayarlayın:

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

Aşağıdaki örnekte olduğu gibi yönetilen bir ortam kaynak bloğu kullanın:

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

Gerekli ortam değişkenlerini ayarlamak için aşağıdaki örneğe benzer bir kapsayıcı uygulaması kaynak bloğu kullanın:

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

Üretim dağıtımlarında, gizli bilgileri sabit olarak koda gömmek yerine belirteç değerlerini güvenli Bicep parametreleri veya Key Vault aracılığıyla iletin.

Şablonu güncelledikten sonra Bicep yapılandırmasını depo kök dizininden dağıtın:

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"

Kapsayıcı Uygulamanız artık yönetilen OpenTelemetry aracısı aracılığıyla Datadog'a telemetri gönderecek şekilde yapılandırıldı.

Datadog'da OpenTelemetry verilerini doğrulama

Yapılandırmayı tamamladıktan sonra kapsayıcı uygulamanız yönetilen OpenTelemetry aracısı aracılığıyla Datadog'a telemetri göndermeye başlar. Datadog'u kullanarak günlüklerin, izlemelerin ve ölçümlerin uygulamadan geldiğini ve verilerin beklenen hizmet ve ortam bağlamı altında göründüğünü onaylayın.

Sonuçları, Datadog’daki log inceleme, dağıtılmış izleme ve metrik araması gibi araçlarla kontrol ederek doğrulayın. Tam sorgu veya gezinti yolu, incelediğiniz verilere bağlı olarak değişir.

Datadog'da veri keşfi hakkında daha fazla bilgi için bkz. Datadog gözlemlenebilirliği ve telemetri.