.NET、Node.js、Python、Java アプリケーション用の Azure Monitor OpenTelemetry を有効にする
この記事では、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 アプリケーションで使用できます。 機能別のリリースの状態については、「よく寄せられる質問」を参照してください。
Application Insights で OpenTelemetry を有効にする
このセクションの手順に従い、OpenTelemetry を使用してアプリケーションをインストルメント化します。 言語固有の手順のタブを選択します。
Note
.NET では、従来の ASP.NET、コンソール アプリ、Windows フォーム (WinForms) など、複数のシナリオについて説明します。
前提条件
- Azure サブスクリプション: Azure サブスクリプションを無料で作成する
- Application Insights リソース: Application Insights リソースを作成する
- 正式にサポートされているバージョンの .NET を使用する ASP.NET Core アプリケーション
ヒント
Application Insights Classic 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 リソースがまだない場合は、こちらのガイドに従って作成します。 既存のリソースを使用するのではなく、新たに作成することをお勧めします。
接続文字列をコピーするには:
- Application Insights リソースの [概要] ペインにアクセスしてください。
- 接続文字列を見つけます。
- 接続文字列をポイントし、[クリップボードにコピー] アイコンを選択します。
お使いの環境で接続文字列を貼り付ける
接続文字列を貼り付けるには、次のオプションから選択します。
重要
コードを使用して接続文字列を設定するのは、ローカルの開発およびテストの環境に限ることをお勧めします。
運用環境では、環境変数または構成ファイル (Java のみ) を使用します。
環境変数を使用して設定する - "推奨"
次のコマンドの
<Your connection string>
を、お使いの接続文字列に置き換えます。APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
構成ファイルを使用して設定する - "Java のみ"
次のコンテンツを使って、
applicationinsights.json
という名前の構成ファイルを作成し、applicationinsights-agent-.jar
と同じディレクトリに配置します。{ "connectionString": "<Your connection string>" }
上記の JSON の
<Your connection string>
を、独自の一意の接続文字列に置き換えます。コードを使用して設定する - "ASP.NET Core、Node.js、Python のみ"
コードを使用した接続文字列の設定の例については、接続文字列の構成に関する記事を参照してください。
Note
接続文字列を複数の場所に設定する場合、環境変数には次の順序で優先順位が付けられます。
- コード
- 環境変数
- 構成ファイル
データが流れていることを確認する
アプリケーションを実行し、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 のヘルプ、サポート、フィードバックに関する記事を参照してください。