Exportación de OpenTelemetry New Relic en Azure Container Apps

En esta guía de configuración se muestra cómo configurar Azure Container Apps para reenviar registros, seguimientos y métricas a New Relic mediante el agente de OpenTelemetry administrado.

Para obtener más información sobre el agente de OpenTelemetry administrado, consulte Set up OpenTelemetry agents in Azure Container Apps.

En esta guía, aprenderá a:

  • Cree una clave de ingesta de New Relic.
  • Configure un destino de OTLP de New Relic mediante Bicep o el portal de Azure.
  • Configure las variables de entorno de aplicación necesarias.
  • Aplique actualizaciones de configuración al entorno y la aplicación de Container Apps existentes.
  • Compruebe la telemetría en New Relic.

Prerequisites

  • Una suscripción Azure donde puede actualizar los recursos de Azure Container Apps existentes.
  • Permisos para modificar el grupo de recursos de destino y el entorno administrado.
  • Una cuenta de New Relic.
  • CLI de Azure instalada e iniciada sesión.
  • Extensión de la CLI de Azure Container Apps instalada.
az extension add --name containerapp --upgrade

Creación de una clave de ingesta de New Relic

Use la guía de creación de claves de API para crear la clave de API de New Relic: Claves de API de New Relic. Seleccione el tipo Ingest - License Key al crear la clave, ya que este tipo se utiliza para la ingesta de datos.

Obtenga el valor de clave de licencia de ingesta desde la cuenta:

  • En New Relic, vaya a Claves de API.
  • Busque la clave Ingest - License.
  • Copie el valor de clave para su uso en la configuración de destino.

Configuración de destinos de OpenTelemetry

Use una de las siguientes opciones para configurar New Relic como punto de conexión de OTel en el entorno de Container Apps.

Importante

La configuración de un destino de OpenTelemetry administrado no genera automáticamente telemetría. La aplicación ya debe instrumentarse para emitir seguimientos, métricas y registros mediante un SDK de OpenTelemetry.

Establecer variables de la CLI para la implementació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>"

Use el punto de conexión base de OTLP de New Relic (https://otlp.nr-data.net) con el puerto OTLP adecuado:

  • HTTP: 4318
  • gRPC: 4317

Use este fragmento de código de estilo de recurso de entorno administrado para configurar el enrutamiento 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 fragmento de código de estilo de recurso de aplicación para establecer las variables de entorno de aplicación necesarias:

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 la configuración de Bicep desde la raíz del repositorio:

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"

La aplicación de contenedor está configurada ahora para enviar telemetría a New Relic.

Comprobación de la telemetría en New Relic

Después de la configuración, compruebe que los registros, los seguimientos y las métricas llegan desde la aplicación en New Relic y están asociados a la identidad de servicio esperada.

Use las experiencias de New Relic que se ajusten al flujo de trabajo, como el seguimiento distribuido, la búsqueda de registros y la exploración de métricas.

Para obtener más información sobre la exploración y el análisis en New Relic, consulte la documentación de New Relic.