この記事では、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 |
|
| Node.js | @azure/monitor-opentelemetry |
npm install @azure/monitor-opentelemetry |
| Python | azure-monitor-opentelemetry |
pip install azure-monitor-opentelemetry |
注記
.NETでは、クラシック ASP.NET、コンソール アプリ、Windows フォーム (WinForms) など、複数のシナリオについて説明します。
前提条件
- Azure サブスクリプション: Azure サブスクリプションを無料で作成します
- Application Insights リソース: Application Insights リソースを作成する
ASP.NET Core Application .NET
ヒント
古い Application Insights SDK から移行する場合は、移行に関する ドキュメントを参照してください。
クライアント ライブラリをインストールする
最新の
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 リソースの [概要 ] ウィンドウに移動します。
- Connection stringを見つけてください。
- 接続文字列にカーソルを合わせ、Copy to clipboard アイコンを選択します。
環境に接続文字列を貼り付ける
接続文字列を貼り付けるには、次のいずれかの方法を使用します。
| メソッド | サポートされている言語 | 推奨対象 |
|---|---|---|
| 環境変数 | 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のみ
コードによる接続文字列の設定の例については接続文字列構成を参照してください。
注記
接続文字列を複数の場所に設定すると、次の優先順位で解決されます (最高から最低)。
- Code
- 環境変数
- 構成ファイル
データが流れていることを確認する
Azure Monitor OpenTelemetry Distro を構成し、接続文字列を設定したら、アプリケーションを実行し、Azure ポータルで Application Insights リソースを開き、トレース、メトリック、およびログが表示されることを確認します。 データが表示されるまでに数分かかる場合があります。
Application Insights がアプリケーションに対して有効になりました。 次の手順は省略可能であり、さらにカスタマイズできます。
注記
Application Insights インストルメンテーションの使用の一環として、診断データを収集してMicrosoftに送信します。 このデータは、Application Insights の実行と改善に役立ちます。 詳細については、Application Insights に関する FAQ を参照してください。
重要
同じ Application Insights リソースにテレメトリを出力するサービスが 2 つ以上ある場合は、クラウド ロール名をアプリケーション マップ上で適切に表す名前を設定する必要があります。
トラブルシューティング、フィードバック、サポート
ヒント
以下のセクションは、OpenTelemetry ディストリビューションのすべての記事で使用できます。
Troubleshooting
トラブルシューティングの情報については、「
OpenTelemetry のフィードバック
フィードバックを提供するには:
- OpenTelemetry コミュニティのカスタマー フィードバック アンケートに記入してください。
- OpenTelemetry 早期導入者コミュニティに参加して、自分についてMicrosoftに伝えます。
- Microsoft Tech Community の他のAzure Monitor ユーザーと交流します。
- Azureフィードバック フォーラムで機能要求を行います。
サポート
選択した言語のタブを選択して、サポート オプションを検出します。
- Azure サポートの問題については、Azure サポート チケットを開きます。
- OpenTelemetry の問題については、OpenTelemetry .NET コミュニティに直接お問い合わせください。
- Azure Monitor エクスポーターに関連する未解決の問題の一覧については、「GitHub問題を参照してください。
次のステップ
- ソース コードを確認するには、Azure Monitor ASP.NET Core GitHub リポジトリを参照してください。
- サンプル アプリケーションを確認するには、Azure Monitor OpenTelemetry for ASP.NET Core を参照>。
- NuGet パッケージをインストールしたり、更新プログラムを確認したり、リリース ノートを表示したりするには、Azure Monitor AspNetCore NuGet パッケージ ページを参照してください。
- OpenTelemetry とそのコミュニティの詳細については、OpenTelemetry .NET GitHub リポジトリを参照してください。
- 使用エクスペリエンスを有効にするには、Web またはブラウザーのユーザー監視を有効にします。