この記事では、 Azure Monitor Application Insights 内で OpenTelemetry ベースのデータ収集を有効にして構成する方法について説明します。 Azure Monitor OpenTelemetry Distro では:
- Azure Monitor に固有の機能のサポートを含む OpenTelemetry ディストリビューション を提供します。
- トレース、メトリック、ログ、例外を収集するための OpenTelemetry インストルメンテーション ライブラリを含めることで、 自動 テレメトリを有効にします。
- カスタム テレメトリの収集を許可します。
- ライブ メトリックをサポートし、ライブの運用中の Web アプリケーションからより多くのテレメトリを監視および収集します。
Azure Monitor OpenTelemetry Distro を使用する利点の詳細については、「 Azure Monitor OpenTelemetry Distro を使用する必要がある理由」を参照してください。
OpenTelemetry を使用したデータ収集の詳細については、 データ収集の基本 または OpenTelemetry に関する FAQ を参照してください。
OpenTelemetry のリリースの状態
OpenTelemetry オファリングは、.NET、Node.js、Python、Java アプリケーションで使用できます。 機能ごとのリリースの状態については、 FAQ を参照してください。
注記
Azure Function Apps については、「 Azure Functions で OpenTelemetry を使用する」を参照してください。
Application Insights で OpenTelemetry を有効にする
このセクションの手順に従い、OpenTelemetry を使用してアプリケーションをインストルメント化します。 言語固有の手順のタブを選択します。
注記
.NET では、従来の ASP.NET、コンソール アプリ、Windows フォーム (WinForms) など、複数のシナリオについて説明します。
前提条件
- Azure サブスクリプション: Azure サブスクリプションを無料で作成する
- Application Insights リソース: Application Insights リソースを作成する
- 公式にサポートされているバージョンの .NET を使用した ASP.NET Core アプリケーション
ヒント
Application Insights クラシック API から移行する場合は、 移行に関するドキュメントを参照してください。
クライアント ライブラリをインストールする
最新の Azure.Monitor.OpenTelemetry.AspNetCore
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 リソースの [概要 ] ウィンドウに移動します。
- 接続文字列を見つけてください。
- 接続文字列にカーソルを合わせ、[ クリップボードにコピー ] アイコンを選択します。
お使いの環境で接続文字列を貼り付ける
接続文字列を貼り付けるには、次のオプションから選択します。
重要
コードを使用して接続文字列を設定するのは、ローカルの開発およびテストの環境に限ることをお勧めします。
運用環境では、環境変数または構成ファイル (Java のみ) を使用します。
環境変数を使用して設定します - 推奨
次のコマンドの
<Your connection string>
を、お使いの接続文字列に置き換えます。APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
構成ファイルを使用して設定します - Java のみ
次のコンテンツを使って、
applicationinsights.json
という名前の構成ファイルを作成し、applicationinsights-agent-3.7.1.jar
と同じディレクトリに配置します。{ "connectionString": "<Your connection string>" }
前の JSON の
<Your connection string>
を一意 の接続文字列に 置き換えます。コードを使用して設定します - ASP.NET Core、Node.js、Python のみ
コードを使用して接続文字列を設定する例については、接続文字列の 構成 を参照してください。
注記
接続文字列を複数の場所に設定する場合、環境変数には次の順序で優先順位が付けられます。
- コード
- 環境変数
- 構成ファイル
データが流れていることを確認する
アプリケーションを実行し、Azure portal で Application Insights を開きます。 データが表示されるまでに数分かかる場合があります。
Application Insights がアプリケーションに対して有効になりました。 次の手順は省略可能であり、さらにカスタマイズできます。
重要
同じ Application Insights リソースにテレメトリを出力するサービスが 2 つ以上ある場合は、クラウド ロール名をアプリケーション マップ上で適切に表す名前を設定する必要があります。
Application Insights インストルメンテーションの使用時に、診断データが収集され、Microsoft に送信されます。 このデータは、Application Insights の実行と改善に役立ちます。 詳細については、 Azure Application Insights の Statsbeat に関するページを参照してください。
サンプル アプリケーション
Azure Monitor OpenTelemetry サンプル アプリケーションは、サポートされているすべての言語で利用できます。
- ASP.NET Core サンプル アプリ
- NET サンプル アプリ
- Java サンプル アプリ
- Java GraalVM ネイティブ サンプル アプリ
- サンプル アプリNode.js
- Python サンプル アプリ
次のステップ
- Azure Monitor OpenTelemetry の追加と変更の詳細については、「 Azure Monitor OpenTelemetry の追加と変更」を参照してください。
- OpenTelemetry ディストリビューションをさらに構成するには、 Azure Monitor OpenTelemetry の構成に関するページを参照してください。
- ソース コードを確認するには、 Azure Monitor AspNetCore GitHub リポジトリを参照してください。
- NuGet パッケージをインストールする、更新プログラムを確認する、またはリリース ノートを表示するには、 Azure Monitor AspNetCore NuGet パッケージ のページを参照してください。
- Azure Monitor と OpenTelemetry について詳しく理解するには、 Azure Monitor サンプル アプリケーションを参照してください。
- OpenTelemetry とそのコミュニティの詳細については、 OpenTelemetry .NET GitHub リポジトリを参照してください。
- 使用状況エクスペリエンスを有効にするには、 Web またはブラウザーのユーザー監視を有効にします。
- よく寄せられる質問、トラブルシューティング手順、サポート オプションを確認したり、OpenTelemetry フィードバックを提供したりするには、 Azure Monitor Application Insights の OpenTelemetry のヘルプ、サポート、フィードバックを参照してください。