次の方法で共有


Live Metrics: 1 秒の待機時間での監視と診断

Application Insights のライブ メトリックを使って、Web アプリケーションを監視します。 メトリックとパフォーマンス カウンターを選んでフィルター処理してリアルタイムで監視し、失敗した要求と例外のサンプルからのスタック トレースを検査します。 ライブ メトリック エクスペリエンスを、Profiler およびスナップショット デバッガーと組み合わせると、強力な診断ツールになります。

Live Metrics を使用すると、次のことが可能になります。

  • 修正がリリースされている間に、パフォーマンスと失敗の数を確認して、修正を検証します。
  • テスト負荷の影響を監視し、問題をライブで診断します。
  • 監視するメトリックを選択してフィルタリングすることにより、特定のテスト セッションに焦点を当てたり、既知の問題を除外したりできます。
  • 発生時に例外トレースを取得します。
  • フィルターを試して、最も関連性の高い KPI を検索します。
  • すべての Windows パフォーマンス カウンターをライブで監視します。
  • 問題が発生しているサーバーを簡単に特定し、すべての KPI/ライブ フィードをフィルター処理してそのサーバーだけに絞り込むことができます。

[Live Metrics] タブを示すスクリーンショット。

作業の開始

  1. 言語固有のガイドラインに従って、ライブ メトリックを有効にします。
  • ASP.NET: サポートされていません。
  • ASP.NET Core: 既定で有効になっています。
  • Java: 既定で有効になっています。
  • Node.js: 既定で有効になっています。
  • Python: enable_live_metrics=Trueconfigure_azure_monitor に渡します。 詳細については、Azure Monitor OpenTelemetry Distro に関するドキュメントをご覧ください。
  1. Azure portal でアプリケーションの Application Insights リソースを開きます。 左側のメニューにある [調査] の下に一覧表示されている [Live Metrics] を選びます。

  2. カスタム フィルターを使う場合は、Microsoft Entra 認証を有効にして、コントロール チャネルをセキュリティで保護します。

Note

インストルメンテーション キーのインジェストのサポートは、2025 年 3 月 31 日に終了します。 インストルメンテーション キーのインジェストは引き続き機能しますが、この機能の更新プログラムやサポートは提供されなくなります。 接続文字列に移行することで、新機能をご利用いただけます。

Live Metrics がメトリックス エクスプローラーや Log Analytics と異なる点

機能 Live Stream メトリックス エクスプローラーと Log Analytics
Latency 1 秒以内に表示されるデータ。 数分間で集計。
リテンション期間なし データは、グラフに表示されている間は保持され、その後破棄されます。 データは 90 日間保持。
オン デマンド データは、[Live Metircs] ペインが開いている間のみストリーミングされます。 SDK がインストールされて有効になるたびに、データが送信されます。
Free Live Stream データの料金は発生しません。 価格設定の対象。
サンプリング 選択したすべてのメトリックとカウンターが送信されます。 失敗やスタック トレースがサンプリングされます。 イベントはサンプリングできます。
コントロール チャネル フィルターの制御シグナルが SDK に送信されます。 このチャネルをセキュリティで保護することをお勧めします。 通信はポータルへの一方向です。

メトリックの選択とフィルタリング

これらの機能は、ASP.NET、ASP.NET Core、Azure Functions (v2) で使用できます。

ポータルで Application Insights Telemetry に任意のフィルターを適用して、カスタム パフォーマンス インジケーターをライブ監視できます。 グラフをマウスでポイントしたときに表示されるフィルター コントロールを選択します。 次のグラフでは、URL期間の各属性にフィルターを適用して、カスタム要求数 KPI をプロットしています。 [ストリームのプレビュー] セクションでフィルターを検証します。このセクションには、指定した条件といずれかの時点で一致するテレメトリのライブ フィードが表示されます。

要求率のフィルター処理を示すスクリーンショット。

Count 以外の値を監視できます。 オプションはストリームの種類によって異なります。ストリームの種類には、任意の Application Insights テレメトリ (要求、依存関係、例外、トレース、イベント、メトリックなど) を指定できます。 また、独自のカスタム測定を指定することもできます。

要求率のクエリ ビルダーとカスタム メトリックを示すスクリーンショット。

Application Insights テレメトリと共に、任意の Windows パフォーマンス カウンターを監視することもできます。 ストリーム オプションから選択し、パフォーマンス カウンターの名前を指定します。

Live Metrics は 2 つのポイントで集計されます。具体的には、サーバーごとにローカルで集計された後、すべてのサーバーにわたって集計されます。 どちらについても、それぞれのドロップダウン リストで他のオプションを選択することで既定値を変更できます。

サンプル テレメトリ: カスタム ライブ診断イベント

既定では、イベントのライブ フィードには失敗した要求と依存関係呼び出し、例外、イベント、トレースのサンプルが表示されます。 フィルター アイコンを選択すると、任意の時点で適用された条件が表示されます。

[フィルター] ボタンを示すスクリーンショット。

メトリックと同様に、Application Insights Telemetry の種類のいずれかに任意の条件を指定できます。 この例では、特定の要求エラーとイベントを選択しています。

クエリ ビルダーを示すスクリーンショット。

Note

現時点では、例外メッセージ ベースの条件には、最も外側の例外メッセージを使用します。 前の例では、[The client disconnected](クライアントが切断されました) という内部例外メッセージ ("<--" 区切り記号の後) が示されている害のない例外を除外するために、[Error reading request content](要求内容の読み取りエラー) が含まれていないメッセージという条件を使用します。

ライブ フィードの項目を選択して、詳細を表示します。 フィードを一時停止するには、[一時停止] を選択するか、下にスクロールして項目を選択します。 スクロールして上部に戻るか、一時停止されている間に収集された項目のカウンターを選択すると、ライブ フィードが再開されます。

スクリーンショットには、例外が選択され、ウィンドウの下部に例外の詳細が表示された [サンプル テレメトリ] ウィンドウが示されています。

サーバー インスタンスによるフィルター処理

特定のサーバー ロール インスタンスを監視する場合は、サーバーでフィルター処理できます。 フィルターを適用するには、[サーバー] でサーバー名を選択します。

サンプリングされたライブ エラーを示すスクリーンショット。

コントロール チャネルの保護

カスタム フィルターに入力される可能性がある機密情報の不正な開示を防ぐ Microsoft Entra 認証を有効にして、ライブ メトリック コントロール チャネルをセキュリティで保護します。

Note

2025 年 9 月 30 日に、ライブ メトリック テレメトリを Application Insights にストリーミングするために使用される API キーが廃止されます。 その日を過ぎると、API キーを使用するアプリケーションは、Live Metrics データを Application Insights リソースに送信できなくなります。 Application Insights にストリーミングする Live Metrics の認証済みテレメトリ インジェストは、Application Insights に対する Microsoft Entra 認証を使用して実行する必要があります。

サポートされる機能の表

Language 基本メトリック パフォーマンス メトリック カスタム フィルター処理 サンプル テレメトリ プロセス別の CPU 分割
.NET Framework サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS)
.NET Core (ターゲット =.NET Framework) サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS) サポート対象 (LTS)
.NET Core (ターゲット =.NET Core) サポート対象 (LTS) サポート対象* サポート対象 (LTS) サポート対象 (LTS) サポートされていません
Azure Functions v2 サポートされています サポート対象 サポート対象 サポート対象 サポートされていません
Java サポート対象 (V2.0.0 以降) サポート対象 (V2.0.0 以降) サポートされていません サポート対象 (V3.2.0 以降) サポートされていません
Node.js サポート対象 (V1.3.0 以降) サポート対象 (V1.3.0 以降) サポートされていません サポート対象 (V1.3.0 以降) サポートされていません
Python サポート対象 (ディストリビューションのバージョン 1.6.0 以上) サポートされていません サポートされていません サポートされていません サポートされていません

基本メトリックには、要求、依存関係、例外率が含まれます。 パフォーマンス メトリック (パフォーマンス カウンター) には、メモリと CPU が含まれます。 テレメトリのサンプルには、失敗した要求と依存関係、例外、イベント、トレースに関する詳細情報のストリームが表示されます。

PerfCounters のサポートは、.NET Framework を対象としない .NET Core のバージョンによって多少異なります。

  • PerfCounters メトリックは、Azure App Service for Windows (ASP.NET Core SDK バージョン 2.4.1 以降) で実行する場合にサポートされます。
  • PerfCounters は、.NET Core LTS 以降を対象とするアプリ用の任意の Windows マシンでアプリが実行されている場合にサポートされます。
  • PerfCounters は、最新バージョンでは、アプリの "実行場所" (Linux、Windows、Linux のアプリ サービス、コンテナーなど) を問わずサポートされますが、.NET Core LTS 以降を対象とするアプリに限られます。

トラブルシューティング

次のセクションでは、ライブ メトリック エクスペリエンスの一般的なトラブルシューティング シナリオについて説明します。

ライブ メトリック データが見つからない

ライブ メトリック エクスペリエンスでは、他の Application Insights テレメトリとは異なる IP アドレスが使われます。 これらの IP アドレスがファイアウォールで開いていることを確認してください。 また、サーバーのファイアウォールで、Live Metrics の発信ポートが開いていることを確認します。

Azure TLS 1.2 の移行に関するお知らせのページで説明されているように、Live Metrics では TLS 1.2 のみがサポートされるようになりました。 以前のバージョンの TLS を使用している場合、[Live Metrics] ペインにデータは表示されません。 .NET Framework 4.5.1 に基づくアプリケーションの場合は、クライアントでのトランスポート層セキュリティ (TLS) 1.2 の有効化 - Configuration Manager に関する説明を参照し、新しい TLS バージョンをサポートするようにしてください。

Application Insights が有効になっており、アプリで Azure Monitor OpenTelemetry ディストリビューションの最新バージョンが使われていることを確認します。 .NET Classic API 使っている場合は、Application Insights NuGet パッケージをインストールします。

接続されたサーバーを認可する: このオプションは使用できません

セキュリティ保護されていないチャネルは使わないことを強くお勧めします。

認証されたチャネルを設定せずにカスタム フィルターを試す場合は、新しいセッションのたびに、または新しいサーバーがオンラインになるときに、接続されているサーバーを認可する必要があります。 さらに、セキュリティ保護されていないチャネルの使用は、6 か月後に自動的に無効になります。

ダイアログには、次のような警告が表示されます: "カスタム フィルターを使用してメトリックとイベントをストリーミングできます。これはアプリに送り返されます。 認証済みのチャネルを設定するまで、機密性の高い可能性のある情報 (顧客 ID など) の入力は避けてください。 ただし、お客様が以下のすべてのサーバーを認識し、信頼する場合は、認証なしでカスタム フィルターをお試しいただけます。 このオプションは、##/##/#### を過ぎると使用できなくなります。 認証なしで接続されているサーバー:"

この警告の解決については、「コントロール チャネルをセキュリティで保護する」をご覧ください。

監視されるサーバー インスタンスの数が少ない

Live Metrics によって表示される監視対象のサーバー インスタンス数は、アプリケーションに割り当てられている実際のインスタンス数よりも少ない場合があります。 この不一致は、多くの最新の Web サーバーでは、リソースを節約するため、一定の期間要求を受信しないアプリケーションをアンロードするために発生します。 Live Metrics を使用すると、アプリケーションを現在実行しているサーバーのみがカウントされるため、プロセスを既にアンロードしているサーバーはその合計には含まれません。

.NET の構成が見つかりません

  1. NuGet パッケージMicrosoft.ApplicationInsights.PerfCounterCollector の最新バージョンを使用していることを確認します。

  2. ApplicationInsights.config ファイルを編集します。

    • 接続文字列が、使用している Application Insights リソースを指していることを確認します。
    • QuickPulseTelemetryModule 構成オプションを見つけます。 ない場合は、追加します。
    • QuickPulseTelemetryProcessor 構成オプションを見つけます。 ない場合は、追加します。
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. アプリケーションを再起動します

"データに一時的にアクセスできません" ステータス メッセージ

ライブ メトリックに移動すると、次のステータス メッセージのバナーが表示されることがあります: "データに一時的にアクセスできません。 状態に関する最新情報をこちらでお知らせします https://aka.ms/aistatus "

[Azure の状態] ページへのリンクに従って、Application Insights に影響を与えるアクティブ化の停止があるかどうかをチェックします。 停止が発生していない場合、ファイアウォールとブラウザー拡張機能が Live Metrics へのアクセスをブロックしていないことを確認します。 たとえば、いくつかの一般的な広告ブロッカー拡張機能は、*.monitor.azure.com への接続をブロックします。 Live Metrics の完全な機能を使うには、広告ブロッカー拡張機能を無効にするか、広告ブロッカーやファイアウォールなどにドメイン *.livediagnostics.monitor.azure.com の除外ルールを追加します。

livediagnostics.monitor.azure.com への予期しないほど多数の要求

Application Insights SDK では、REST API を使用して QuickPulse エンドポイントと通信します。これにより、Web アプリケーションのライブ メトリックが提供されます。 Azure portal でライブ メトリック ペインを表示している場合、既定では、SDK はエンドポイントを 5 秒ごとに 1 回ポーリングしてチェックします。

[Live Metrics] を開くと、SDK は高頻度モードに切り替わり、新しいメトリックを 1 秒ごとに QuickPulse に送信します。 これにより、1 秒の待機時間でライブ アプリケーションを監視および診断できるだけでなく、より多くのネットワーク トラフィックも生成されます。 通常のトラフィック フローを復元するには、[Live Metrics] ペインから移動します。

Note

SDK によって QuickPulse エンドポイントに対して行われた REST API 呼び出しは Application Insights で追跡されず、依存関係の呼び出しやその他のメトリックには影響しません。 ただし、他のネットワーク監視ツールに表示される場合があります。

次のステップ