Azure MonitorのOTLPネイティブ取り込みとは?AMA公開プレビューで実装・移行が楽になる点

Azure Monitor の監視基盤を OpenTelemetry に寄せたい開発者にとって、2026年4月20日に公開された Azure Monitor native OTLP ingestion via Azure Monitor Agent のパブリックプレビューは重要な更新です。結論から言うと、Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバー上のアプリケーションは、OpenTelemetry の OTLP データをローカルの Azure Monitor Agent に送れるようになり、アプリ側の実装、認証、ルーティング、DCR 管理を分離しやすくなります。(マイクロソフト)

ただし、この機能はプレビュー段階であり、Microsoft はプレビュー機能を SLA なしで提供し、本番ワークロードには推奨しないと明記しています。すぐに全面移行するというより、まずは開発環境、検証環境、一部の VM ワークロードで試し、既存の Application Insights や OpenTelemetry Collector 構成と比較しながら移行判断を進めるのが現実的です。(Microsoft Learn)

目次

Azure Monitor native OTLP ingestion via Azure Monitor Agentとは

Azure Monitor native OTLP ingestion via Azure Monitor Agent は、OpenTelemetry Protocol、つまり OTLP 形式のメトリック、ログ、トレースを Azure Monitor に取り込むための新しい経路です。

これまで Azure Monitor で OpenTelemetry を使う場合、多くの開発チームは次のような構成を選んでいました。

  • アプリに Azure Monitor OpenTelemetry Distro を組み込む
  • OpenTelemetry Collector を立てて Azure Monitor に送る
  • AKS の場合は Azure Monitor の Kubernetes 向けアドオンを使う
  • 既存の Application Insights SDK から段階的に移行する

今回の AMA 経由の OTLP 取り込みでは、Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバーで動くアプリケーションが、ローカルホスト上の Azure Monitor Agent に OTLP を送信します。Azure Monitor Agent は認証と Azure Monitor エンドポイントへのルーティングを担います。(Microsoft Learn)

つまり、アプリケーション開発者は「Azure Monitor 専用の送信処理をアプリに深く埋め込む」のではなく、「OpenTelemetry SDK で標準的に計装し、OTLP エクスポート先をローカルの AMA に向ける」という考え方に近づきます。

今回の更新で実装・移行・自動化が楽になるポイント

アプリ側は「Azure Monitor固有実装」から「標準OTLP送信」に寄せやすい

開発者にとって一番分かりやすいメリットは、アプリケーション側の責務を小さくできる点です。

従来は、アプリごとに Azure Monitor Exporter や接続文字列、認証情報、送信先エンドポイントを意識する構成になりがちでした。AMA 経由の構成では、アプリは OpenTelemetry SDK でメトリック、ログ、トレースを生成し、OTLP gRPC の送信先をローカルホストに向けます。

公式ドキュメントでは、メトリックは localhost:4317、ログとトレースは localhost:4319 に送る例が示されています。Application Insights ベースの DCR を使う場合は、microsoft.applicationId リソース属性も必要です。(Microsoft Learn)

export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT="http://localhost:4317"
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="http://localhost:4319"
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="http://localhost:4319"
export OTEL_RESOURCE_ATTRIBUTES="microsoft.applicationId=<your-application-id>"
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta
export OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION=base2_exponential_bucket_histogram

既に service.name や deployment.environment などの属性を設定している場合は、OTEL_RESOURCE_ATTRIBUTES を上書きせず、カンマ区切りで追記する形にします。

export OTEL_RESOURCE_ATTRIBUTES="service.name=orders-api,deployment.environment=staging,microsoft.applicationId=<your-application-id>"

この構成にすると、アプリケーションコードの変更を最小限に抑えながら、監視基盤側の変更を Azure Monitor Agent、DCR、IAM、Azure Policy で扱いやすくなります。

プラットフォームチームはDCR中心に収集設定を管理しやすくなる

Azure Monitor の DCR、つまり Data Collection Rule は、収集対象、変換、送信先を定義する Azure リソースです。Microsoft は DCR ベースのデータ収集について、構成方法の一貫性、取り込み前の変換、Infrastructure as Code や DevOps プロセスに対応しやすいスケーラブルな管理を利点として説明しています。(Microsoft Learn)

このため、Platform Engineering や DevOps チームは、アプリごとの個別設定ではなく、次のような単位で監視設定を管理しやすくなります。

管理対象従来起きやすかった課題AMA経由OTLPで楽になる点
アプリの送信先アプリごとに接続文字列や送信先が散らばるOTLP送信先をローカルAMAに寄せやすい
認証アプリ側に秘密情報を持たせがちマネージドIDとDCRへの権限付与で整理しやすい
収集ルール言語・サービスごとに設定が分散するDCR/DCRAでAzureリソースとして管理できる
大規模展開VM追加時に監視設定漏れが起きるAzure PolicyやIaCで関連付けを自動化しやすい
移行一気にSDKを置き換える必要があるワークロード単位で段階的に検証しやすい

特に VM や Arc 対応サーバーを多く運用している組織では、「アプリチームは OpenTelemetry に集中し、プラットフォームチームは Azure Monitor Agent と DCR を管理する」という分担がしやすくなります。

認証とルーティングをアプリから切り離せる

AMA 経由の構成では、コンピューティングリソースでシステム割り当てマネージド ID を有効化し、その ID に DCR へ書き込むための Monitoring Metrics Publisher ロールを割り当てます。公式ドキュメントでは、AMA が使うマネージド ID には DCR へデータを書き込む権限が必要とされています。(Microsoft Learn)

これは実務上かなり大きい変更です。アプリケーションの環境変数やシークレットストアに Azure Monitor の資格情報を持たせる範囲を減らし、VM や Arc サーバーの ID を起点に監視データ送信を管理できます。

ただし、これは「認証設定が不要になる」という意味ではありません。マネージド ID の有効化、DCR への RBAC、DCR と対象リソースの関連付けが必要です。ここを飛ばすと、アプリが OTLP を送っていても Azure Monitor 側にデータが出ません。

対応ワークロードと採用判断

Azure Monitor は OTLP 信号の取り込み経路として、OpenTelemetry Collector、Azure Monitor Agent、AKS アドオンの3つを示しています。AMA 経由は、Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバー上のアプリケーション向けの経路です。(Microsoft Learn)

ワークロードAMA経由OTLPの適性判断ポイント
Azure VM上のWeb/APIアプリ高いAMAを既に使っている、またはVM監視をDCRで統一したい場合に向く
Virtual Machine Scale Sets高いスケールアウト時のDCR関連付けをPolicyやIaCで自動化できるかが重要
Azure Arc対応サーバー高いオンプレ・他クラウドのサーバーをAzure Monitorに集約したい場合に有効
AKS上のアプリ中AKSアドオンやCollectorとの比較が必要。AMA経由だけで考えない
非Azure・非Arcのサーバー低OpenTelemetry Collector経由の方が現実的
SLAが必要な本番システム低プレビュー段階のため、まず検証環境や限定的な本番外ワークロードで確認する

OpenTelemetry Collector 経由の取り込みも引き続き選択肢です。Collector 経由では、Azure Monitor のクラウド取り込みエンドポイントへ送信し、Collector 0.132.0 以上と Azure Authentication extension が前提として示されています。非Azure環境、複数バックエンドへの同時送信、Collectorでの加工が必要な場合は、Collector構成の方が向くケースがあります。(Microsoft Learn)

実装手順の全体像

AMA 経由の OTLP 取り込みは、アプリだけで完結しません。Azure リソース、エージェント、DCR、ID、アプリ環境変数を順番にそろえる必要があります。

事前に確認すること

確認項目見るべきポイント
アプリの計装OpenTelemetry SDKでメトリック、ログ、トレースを出せるか
ホスト環境Azure VM、VMSS、Azure Arc対応サーバーか
AMAバージョンWindowsは1.38.1以上、Linuxは1.37.0以上か
DCRApplication Insightsベースで自動作成するか、手動で作るか
IDシステム割り当てマネージドIDを有効化できるか
RBACDCRに対してMonitoring Metrics Publisherを割り当てられるか
メトリック形式delta temporality と exponential histogram aggregation を使えるか

AMA の最低バージョンは、VM と Virtual Machine Scale Sets のデプロイで Windows 1.38.1 以上、Linux 1.37.0 以上とされています。(Microsoft Learn)

推奨ルートはApplication InsightsのOTLPサポートを使う構成

Microsoft のドキュメントでは、ほとんどのシナリオで Application Insights ベースの方法が推奨されています。この方法では必要な Azure リソースと関係性の作成が自動化され、Application Insights のアプリケーション性能監視、分散トレース、障害分析を利用できます。(Microsoft Learn)

まず、Application Insights OTLP プレビュー機能とプロバイダーを登録します。

az feature register --name OtlpApplicationInsights --namespace Microsoft.Insights

az feature list -o table \
  --query "[?contains(name, 'Microsoft.Insights/OtlpApplicationInsights')].{Name:name,State:properties.state}"

az provider register -n Microsoft.Insights

その後、Azure ポータルで Application Insights リソースを作成し、Basics タブで OTLP サポートを有効にします。作成後は Application Insights の Overview にある OTLP Connection Info から DCR リソース ID を確認します。Collectorを使う場合はトレース、ログ、メトリックのエンドポイントURLも使いますが、AMA経由ではアプリ側の送信先はローカルホストです。(Microsoft Learn)

Azure Monitor Agentを導入または更新する

Azure Monitor Agent は Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバーにインストールできます。Microsoft のドキュメントでは、Azure CLI、PowerShell、ARMテンプレート、Azure Policy など複数の導入方法が示されています。また、Azure Monitor Agent のインストール、更新、アンインストールではマシン再起動は不要とされています。(Microsoft Learn)

Azure VM に CLI で入れる場合の例は次のとおりです。

# Windows VM
az vm extension set \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --ids <vm-resource-id> \
  --enable-auto-upgrade true

# Linux VM
az vm extension set \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --ids <vm-resource-id> \
  --enable-auto-upgrade true

Azure Arc 対応サーバーの場合は、az connectedmachine extension create を使います。

# Windows Arc-enabled server
az connectedmachine extension create \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --type AzureMonitorWindowsAgent \
  --machine-name <arc-server-name> \
  --resource-group <resource-group-name> \
  --location <arc-server-location> \
  --enable-auto-upgrade true

# Linux Arc-enabled server
az connectedmachine extension create \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --type AzureMonitorLinuxAgent \
  --machine-name <arc-server-name> \
  --resource-group <resource-group-name> \
  --location <arc-server-location> \
  --enable-auto-upgrade true

既に AMA を使っている環境では、最低バージョンを満たしているかを先に確認します。古いエージェントが混在していると、アプリ側の OTLP 設定が正しくても取り込みに失敗する可能性があります。

DCRを対象リソースに関連付ける

DCR は作成しただけでは対象 VM に適用されません。Data Collection Rule Association、つまり DCRA によって、DCR と対象リソースを関連付ける必要があります。Microsoft は DCRA を作成する方法として Azure portal、CLI、PowerShell、ARMテンプレートなどを示しています。(Microsoft Learn)

CLI で関連付ける例は次のとおりです。

az monitor data-collection rule association create \
  --name "my-vm-dcr-association" \
  --rule-id "<dcr-resource-id>" \
  --resource "<vm-or-arc-resource-id>"

大規模運用では、手作業で関連付けると漏れが起きます。新規 VM やスケールアウトしたインスタンスにも適用したい場合は、Azure Policy や IaC を使って、AMA の導入と DCR 関連付けをセットで自動化するのが現実的です。DCR関連付けは Azure Policy により複数リソースへスケールして適用でき、新しく作成された対象リソースにも関連付けを作れると説明されています。(Microsoft Learn)

手動リソースオーケストレーションを選ぶべきケース

Application Insights ベースの作成は便利ですが、すべての組織に最適とは限りません。既存の Log Analytics ワークスペースや Azure Monitor ワークスペースを使いたい、DCE/DCR の構成を細かく制御したい、複数環境でテンプレート化したい場合は、手動リソースオーケストレーションを選びます。

手動構成では、ログとトレース用の Log Analytics ワークスペース、メトリック用の Azure Monitor ワークスペースを同じ Azure リージョンに用意し、DCE と DCR を作成します。Application Insights のトラブルシューティング体験を使いたい場合は、同じリージョンに Application Insights リソースも用意します。(Microsoft Learn)

選択肢向いているケース注意点
Application Insightsベース早く検証したい、APM体験を使いたい、DCR作成を自動化したい既存リソースの再利用や細かい構成には制約が出る可能性がある
手動リソースオーケストレーション既存LAW/AMWを使いたい、IaCで統制したい、DCE/DCRを細かく管理したいDCE、DCR、ワークスペース、App Insights参照の設計が必要
OpenTelemetry Collector経由非Azure環境、複数送信先、Collectorでの加工が必要Collector運用、認証拡張、バージョン管理が必要
Azure Monitor OpenTelemetry Distro言語別のAzure Monitor統合や自動計装を使いたいアプリ側にAzure Monitor向け設定が残りやすい

Azure Monitor OpenTelemetry Distro は不要になるわけではありません。Microsoft は Distro について、Azure Monitor 向け機能を含む OpenTelemetry distribution であり、自動テレメトリ、カスタムテレメトリ、Live Metrics をサポートすると説明しています。コードベースのサーバーサイドアプリでは、引き続き Distro が分かりやすい選択肢になる場面があります。(Microsoft Learn)

移行判断の実務チェックリスト

AMA 経由の OTLP 取り込みは魅力的ですが、既存の監視基盤から急に切り替えると、データ欠損、二重取り込み、アラート誤発報が起きやすくなります。移行は次の順番で進めると安全です。

ステップ作業判断基準
現状棚卸しClassic Application Insights SDK、Azure Monitor Distro、Collector、独自ログ送信を洗い出すどのアプリが何を送っているか分かる
対象選定VM/VMSS/Arc上の低リスクアプリを選ぶプレビュー検証に適したワークロードである
並行検証既存経路とAMA経由を短期間比較するトレース、ログ、メトリックが期待通り見える
重複排除二重送信しているExporterや設定を整理する取り込みコストとノイズが増えていない
自動化AMA、DCR、DCRA、RBACをIaC化する手作業なしで再現できる
運用確認アラート、ダッシュボード、トラブルシュート手順を更新する障害時に誰が何を見るか明確である

移行時に重要なのは、「OpenTelemetry になったから終わり」ではなく、「Azure Monitor 上でどの体験を使うか」まで確認することです。Application Insights では、Application dashboard、Application map、Live metrics、Search view、Failures view、Performance view、Logs、Workbooks、Grafana ダッシュボードなどの体験が用意されています。(Microsoft Learn)

つまずきやすいポイント

メトリックの形式が合わずダッシュボードに出ない

Application Insights の事前構築済みダッシュボードやクエリでは、OTLP メトリックに delta temporality と exponential histogram aggregation が必要です。受信メトリックが cumulative temporality の場合は、メトリック構成で cumulativetodelta プロセッサを使う必要があると説明されています。(Microsoft Learn)

AMA 経由の検証で「トレースは見えるがメトリックが期待通り出ない」という場合は、まずメトリックの temporality と histogram aggregation を確認します。

メトリックとログ・トレースのポートを混同する

AMA 経由の例では、メトリックは 4317、ログとトレースは 4319 です。一般的な OTLP のデフォルトポートだけを前提にしていると、ログやトレースが届かない原因になります。(Microsoft Learn)

アプリの OTLP exporter が「全シグナルを同じエンドポイントに送る」設定になっている場合は、メトリックとログ・トレースを分けられるか確認してください。

microsoft.applicationId を設定していない

Application Insights が作成した DCR を使う場合、microsoft.applicationId リソース属性が必要です。手動作成した DCR に Application Insights ID を含める場合も、取り込んだデータを Application Insights リソースごとに分離するために必要です。(Microsoft Learn)

この属性が抜けると、データは送れているように見えても、Application Insights の期待する表示や分類に乗らない可能性があります。

DCRを作っただけで満足してしまう

DCR は収集ルールであり、対象リソースへの関連付けが必要です。DCRA がない、または対象 VM と異なる DCR に関連付いている場合、AMA は期待したルールで動きません。

検証時は次の3点をセットで確認します。

  • 対象 VM または Arc サーバーに AMA が入っている
  • 対象 VM または Arc サーバーに DCR が関連付いている
  • その DCR に対してマネージド ID が書き込み権限を持っている

プレビュー機能を本番標準にしてしまう

今回の機能はパブリックプレビューです。検証価値は高いものの、SLA が必要な本番システムで、既存の安定した監視経路をすぐに置き換える判断は慎重にすべきです。まずは本番外、または影響範囲の小さい本番周辺ワークロードで、可観測性、コスト、運用手順、障害時の切り戻しを確認します。(Microsoft Learn)

開発者・Platform Engineer・DevOpsで見るべき観点

開発者が見るべきこと

開発者は、アプリが正しく OpenTelemetry シグナルを出しているかに集中します。

特に確認すべき点は次の通りです。

  • service.name が明確に設定されているか
  • 環境名やバージョンがリソース属性に入っているか
  • トレースIDがサービス間でつながっているか
  • 例外、HTTPステータス、DB呼び出しなどの重要なスパンが欠けていないか
  • メトリックの temporality が Azure Monitor 側の期待に合っているか

AMA 経由になると、送信先のクラウドエンドポイントや認証処理をアプリに抱え込みにくくなります。その分、開発者は「良いテレメトリを出す」ことに注力しやすくなります。

Platform Engineerが見るべきこと

Platform Engineer は、Azure Monitor Agent、DCR、DCRA、RBAC、Azure Policy、IaC の設計を見るべきです。

特に VM や Arc 対応サーバーが多い環境では、次の設計が重要になります。

  • DCRを環境別に分けるか、アプリ種別別に分けるか
  • DCR名やDCRA名の命名規則をどうするか
  • 新規VM作成時にAMAとDCR関連付けを自動化できるか
  • 監視データの送信先ワークスペースをどのリージョンに置くか
  • 権限付与を最小権限で運用できるか

DCRはAzureリソースとして管理できるため、Bicep、ARMテンプレート、Terraformなどによる再現性のある構成管理と相性が良い領域です。

DevOpsチームが見るべきこと

DevOps チームは、監視の切り替えがデプロイパイプラインや障害対応に与える影響を見ます。

具体的には、次の確認が必要です。

  • アプリのデプロイ時にOTLP環境変数が正しく入るか
  • 既存のアラートが新しいデータ経路でも動くか
  • ダッシュボードの参照先が変わらないか
  • 二重取り込みによってコストやアラート件数が増えないか
  • 切り戻し時に旧Exporterや旧Collector構成へ戻せるか

監視基盤の移行は、アプリの機能リリースとは別のリスクを持ちます。CI/CD に組み込む場合も、まずは監視設定を独立した変更として扱い、データ到達とアラート挙動を確認してから本格展開するのが安全です。

まず何から試すべきか

最初の検証対象としておすすめなのは、Azure VM または Arc 対応サーバー上で動く、トラフィック量が中程度の API アプリです。トレース、ログ、メトリックが一通り出るため、AMA 経由 OTLP のメリットと課題を確認しやすいからです。

検証では、次の最小ゴールを設定します。

ゴール確認内容
トレース確認リクエスト単位で処理の流れを追える
ログ確認アプリログが期待した属性付きで見える
メトリック確認レイテンシ、リクエスト数、エラー率などが見える
権限確認アプリ側に不要なAzure Monitor資格情報を持たせていない
自動化確認AMA、DCR、DCRA、RBACを再現可能な手順で作れる
切り戻し確認旧経路へ戻す手順が明確である

この検証で問題がなければ、次に同じアプリ種別の複数 VM、VMSS、Arc 対応サーバーへ展開します。いきなり全アプリへ広げるのではなく、DCR とロール割り当てのテンプレートを固めてから横展開する方が失敗しにくくなります。

Azure Monitor運用は「アプリ実装」から「収集基盤設計」へ寄っていく

Azure Monitor native OTLP ingestion via Azure Monitor Agent の価値は、単に OTLP を受け取れるようになったことではありません。より重要なのは、アプリケーション側の送信実装、Azure Monitor への認証、DCR ベースの収集ルール、VM/Arc 単位の関連付けを分離しやすくなる点です。

開発者は OpenTelemetry による計装品質を高め、Platform Engineer は AMA と DCR を標準化し、DevOps チームは移行と運用を自動化する。この分担ができると、Azure Monitor の監視基盤は個別アプリ依存から、再利用しやすいプラットフォーム設計へ近づきます。

現時点ではパブリックプレビューのため、本番標準として即採用するよりも、VM/VMSS/Arc の検証ワークロードで試し、既存の Azure Monitor OpenTelemetry Distro や OpenTelemetry Collector 構成と比較するのが現実的です。次に取るべき行動は、対象アプリを1つ選び、Application Insights の OTLP サポート、AMA の最低バージョン、DCR 関連付け、マネージド ID 権限、OTLP 環境変数の5点をそろえて、小さく検証を始めることです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次