Azure MonitorのOTLPネイティブインジェストとは?AMAで変わるOpenTelemetry設計

Azure Monitor で OpenTelemetry を使う場合、これまで悩みやすかったのが「アプリから直接送るのか、OpenTelemetry Collector を置くのか、Azure Monitor Agent を使うのか」という取り込み経路の設計でした。結論から言うと、2026年4月20日に発表された Azure Monitor Agent(AMA)による OTLP ネイティブインジェストのパブリックプレビューにより、Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバーの監視設計では、AMA をローカルの OTLP 受け口として使う選択肢が現実的になりました。(Microsoft)

これは単なる新機能ではありません。OpenTelemetry の計装を保ちながら、認証・ルーティング・Azure Monitor への転送をホスト側のエージェントに寄せられるため、Observability engineers、SRE、platform teams、cloud architects にとって、監視基盤の標準化と運用負荷の下げ方が変わります。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

Azure Monitor の OTLP ネイティブインジェストとは

Azure Monitor の OTLP ネイティブインジェストは、OpenTelemetry Protocol(OTLP)のシグナルを Azure Monitor 側で受け取り、Application Insights、Log Analytics、Azure Monitor Workspace、Grafana などの分析・可視化につなげるための仕組みです。

OpenTelemetry は、トレース、メトリック、ログなどのテレメトリを収集・処理・エクスポートするための標準的な枠組みです。OTLP はそのデータを送るためのプロトコルで、アプリケーションと監視バックエンドを疎結合にしやすい点が大きな価値です。(OpenTelemetry)

今回注目すべき点は、Azure Monitor Agent が OTLP の受け口になれることです。アプリケーションは OpenTelemetry SDK や OTLP exporter でローカルの AMA にデータを送り、AMA が Azure Monitor への転送を担います。Microsoft の発表では、Azure VM、Virtual Machine Scale Sets、Azure Arc 対応プラットフォームでサポートされると説明されています。(Microsoft)

これまでの設計で起きやすかった課題

OpenTelemetry を Azure Monitor に送る設計では、よく次のような課題がありました。

課題現場で起きること
Collector を誰が管理するか決まらないアプリチーム、SRE、プラットフォームチームの責任分界が曖昧になる
アプリごとに exporter 設定がばらつく接続先、認証、サンプリング、属性付与が統一されない
VM と Kubernetes で設計が分断されるAKS はアドオン、VM は Collector、別環境は別方式になり運用が複雑化する
ベンダー固有 SDK への依存を避けたいOpenTelemetry に寄せたいが、Azure Monitor 側の取り込み経路で迷う
認証情報の扱いが難しいアプリケーションに接続文字列や認証設定を持たせる範囲が増える

AMA による OTLP ネイティブインジェストは、特に VM と Arc サーバーの領域で「アプリは標準の OTLP をローカルに送る」「Azure への転送はホスト側の AMA が担う」という分担を作りやすくします。

なぜ Azure Monitor の OpenTelemetry 採用で重要なのか

ベンダー中立の計装を維持しやすくなる

OpenTelemetry 採用の主な狙いは、アプリケーションの計装を特定ベンダーの SDK だけに閉じないことです。コード側は OpenTelemetry の API、SDK、semantic conventions に寄せ、バックエンドは Azure Monitor、他の APM、データレイクなどに切り替えやすくする。これが多くのプラットフォームチームにとって重要な設計思想です。

AMA が OTLP を受けられるようになると、Azure 上の VM ワークロードでは、アプリケーションを Azure Monitor 専用 exporter に強く結びつけずに済む場面が増えます。アプリ側は OTLP endpoint を localhost に向け、監視基盤側で DCR、DCE、ワークスペース、Application Insights との接続を管理する構成にできます。

Collector を置かない選択肢が増える

OpenTelemetry Collector は非常に強力です。テレメトリの変換、フィルタリング、サンプリング、複数バックエンドへの分岐などを行うには、今後も重要な選択肢です。

ただし、すべての VM ワークロードで Collector を運用したいとは限りません。Collector を入れると、構成ファイル、バージョン管理、セキュリティパッチ、プロセス監視、スケール設計が必要になります。Azure Monitor Agent で十分な要件であれば、Collector を追加せずに OTLP を Azure Monitor へ流せるため、監視パイプラインを軽くできます。

Microsoft Learn でも、AMA 方式は Azure VM、Virtual Machine Scale Sets、Azure Arc 対応サーバー上のアプリケーションから OTLP シグナルを取り込む方式として位置付けられています。(Microsoft Learn)

認証とルーティングをホスト側に寄せられる

AMA 方式では、アプリケーションがローカルの AMA に OTLP を送信し、AMA が Azure Monitor エンドポイントへの認証とルーティングを処理します。ドキュメントでは、コンピューティングリソースでシステム割り当てマネージド ID を有効にし、その ID に DCR へ書き込むための Monitoring Metrics Publisher ロールを割り当てる手順が示されています。(Microsoft Learn)

これはセキュリティ設計上も意味があります。アプリケーションごとに認証情報を細かく持たせるより、ホスト単位のマネージド ID と DCR association で制御したほうが、標準化しやすいケースがあるためです。

Application Insights、Log Analytics、Grafana への接続が整理される

Azure Monitor の OTLP ネイティブインジェストは、単にデータを受け取るだけではありません。発表では、OTLP データを Application Insights で監視・トリアージ・トラブルシュートに使えること、OTLP メトリックを Azure 上の Grafana ダッシュボードや Prometheus query language で可視化できること、ログとトレースを OpenTelemetry semantics で Log Analytics からクエリできることが説明されています。(Microsoft)

つまり、OpenTelemetry の標準データを Azure Monitor の分析体験に接続する道が広がったということです。SRE にとっては、インシデント対応時に「どのパイプラインで取ったデータか」ではなく、「どのサービスで何が起きたか」に集中しやすくなります。

AMA によって変わる監視アーキテクチャの選び方

Azure Monitor の OpenTelemetry 取り込みには、主に複数の経路があります。重要なのは「新しいから AMA を使う」ではなく、ワークロードの場所、運用体制、必要な加工処理、プレビュー利用の許容度で選ぶことです。

取り込み方式向いている環境主なメリット注意点
Azure Monitor Agent(AMA)による OTLP 取り込みAzure VM、VMSS、Azure Arc 対応サーバーホスト単位で標準化しやすい。Collector を別途管理しない構成を作れるパブリックプレビュー。対応バージョン、ポート、DCR、権限設定の確認が必要
OpenTelemetry Collector から Azure Monitor へ送信マルチクラウド、オンプレ、複雑な加工が必要な環境変換、フィルタ、サンプリング、複数バックエンド送信に強いCollector の運用管理が必要
Azure Monitor OpenTelemetry Distro.NET、Java、Node.js、Python などのアプリケーション中心の監視アプリ側に組み込みやすく、Application Insights 体験に入りやすい言語・機能の対応状況確認が必要
AKS アドオンAzure Kubernetes Serviceクラスター統合の監視設計に向くVM/Arc とは設計単位が異なる

Azure Monitor の公式ドキュメントでは、Azure Monitor が OTLP シグナルを受け取る方式として、OpenTelemetry Collector、Azure Monitor Agent、AKS アドオンの3つが整理されています。(Microsoft Learn)

AMA を選ぶべきケース

AMA 方式は、次の条件に当てはまる場合に有力です。

判断基準AMA が向いている理由
アプリが Azure VM、VMSS、Arc 対応サーバーで動いているAMA の対象環境と一致する
すでに AMA を標準エージェントとして使っている監視エージェントの運用を統一しやすい
アプリ側は OTLP 送信だけにしたい認証や Azure Monitor へのルーティングを AMA 側に寄せられる
Collector の高度な加工が不要追加コンポーネントを減らせる
プレビュー機能を検証環境や限定範囲で試せる現時点では本番全面移行より段階導入が適している

典型的な構成は次のようになります。

OpenTelemetry SDK を組み込んだアプリケーション
        ↓ OTLP gRPC
localhost の Azure Monitor Agent
        ↓
Data Collection Rule / Data Collection Endpoint
        ↓
Application Insights / Log Analytics / Azure Monitor Workspace
        ↓
Grafana / KQL / Application Insights の分析画面

この構成では、アプリケーション開発者は OpenTelemetry の計装と OTLP exporter の設定に集中できます。一方で、プラットフォームチームは AMA、DCR、RBAC、ワークスペース設計を IaC や Azure Policy で標準化しやすくなります。

OpenTelemetry Collector を選ぶべきケース

AMA が登場しても、Collector が不要になるわけではありません。むしろ、次のような要件では Collector のほうが適しています。

要件Collector が向いている理由
Azure 以外の環境からも同じパイプラインで送信したいAMA が使えない環境でも動かせる
複数の監視バックエンドへ同時送信したいexporter の分岐がしやすい
tail sampling、属性変換、フィルタリングが必要processor による加工が強い
既存の Prometheus、Jaeger、Zipkin などと統合したい多様な receiver を使える
中央集約型の observability gateway を作りたいチーム横断の制御点にしやすい

Azure Monitor の Collector 方式では、Azure Monitor クラウド取り込みエンドポイントへ送信する構成が説明されており、Collector のデプロイでは Azure 認証拡張機能を使用する Collector バージョン 0.132.0 以降が前提として示されています。(Microsoft Learn)

Azure Monitor OpenTelemetry Distro を選ぶべきケース

Azure Monitor OpenTelemetry Distro は、アプリケーションに OpenTelemetry ベースの収集を組み込み、Application Insights へ送るための現実的な入口です。公式ドキュメントでは、Application Insights が OpenTelemetry を使ってテレメトリを収集・分析できること、サーバーサイドアプリでは Distro を使う流れが示されています。(Microsoft Learn)

Distro は、次のようなケースに向いています。

ケース理由
アプリケーション単位で素早く APM を始めたいApplication Insights の体験に入りやすい
.NET、Java、Node.js、Python など対応言語で構成している言語別ガイドを使いやすい
ホスト側エージェントよりアプリ側設定を優先したい接続文字列を使った構成がしやすい
VM 以外の App Service、Functions、アプリ中心の設計をしているワークロードの種類に合わせやすい

ただし、Distro、AMA、Collector は競合するだけの関係ではありません。組織内では、AKS はアドオン、VM/Arc は AMA、特殊な加工が必要なチームは Collector、アプリ単位の簡易導入は Distro というように、複数の標準パターンを用意するほうが現実的です。

AMA で OTLP 取り込みを検証する実務ステップ

本番環境へ一気に展開する前に、まずは検証用の VM または Arc 対応サーバーで小さく試すのが安全です。現時点ではプレビュー機能であり、Microsoft Learn でもプレビュー機能は SLA なしで提供され、運用環境のワークロードには推奨されないと説明されています。(Microsoft Learn)

検証の進め方

ステップ実施内容確認ポイント
1. 対象ワークロードを選ぶVM、VMSS、Arc 対応サーバー上の小さなサービスを選定影響範囲が限定されているか
2. OpenTelemetry 計装を確認するSDK、auto-instrumentation、OTLP exporter を確認traces、metrics、logs のどれを送るか
3. Application Insights または手動リソース構成を選ぶ推奨は Application Insights ベースの作成DCR、DCE、ワークスペースの関係が明確か
4. AMA のバージョンを確認するWindows は 1.38.1 以上、Linux は 1.37.0 以上が必要古い AMA が残っていないか
5. DCR と対象リソースを関連付けるDCR association を構成対象 VM/Arc に正しく適用されているか
6. マネージド ID と権限を設定するMonitoring Metrics Publisher を割り当てDCR への書き込み権限があるか
7. アプリの OTLP endpoint を localhost に向けるmetrics、traces、logs の送信先を設定ポートを間違えていないか
8. Azure Monitor で確認するApplication Insights、Log Analytics、Grafana で確認欠落、重複、属性不足がないか

AMA 方式のドキュメントでは、VM と VMSS では Windows 版 AMA 1.38.1 以上、Linux 版 AMA 1.37.0 以上が前提として記載されています。(Microsoft Learn)

アプリケーション側の設定例

AMA 方式では、アプリケーションの OTLP exporter を localhost に向けます。Microsoft Learn の例では、メトリックは 4317、ログとトレースは 4319 の gRPC ポートを使う構成が示されています。(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

ここで特に注意したいのは、microsoft.applicationId、メトリックの temporality、ヒストグラム集計です。Application Insights の事前構築済みダッシュボードやクエリでは、OTLP メトリックに delta temporality と exponential histogram aggregation が求められると説明されています。(Microsoft Learn)

失敗しやすいポイント

OTLP のデフォルトポートと AMA のポートを混同する

一般的な OTLP gRPC の既定ポートとして 4317 を使うケースは多いですが、AMA 方式ではメトリックが 4317、ログとトレースが 4319 として示されています。既存の Collector や別プロセスが 4317 を使っている場合、ポート競合や送信先ミスが起きやすくなります。

「OTLP endpoint を localhost にしたのにデータが来ない」という場合は、まずシグナルごとのポート、gRPC/HTTP の違い、エクスポーター設定を確認してください。

DCR への権限不足で取り込みに失敗する

AMA が Azure Monitor へ送るには、対象リソースのマネージド ID に適切な権限が必要です。DCR に対して Monitoring Metrics Publisher ロールが付与されていないと、アプリ側の設定が正しくても Azure Monitor 側でデータが見えません。

SRE チームは、DCR、DCE、ワークスペース、マネージド ID、RBAC をセットでレビューするチェックリストを作ると、導入時の切り分けが速くなります。

Application Insights の体験に必要な属性が足りない

OpenTelemetry では service.nameservice.versiondeployment.environment などの resource attributes が重要です。さらに AMA 方式で Application Insights ベースの DCR を使う場合、microsoft.applicationId が必要になるケースがあります。

属性設計を後回しにすると、Application Map でサービス名が分かりにくい、環境別に絞り込めない、チーム別のコスト分析ができないといった問題が起きます。最初に「必須属性」「推奨属性」「禁止属性」を決めておくべきです。

Classic SDK と OpenTelemetry の二重計装

既存の Application Insights SDK から OpenTelemetry へ移行する途中では、同じリクエストが二重に送信されることがあります。特に自動計装と手動計装を混ぜる場合、リクエスト数、依存関係、例外ログが重複して見えることがあります。

移行時は、旧 SDK、Distro、OTLP exporter、Collector、AMA のどこでデータが生成・転送されているかを図にして確認してください。監視データの重複は、ノイズだけでなくコストにも直結します。

プレビュー機能を本番標準にしすぎる

AMA による OTLP ネイティブインジェストは有望ですが、現時点ではパブリックプレビューです。運用環境の全面移行を急ぐより、まずは次のような範囲で評価するのが現実的です。

評価項目見るべきポイント
可用性エージェント停止時、再起動時、ネットワーク断時の挙動
データ品質traces、metrics、logs の欠落や属性の整合性
遅延インシデント対応に使える鮮度で届くか
コストログ量、メトリック数、カーディナリティが増えすぎないか
運用性DCR、RBAC、AMA 更新をチームで管理できるか

プラットフォームチームが作るべき標準パターン

OpenTelemetry-on-Azure の設計で重要なのは、各チームが自由に送信方式を選びすぎないことです。自由度が高いほど、障害時の切り分け、セキュリティレビュー、コスト管理が難しくなります。

プラットフォームチームは、少なくとも次の3つの標準パターンを用意すると運用しやすくなります。

標準パターン対象方針
VM/Arc 標準Azure VM、VMSS、Arc 対応サーバーAMA による OTLP 取り込みを検証し、DCR と RBAC をテンプレート化
Kubernetes 標準AKSAKS アドオンまたは Collector ベースの構成を標準化
高度加工標準マルチクラウド、複数送信、tail samplingOpenTelemetry Collector を gateway として設計

このように分けると、チームは「どの方式が好きか」ではなく、「自分のワークロードはどの標準パターンに当てはまるか」で判断できます。

移行ロードマップ

Azure Monitor の OTLP ネイティブインジェストを評価する場合、次の順序で進めると失敗しにくくなります。

フェーズ実施内容成果物
現状把握既存の Application Insights SDK、Collector、Prometheus、ログ基盤を棚卸し現行のテレメトリ経路図
方針決定VM/Arc、AKS、マルチクラウドで標準パターンを分ける取り込み方式の判断表
小規模検証1つのサービスで AMA OTLP 取り込みを試す検証結果、既知の制約
データ品質確認Application Insights、Log Analytics、Grafana で確認属性、クエリ、ダッシュボード
セキュリティ確認マネージド ID、RBAC、DCR、データ保持を確認権限設計レビュー
コスト確認ログ量、メトリック数、カーディナリティを確認コスト試算
段階展開開発、検証、本番の順に展開IaC、運用手順、障害対応手順

特にグローバルチームでは、リージョン、データ保持、個人情報、プロンプト情報、顧客データの扱いが国や事業部ごとに異なります。OpenTelemetry の導入は「データを送れるようにする作業」ではなく、「どのデータを、どの粒度で、どこへ送るか」を決めるガバナンス設計でもあります。

まず何をすべきか

Azure Monitor を使っていて、OpenTelemetry の採用や移行を検討しているなら、最初にやるべきことは3つです。

まず、現在のテレメトリ経路を図にしてください。アプリ、SDK、Collector、エージェント、DCR、ワークスペース、Application Insights の関係を見える化しないと、AMA を入れるべき場所が判断できません。

次に、VM/Arc ワークロードを1つ選び、AMA による OTLP 取り込みを検証してください。ポート、DCR、マネージド ID、メトリック temporality、Application Insights での見え方を確認します。

最後に、組織としての標準パターンを決めてください。AMA は VM/Arc の標準候補、Collector は高度加工やマルチクラウドの標準候補、Distro はアプリ単位の素早い導入候補として整理すると、チームごとの判断がぶれにくくなります。

Azure Monitor の OTLP ネイティブインジェストは、OpenTelemetry を Azure 上で本格活用するための重要な一歩です。ただし、プレビュー段階であることを踏まえ、まずは限定範囲で検証し、データ品質・運用性・コストを確認してから段階的に広げるのが実務的な進め方です。

この記事を書いた人

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

コメント

コメントする

目次