.NET、Node.js、Python、およびJava アプリケーションAzure Monitor OpenTelemetry を有効にする

この記事では、Azure Monitor OpenTelemetry Distro を使用して、Azure Monitor Application Insights 内で OpenTelemetry ベースのデータ収集を有効にして構成する方法について説明します。 OpenTelemetry はオープンソースの CNCF 観測基準です。Azure Monitor OpenTelemetry Distro は、Azure Monitor用に最適化された、その標準のMicrosoftの分布です。 ディストリビューション:

  • OpenTelemetry ディストリビューションを提供します。これには、Azure Monitor固有の機能のサポートが含まれます。
  • トレース 、メトリック、 ログ、例外を収集するための OpenTelemetry インストルメンテーション ライブラリを含めることで、テレメトリの自動収集を有効にします。
  • カスタム テレメトリの収集を許可します。
  • ライブ メトリックをサポートし、ライブの運用中の Web アプリケーションからテレメトリを監視および収集します。

Azure Monitor OpenTelemetry Distro を使用する利点の詳細については、「Azure Monitor OpenTelemetry Distro を使用する必要があります>を参照してください。

OpenTelemetry を使用したデータ収集の詳細については、 Application Insights の概要 または OpenTelemetry に関する FAQ を参照してください。

この記事の手順に従ってディストリビューションをインストールし、それを Application Insights リソースに接続し、テレメトリ データがAzure Monitorに流れるかどうかを確認します。

OpenTelemetry のリリースの状態

OpenTelemetry オファリングは、.NET、Node.js、Python、およびJavaアプリケーションで利用できます。 機能ごとのリリースの状態については、 FAQ を参照してください。

注記

Azure 関数アプリについては、「Azure Functions で OpenTelemetry を使用する」を参照してください。

Application Insights で OpenTelemetry を有効にする

このセクションの手順に従い、OpenTelemetry を使用してアプリケーションをインストルメント化します。 言語固有の手順のタブを選択します。

次の表は、サポートされている各言語のパッケージとインストール コマンドをまとめたものです。

Language Package インストール コマンド
ASP.NET Core Azure.Monitor.OpenTelemetry.AspNetCore dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
.NET Azure.Monitor.OpenTelemetry.Exporter dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Java applicationinsights-agent-3.7.8.jar GitHub
Node.js @azure/monitor-opentelemetry npm install @azure/monitor-opentelemetry
Python azure-monitor-opentelemetry pip install azure-monitor-opentelemetry

注記

.NETでは、クラシック ASP.NET、コンソール アプリ、Windows フォーム (WinForms) など、複数のシナリオについて説明します。

前提条件

  • ASP.NET Core Application .NET

ヒント

古い Application Insights SDK から移行する場合は、移行に関する ドキュメントを参照してください

クライアント ライブラリをインストールする

最新の NuGet パッケージ:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore

アプリケーションを変更する

Azure.Monitor.OpenTelemetry.AspNetCore 名前空間をインポートし、OpenTelemetry を追加し、program.cs クラスでAzure Monitorを使用するように構成します。

// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;

var builder = WebApplication.CreateBuilder(args);

// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();

var app = builder.Build();

app.Run();

Application Insights リソースから接続文字列をコピーする

接続文字列は一意であり、Azure Monitor OpenTelemetry Distro が収集したテレメトリを送信する場所を指定します。

ヒント

Application Insights リソースがまだない場合は、 このガイドに従って作成します。 既存のリソースを使用するのではなく、新しいリソース 作成することをお勧めします。

接続文字列をコピーするには:

  1. Application Insights リソースの [概要 ] ウィンドウに移動します。
  2. Connection stringを見つけてください。
  3. 接続文字列にカーソルを合わせ、Copy to clipboard アイコンを選択します。

Application Insights の概要と接続文字列を示すスクリーンショット。

環境に接続文字列を貼り付ける

接続文字列を貼り付けるには、次のいずれかの方法を使用します。

メソッド サポートされている言語 推奨対象
環境変数 All 生産
構成ファイル (applicationinsights.json) Java のみ 運用 (Java)
Code ASP.NET Core、Node.js、Python ローカル開発/テストのみ

重要

ローカルの開発環境とテスト環境でのみ、コードを使用して接続文字列を設定することをお勧めします。

運用環境では、環境変数または構成ファイルを使用します (Javaのみ)。

  • Application Insights 接続文字列を環境変数として設定します (運用環境に推奨)

    以下のコマンド内の<Your 接続文字列>を、あなたの接続文字列に置き換えてください。

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
    
  • Application Insights 接続文字列を構成ファイルに設定します - Java のみ

    次のコンテンツを使って、applicationinsights.json という名前の構成ファイルを作成し、applicationinsights-agent-3.7.8.jar と同じディレクトリに配置します。

    {
      "connectionString": "<Your connection string>"
    }
    

    前の JSON の<Your 接続文字列>をあなたの一意の 接続文字列 に置き換えます。

  • コードで Application Insights 接続文字列を設定します - ASP.NET Core、Node.js、Pythonのみ

    コードによる接続文字列の設定の例については接続文字列構成を参照してください。

注記

接続文字列を複数の場所に設定すると、次の優先順位で解決されます (最高から最低)。

  1. Code
  2. 環境変数
  3. 構成ファイル

データが流れていることを確認する

Azure Monitor OpenTelemetry Distro を構成し、接続文字列を設定したら、アプリケーションを実行し、Azure ポータルで Application Insights リソースを開き、トレース、メトリック、およびログが表示されることを確認します。 データが表示されるまでに数分かかる場合があります。

[Application Insights の概要] タブのスクリーンショット。サーバー要求とサーバーの応答時間が強調表示されています。

Application Insights がアプリケーションに対して有効になりました。 次の手順は省略可能であり、さらにカスタマイズできます。

注記

Application Insights インストルメンテーションの使用の一環として、診断データを収集してMicrosoftに送信します。 このデータは、Application Insights の実行と改善に役立ちます。 詳細については、Application Insights に関する FAQ を参照してください

重要

同じ Application Insights リソースにテレメトリを出力するサービスが 2 つ以上ある場合は、クラウド ロール名をアプリケーション マップ上で適切に表す名前を設定する必要があります。

トラブルシューティング、フィードバック、サポート

ヒント

以下のセクションは、OpenTelemetry ディストリビューションのすべての記事で使用できます。

Troubleshooting

トラブルシューティングの情報については、「OpenTelemetry の問題のトラブルシューティング (.NET)」および「Azure Monitor Application Insights におけるアプリケーション テレメトリの欠落のトラブルシューティング」を参照してください。

OpenTelemetry のフィードバック

フィードバックを提供するには:

サポート

選択した言語のタブを選択して、サポート オプションを検出します。

次のステップ