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

この記事では、OpenTelemetry ベースのデータ収集を有効にして、Azure Monitor Application Insights 内のエクスペリエンスを強化するように構成する方法について説明します。 "Azure Monitor OpenTelemetry Distro" をインストールする方法について説明します。Distro は、アプリケーションとその依存関係全体でトレース、メトリック、ログ、例外を 自動的に収集 します。 OpenTelemetry を使用したデータ収集の詳細については、データ収集の基本に関する記事、または OpenTelemetry に関する FAQ を参照してください。

OpenTelemetry のリリースの状態

OpenTelemetry オファリングは、.NET、Node.js、Python、Java アプリケーションで使用できます。

Language リリースの状態
ASP.NET Core ⚠️ 2
.NET (エクスポーター) 1
Java 1
Node.js 1
Python 1

脚注

注意

機能別のリリースの状態については、「よく寄せられる質問」を参照してください。 ASP.NET Core ディストリビューションでは、GA の前に追加の安定性テストを行っています。 ASP.NET Core アプリケーションで完全にサポートされている OpenTelemetry ソリューションが必要な場合は、.NET エクスポーターを使用できます。

はじめに

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

前提条件

ヒント

OTel Community SDK/API は、依存関係として自動的に読み込まれるため、Azure Monitor OTel ディストリビューションで使用することはお勧めしません。

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

最新の Azure.Monitor.OpenTelemetry.AspNetCore NuGet パッケージをインストールします。

dotnet add package --prerelease Azure.Monitor.OpenTelemetry.AspNetCore 

Azure Monitor Application Insights を有効にする

Azure Monitor Application Insights を有効にするには、アプリケーションに若干の変更を加え、「接続文字列」を設定します。接続文字列は、ユーザーに固有の Distro が収集するテレメトリを送信する場所をアプリケーションに通知します。

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

アプリケーション スタートアップに UseAzureMonitor() を追加します。 .NET のバージョンに応じて、これは startup.cs または program.cs クラスのいずれかになります。

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

// Create a new WebApplicationBuilder instance.
var builder = WebApplication.CreateBuilder(args);

// Add the OpenTelemetry NuGet package to the application's services and configure OpenTelemetry to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();

// Build the application.
var app = builder.Build();

// Run the application.
app.Run();

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

ヒント

まだお持ちでない場合、 Application Insights リソースを作成する絶好のタイミングです。 ここでは、新しい Application Insights リソースを作成し、既存のものを使用することをお勧めします。

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

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

  1. Application Insights リソースの [概要] ペインにアクセスしてください。
  2. 接続文字列を見つけます。
  3. 接続文字列をポイントし、[クリップボードにコピー] アイコンを選択します。

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

接続文字列を貼り付けるには、次のオプションから選択します。

A. 環境変数を使用して設定する (推奨)

次のコマンドの <Your Connection String> を、独自の一意の接続文字列に置き換えます。

APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>

B. 構成ファイルを使用して設定する - Java のみ (推奨)

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

{
  "connectionString": "<Your Connection String>"
}

上記の JSON の <Your Connection String> を、独自の一意の接続文字列に置き換えます。

C. コードを使用して設定 - ASP.NET Core、Node.js、Python のみ (非推奨)

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

Note

接続文字列を複数の場所に設定する場合は、次の優先順位に従います。

  1. コード
  2. 環境変数
  3. 構成ファイル

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

アプリケーションを実行し、Azure portal で [Application Insights リソース] タブを開きます。 データがポータルに表示されるまでに数分かかる場合があります。

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

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

重要

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

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

トラブルシューティング

動作していませんか? ASP.NET Core のトラブルシューティング ページをご確認ください。

サポート

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

OpenTelemetry のフィードバック

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

次のステップ