Azure Container Apps'da OpenTelemetry New Relic'i dışarı aktarma

Bu yapılandırma kılavuzu, yönetilen OpenTelemetry aracısını kullanarak günlükleri, izlemeleri ve ölçümleri New Relic'e 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.

Bu kılavuzda şunların nasıl yapıldığını öğrenirsiniz:

  • Yeni Relic alma anahtarı oluşturun.
  • Bicep veya Azure portalını kullanarak New Relic OTLP hedefi yapılandırın.
  • Gerekli uygulama ortamı değişkenlerini yapılandırın.
  • Yapılandırma güncelleştirmelerini mevcut Container Apps ortamınıza ve uygulamanıza uygulayın.
  • New Relic'te telemetriyi denetleyin.

Prerequisites

  • Mevcut Azure Container Apps kaynaklarını güncelleştirebileceğiniz bir Azure aboneliği.
  • Hedef kaynak grubunu ve yönetilen ortamı değiştirme izinleri.
  • New Relic hesabı.
  • Azure CLI yüklendi ve oturum açtı.
  • Azure Container Apps CLI uzantısı yüklü.
az extension add --name containerapp --upgrade

Yeni bir New Relic veri alım anahtarı oluşturun

Yeni Relic API anahtarınızı oluşturmak için API anahtarı oluşturma kılavuzunu kullanın: Yeni Relic API anahtarları. Anahtarı oluştururken, veri alımı için kullanılan Veri Alımı - Lisans Anahtarı türünü seçin.

Hesabınızdan içe aktarma lisans anahtarı değerini alın:

  • New Relic'te API Anahtarları'na gidin.
  • Ingest - License anahtarını bulun.
  • Hedef yapılandırmada kullanılacak anahtar değerini kopyalayın.

OpenTelemetry hedeflerini yapılandırma

New Relic'i Container Apps ortamınızda bir OTel uç noktası 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, OpenTelemetry SDK’sı kullanılarak izler, ölçümler ve günlükler üretecek şekilde zaten yapılandırılmış olması gerekir.

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

$RESOURCE_GROUP = "<resource-group-name>"
$NEW_RELIC_OTLP_ENDPOINT = "https://otlp.nr-data.net:4318"
$NEW_RELIC_INGEST_KEY = "<new-relic-ingest-license-key>"

New Relic OTLP temel uç noktasını (https://otlp.nr-data.net) uygun OTLP bağlantı noktasıyla kullanın:

  • HTTP: 4318
  • gRPC: 4317

Hedef yönlendirmeyi yapılandırmak için bu yönetilen ortam kaynak stili kod parçacığını kullanın:

var newRelicDestinationName = 'newrelic'
var newRelicAuthHeaderValue = newRelicIngestKey

@secure()
param newRelicIngestKey string
param newRelicOtlpEndpoint string = 'https://otlp.nr-data.net:4318'
@allowed([
  'http'
  'grpc'
])
param newRelicOtlpProtocol string = 'http'

resource environment 'Microsoft.App/managedEnvironments@2026-03-02-preview' = {
  name: '<managed-environment-name>'
  location: '<region>'
  properties: {
    openTelemetryConfiguration: {
      destinationsConfiguration: {
        otlpConfigurations: [
          {
            name: newRelicDestinationName
            endpoint: newRelicOtlpEndpoint
            protocol: newRelicOtlpProtocol
            insecure: false
            headers: [
              {
                key: 'api-key'
                value: newRelicAuthHeaderValue
              }
            ]
          }
        ]
      }
      tracesConfiguration: {
        destinations: [
          newRelicDestinationName
        ]
      }
      logsConfiguration: {
        destinations: [
          newRelicDestinationName
        ]
      }
      metricsConfiguration: {
        destinations: [
          newRelicDestinationName
        ]
      }
    }
  }
}

Gerekli uygulama ortamı değişkenlerini ayarlamak için bu uygulama kaynak stili kod parçacığını kullanın:

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

Bicep yapılandırmanızı deponun kök dizininden uygulayın:

az deployment group create `
  --resource-group $RESOURCE_GROUP `
  --template-file infra/main.bicep `
  --parameters @infra/main.parameters.json `
  --parameters newRelicOtlpEndpoint="$NEW_RELIC_OTLP_ENDPOINT" `
  --parameters newRelicIngestKey="$NEW_RELIC_INGEST_KEY"

Kapsayıcı Uygulamanız artık New Relic'e telemetri gönderecek şekilde yapılandırıldı.

New Relic'te telemetriyi denetleme

Yapılandırmadan sonra günlüklerin, izlemelerin ve ölçümlerin Uygulamanızdan New Relic'e gelip gelmediğini ve beklenen hizmet kimliğiyle ilişkili olup olmadığını denetleyin.

Dağıtılmış izleme, günlük araması ve metrik inceleme gibi iş akışınıza uygun New Relic özelliklerini kullanın.

New Relic'te keşif ve analiz hakkında daha fazla bilgi için New Relic belgelerine bakın.