Exportera OpenTelemetry New Relic i Azure Container Apps

Den här konfigurationsguiden visar hur du konfigurerar Azure Container Apps att vidarebefordra loggar, spårningar och mått till New Relic med hjälp av den hanterade OpenTelemetry-agenten.

Mer information om den hanterade OpenTelemetry-agenten finns i Set up OpenTelemetry agents in Azure Container Apps.

I den här guiden lär du dig att:

  • Skapa en ny inmatningsnyckel för Relic.
  • Konfigurera ett nytt Relic OTLP-mål med hjälp av Bicep eller Azure portalen.
  • Konfigurera nödvändiga appmiljövariabler.
  • Tillämpa konfigurationsuppdateringar på din befintliga Container Apps-miljö och -app.
  • Kontrollera telemetri i New Relic.

Förutsättningar

  • En Azure prenumeration där du kan uppdatera befintliga Azure Container Apps resurser.
  • Behörigheter för att ändra målresursgruppen och den hanterade miljön.
  • Ett nytt Relic-konto.
  • Azure CLI installerat och loggat in.
  • Azure Container Apps CLI-tillägget installerat.
az extension add --name containerapp --upgrade

Skapa en New Relic-inmatningsnyckel

Använd vägledningen för att skapa API-nyckel för att skapa din nya relik-API-nyckel: Nya relik-API-nycklar. Välj inmatning – licensnyckeltyp när du skapar nyckeln, eftersom den här typen används för inmatning av data.

Hämta värdet för ingest-licensnyckeln från ditt konto:

  • I Ny relik går du till API-nycklar.
  • Hitta nyckeln Ingest - License.
  • Kopiera nyckelvärdet för användning i målkonfigurationen.

Konfigurera OpenTelemetry-mål

Använd något av följande alternativ för att konfigurera New Relic som en OTel-slutpunkt i din Container Apps-miljö.

Important

När du konfigurerar ett hanterat OpenTelemetry-mål genereras inte telemetri automatiskt. Programmet måste redan vara instrumenterat för att generera spårningar, mått och loggar med hjälp av en OpenTelemetry SDK.

Ange CLI-variabler för distribution:

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

Använd den nya Relic OTLP-basslutpunkten (https://otlp.nr-data.net) med lämplig OTLP-port:

  • HTTP: 4318
  • gRPC: 4317

Använd det här kodfragmentet i resursformat för hanterad miljö för att konfigurera målroutning:

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

Använd det här kodfragmentet i appresursformat för att ange nödvändiga appmiljövariabler:

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

Använd din Bicep-konfiguration från rotkatalogen i lagringsplatsen:

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"

Containerappen har nu konfigurerats för att skicka telemetri till New Relic.

Kontrollera telemetri i New Relic

Efter konfigurationen kontrollerar du att loggar, spårningar och mått kommer från ditt program i New Relic och är associerade med den förväntade tjänstidentiteten.

Använd de nya relikupplevelser som passar ditt arbetsflöde, till exempel distribuerad spårning, loggsökning och utforskning av mått.

Mer information om utforskning och analys i New Relic finns i New Relic-dokumentationen.