次の方法で共有


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

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

前提条件

ヒント

Application Insights クラシック API から移行する場合は、 移行に関するドキュメントを参照してください

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

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

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.7.1.jar と同じディレクトリに配置します。

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

    前の JSON の <Your connection string> を一意 の接続文字列に 置き換えます。

  • コードを使用して設定します - ASP.NET Core、Node.js、Python のみ

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

注記

接続文字列を複数の場所に設定する場合、環境変数には次の順序で優先順位が付けられます。

  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 サンプル アプリケーションは、サポートされているすべての言語で利用できます。

次のステップ