この構成ガイドでは、マネージド 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 のドキュメントを参照してください。