Exportar OpenTelemetry para New Relic no Azure Container Apps

Este guia de configuração mostra como configurar o serviço Azure Container Apps para encaminhar registos, rastreios e métricas para o New Relic, utilizando o agente OpenTelemetry gerido.

Para mais informações sobre o agente OpenTelemetry gerido, consulte configurar agentes OpenTelemetry em Azure Container Apps.

Neste guia, você aprenderá a:

  • Criar uma nova chave de ingestão do New Relic.
  • Configura um destino OTLP do New Relic usando o Bicep ou o portal Azure.
  • Configure as variáveis necessárias do ambiente da aplicação.
  • Aplique atualizações de configuração ao seu ambiente e aplicação Container Apps existentes.
  • Verifique a telemetria no New Relic.

Pré-requisitos

  • Uma subscrição do Azure onde podes atualizar os recursos existentes do Azure Container Apps.
  • Permissões para modificar o grupo de recursos alvo e o ambiente gerido.
  • Uma nova conta Relic.
  • CLI do Azure instalado e autenticado.
  • Extensão da CLI do Azure Container Apps instalada.
az extension add --name containerapp --upgrade

Criar uma nova chave de ingestão do New Relic

Use as orientações para criação de chaves API para criar a sua nova chave API Relic: Novas chaves API Relic. Escolha o tipo Ingest - Chave de Licença ao criar a chave, pois este tipo é usado para a ingestão de dados.

Obtenha o valor da chave da licença de ingestão da sua conta:

  • No New Relic, vai a API Keys.
  • Localize a chave Ingest - License.
  • Copie o valor da chave para uso na configuração de destino.

Configurar os destinos do OpenTelemetry

Use uma das seguintes opções para configurar o New Relic como um endpoint OTel no seu ambiente Container Apps.

Importante

Configurar um destino OpenTelemetry gerido não produz automaticamente telemetria. A sua aplicação deve já estar instrumentada para emitir traços, métricas e logs usando um SDK OpenTelemetry.

Defina variáveis CLI para implementação:

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

Utilize o endpoint base OTLP da New Relic (https://otlp.nr-data.net) com a porta OTLP adequada:

  • HTTP: 4318
  • gRPC: 4317

Utilize este fragmento no estilo de recurso de ambiente gerido para configurar o encaminhamento de destino:

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

Use este excerto ao estilo de recurso da aplicação para definir as variáveis necessárias do ambiente da aplicação:

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

Aplique a sua configuração Bicep a partir da raiz do repositório:

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"

A sua aplicação Container está agora configurada para enviar telemetria para a New Relic.

Verifica a telemetria em New Relic

Após a configuração, verifique se os logs, rastreios e métricas estão a chegar da sua aplicação no New Relic e que estão associados à identidade de serviço esperada.

Use as experiências New Relic que se adaptem ao seu fluxo de trabalho, como rastreamento distribuído, pesquisa de registos e exploração de métricas.

Para mais informações sobre exploração e análise em New Relic, consulte a documentação New Relic.