.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) など、複数のシナリオについて説明します。

前提条件

ヒント

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 リソースがまだない場合は、こちらのガイドに従って作成します。 既存のリソースを使用するのではなく、新たに作成することをお勧めします。

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

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

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

お使いの環境で接続文字列を貼り付ける

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

重要

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

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

  • 環境変数を使用して設定する - "推奨"

    次のコマンドの <Your connection string> を、お使いの接続文字列に置き換えます。

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
    
  • 構成ファイルを使用して設定する - "Java のみ"

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

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

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

  • コードを使用して設定する - "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」を参照してください。

サンプル アプリケーション

Azure Monitor OpenTelemetry サンプル アプリケーションは、サポートされているすべての言語で利用できます。

次のステップ