Azure Container Apps で OpenTelemetry New Relic をエクスポートする

この構成ガイドでは、マネージド OpenTelemetry エージェントを使用してログ、トレース、メトリックを New Relic に転送するようにAzure Container Appsを構成する方法について説明します。

マネージド OpenTelemetry エージェントの詳細については、「Set up OpenTelemetry agents in Azure Container Apps」を参照してください。

このガイドでは、以下の方法について説明します。

  • New Relic の取り込みキーを作成します。
  • Bicep または Azure portal を使用して、New Relic OTLP の送信先を構成します。
  • 必要なアプリ環境変数を構成します。
  • 既存の Container Apps 環境とアプリに構成の更新を適用します。
  • New Relic でテレメトリを確認します。

Prerequisites

  • 既存のAzure Container Apps リソースを更新できるAzure サブスクリプション。
  • ターゲット リソース グループとマネージド環境を変更するためのアクセス許可。
  • New Relic アカウント。
  • Azure CLI がインストールされ、サインインされました。
  • AZURE CONTAINER APPS CLI 拡張機能がインストールされています。
az extension add --name containerapp --upgrade

New Relic の取り込みキーを作成する

API キーの作成ガイダンスを使用して、New Relic API キー New Relic API キーを作成します。 データ取り込みにはこの種類が使用されるため、キーの作成時に取り込み - ライセンス キーの種類を選択します。

アカウントからインジェスト ライセンスキーの値を取得する:

  • New Relic で、 API キーに移動します。
  • Ingest - License キーを見つけてください。
  • コピー先の構成で使用するキー値をコピーします。

OpenTelemetry の送信先を設定する

次のいずれかのオプションを使用して、Container Apps 環境で New Relic を OTel エンドポイントとして構成します。

Important

マネージド OpenTelemetry の送信先を構成しても、テレメトリーが自動的に生成されるわけではありません。 OpenTelemetry SDK を使用してトレース、メトリック、ログを出力するには、アプリケーションが既にインストルメント化されている必要があります。

デプロイ用の CLI 変数を設定します。

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

適切な OTLP ポートで New Relic OTLP ベース エンドポイント (https://otlp.nr-data.net) を使用します。

  • HTTP: 4318
  • gRPC: 4317

次のマネージド環境リソース スタイルのスニペットを使用して、宛先ルーティングを構成します。

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

必要なアプリ環境変数を設定するには、次のアプリ リソース スタイルのスニペットを使用します。

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構成を適用します。

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"

これで、テレメトリを New Relic に送信するようにコンテナー アプリが構成されました。

New Relic でテレメトリを確認する

構成後、ログ、トレース、メトリックが New Relic のアプリケーションから到着し、予想されるサービス ID に関連付けられていることを確認します。

分散トレース、ログ検索、メトリック探索など、ワークフローに合った New Relic エクスペリエンスを使用します。

New Relic の探索と分析の詳細については、 New Relic のドキュメントを参照してください