Live Metrics Stream:1 秒の待機時間での監視と診断Live Metrics Stream: Monitor & Diagnose with 1-second latency

Application Insights の Live Metrics Stream を使用して、実稼働中の Web アプリケーションの心臓部を調べます。Probe the beating heart of your live, in-production web application by using Live Metrics Stream from Application Insights. メトリックとパフォーマンス カウンターを選択してフィルタリングし、サービスに支障をきたすことなく、リアルタイムで監視します。Select and filter metrics and performance counters to watch in real time, without any disturbance to your service. 失敗した要求と例外のサンプルからスタック トレースを検査します。Inspect stack traces from sample failed requests and exceptions. プロファイラースナップショット デバッガーと共に、Together with Profiler, Snapshot debugger. Live Metrics Stream によって、ライブ Web サイトに影響を与えない強力な診断ツールが提供されます。Live Metrics Stream provides a powerful and non-invasive diagnostic tool for your live web site.

Live Metrics Stream を使用すると、次のことが可能になります。With Live Metrics Stream, you can:

  • 修正がリリースされている間に、パフォーマンスと失敗の数を確認して、修正を検証します。Validate a fix while it is released, by watching performance and failure counts.
  • テスト負荷の影響を監視し、問題をライブで診断します。Watch the effect of test loads, and diagnose issues live.
  • 監視するメトリックを選択してフィルタリングすることにより、特定のテスト セッションに焦点を当てたり、既知の問題を除外したりできます。Focus on particular test sessions or filter out known issues, by selecting and filtering the metrics you want to watch.
  • 発生時に例外トレースを取得します。Get exception traces as they happen.
  • フィルターを試して、最も関連性の高い KPI を検索します。Experiment with filters to find the most relevant KPIs.
  • すべての Windows パフォーマンス カウンターをライブで監視します。Monitor any Windows performance counter live.
  • 問題が発生しているサーバーを簡単に特定し、すべての KPI/ライブ フィードをフィルター処理してそのサーバーだけに絞り込むことができます。Easily identify a server that is having issues, and filter all the KPI/live feed to just that server.

Live Metrics Stream 動画Live Metrics Stream video

現在、Live Metrics は ASP.NET、ASP.NET Core、Azure Functions、Java、および Node.js アプリでサポートされています。Live Metrics are currently supported for ASP.NET, ASP.NET Core, Azure Functions, Java, and Node.js apps.

作業開始Get started

  1. Web アプリに Application Insights をインストールしていない場合は、今すぐインストールしてください。If you haven't yet install Application Insights in your web app, do that now.

  2. Live Metrics ストリームを有効にするには、標準の Application Insights パッケージに加え、Microsoft.ApplicationInsights.PerfCounterCollector が必要です。In addition to the standard Application Insights packages Microsoft.ApplicationInsights.PerfCounterCollector is required to enable Live Metrics stream.

  3. Application Insights パッケージの最新バージョンに更新します。Update to the latest version of the Application Insights package. Visual Studio でプロジェクトを右クリックし、 [NuGet パッケージの管理] を選択します。In Visual Studio, right-click your project and choose Manage Nuget packages. [更新プログラム] タブを開き、すべての Microsoft.ApplicationInsights.* パッケージを選択します。Open the Updates tab, and select all the Microsoft.ApplicationInsights.* packages.

    アプリケーションを再デプロイします。Redeploy your app.

  4. Azure ポータルで、アプリの Application Insights リソースを開いてから、Live Stream を開きます。In the Azure portal, open the Application Insights resource for your app, and then open Live Stream.

  5. フィルターに顧客名などの機密データを使用する場合は、コントロール チャネルを保護します。Secure the control channel if you might use sensitive data such as customer names in your filters.

Node.jsNode.js

Node.js で Live Metrics を使用するには、バージョン 1.30 以上の SDK に更新する必要があります。To use Live Metrics with Node.js you must update to version 1.30 or greater of the SDK. 既定で Live Metrics は、Node.js SDK で無効になります。By default Live Metrics is disabled in the Node.js SDK. Live Metrics を有効にするには、SDK を初期化する際にsetSendLiveMetrics(true)構成メソッドに追加します。To enable Live Metrics add setSendLiveMetrics(true) to your configuration methods as you initialize the SDK.

データが表示されない場合No data? サーバーのファイアウォールを確認Check your server firewall

サーバーのファイアウォールで、Live Metrics Stream の発信ポートが開いているか確認します。Check the outgoing ports for Live Metrics Stream are open in the firewall of your servers.

Live Metrics Stream が メトリックス エクスプローラーや Analytics と異なる点How does Live Metrics Stream differ from Metrics Explorer and Analytics?

Live StreamLive Stream メトリックス エクスプローラーと AnalyticsMetrics Explorer and Analytics
待機時間Latency 1 秒以内に表示されるデータData displayed within one second 数分間で集計Aggregated over minutes
リテンション期間なしNo retention データは、グラフに表示されている間は保持され、その後破棄されますData persists while it's on the chart, and is then discarded データは 90 日間保持Data retained for 90 days
オン デマンドOn demand Live Metrics を開いている間、データはストリーミングされますData is streamed while you open Live Metrics SDK がインストールされて有効になるたびに、データが送信されますData is sent whenever the SDK is installed and enabled
無料Free Live Stream データ用の料金は発生しませんThere is no charge for Live Stream data 価格設定の対象Subject to pricing
サンプリングSampling 選択したすべてのメトリックとカウンターが送信されます。All selected metrics and counters are transmitted. 失敗やスタック トレースがサンプリングされます。Failures and stack traces are sampled. TelemetryProcessors は適用されません。TelemetryProcessors are not applied. イベントがサンプリングされることがありますEvents may be sampled
コントロール チャネルControl channel フィルターの制御シグナルが SDK に送信されます。Filter control signals are sent to the SDK. このチャネルをセキュリティで保護することをお勧めします。We recommend you secure this channel. 通信はポータルへの一方向ですCommunication is one-way, to the portal

メトリックの選択とフィルタリングSelect and filter your metrics

(ASP.NET、ASP.NET Core、Azure Functions (v2) で使用できます。)(Available with ASP.NET, ASP.NET Core, and Azure Functions (v2).)

ポータルで Application Insights Telemetry に任意のフィルターを適用して、カスタム ライブ KPI を監視できます。You can monitor custom KPI live by applying arbitrary filters on any Application Insights telemetry from the portal. グラフをマウスでポイントしたときに表示されるフィルター コントロールをクリックします。Click the filter control that shows when you mouse-over any of the charts. 次のグラフは、URL 属性と期間属性にフィルターを適用して、カスタム要求数 KPI をプロットしています。The following chart is plotting a custom Request count KPI with filters on URL and Duration attributes. [ストリームのプレビュー] セクションでフィルターを検証します。このセクションには、指定した条件といずれかの時点で一致するテレメトリのライブ フィードが表示されます。Validate your filters with the Stream Preview section that shows a live feed of telemetry that matches the criteria you have specified at any point in time.

カスタム要求 KPI

Count 以外の値を監視できます。You can monitor a value different from Count. オプションはストリームの種類によって異なります。ストリームの種類には、任意の Application Insights Telemetry (要求、依存関係、例外、トレース、イベント、またはメトリック) を指定できます。The options depend on the type of stream, which could be any Application Insights telemetry: requests, dependencies, exceptions, traces, events, or metrics. オプションには、独自のカスタム測定を指定できます。It can be your own custom measurement:

値のオプション

Application Insights Telemetry だけでなく、Windows パフォーマンス カウンターを監視することもできます。ストリーム オプションから Windows パフォーマンス カウンターを選択し、パフォーマンス カウンターの名前を指定します。In addition to Application Insights telemetry, you can also monitor any Windows performance counter by selecting that from the stream options, and providing the name of the performance counter.

ライブ メトリックは 2 つのポイントで集計されます。具体的には、サーバーごとにローカルで集計された後、すべてのサーバーにわたって集計されます。Live metrics are aggregated at two points: locally on each server, and then across all servers. どちらについても、それぞれのドロップダウンで他のオプションを選択することで既定値を変更できます。You can change the default at either by selecting other options in the respective drop-downs.

サンプル テレメトリ:カスタム ライブ診断イベントSample Telemetry: Custom Live Diagnostic Events

既定では、イベントのライブ フィードには失敗した要求と依存関係呼び出し、例外、イベント、トレースのサンプルが表示されます。By default, the live feed of events shows samples of failed requests and dependency calls, exceptions, events, and traces. フィルター アイコンをクリックすると、任意の時点で適用された条件が表示されます。Click the filter icon to see the applied criteria at any point in time.

既定のライブ フィード

メトリックと同様に、Application Insights Telemetry の種類のいずれかに任意の条件を指定できます。As with metrics, you can specify any arbitrary criteria to any of the Application Insights telemetry types. この例では、特定の要求エラー、トレース、イベントを選択しています。In this example, we are selecting specific request failures, traces, and events. また、すべての例外と依存関係エラーも選択しています。We are also selecting all exceptions and dependency failures.

カスタム ライブ フィード

注:現時点では、例外メッセージ ベースの条件には、最も外側の例外メッセージを使用します。Note: Currently, for Exception message-based criteria, use the outermost exception message. 前の例では、"クライアントが切断されました。" という内部例外メッセージ ("<--" 区切り記号の後) が示されている害のない例外を除外するために、In the preceding example, to filter out the benign exception with inner exception message (follows the "<--" delimiter) "The client disconnected." "Error reading request content (要求内容の読み取りエラー)" が含まれていないメッセージという条件を使用します。use a message not-contains "Error reading request content" criteria.

ライブ フィードの項目をクリックして詳細を表示します。See the details of an item in the live feed by clicking it. フィードを一時停止するには、 [一時停止] をクリックするか、下にスクロールするか、または項目をクリックします。You can pause the feed either by clicking Pause or simply scrolling down, or clicking an item. スクロールして上部に戻るか、一時停止されている間に収集された項目のカウンターをクリックすると、ライブ フィードが再開されます。Live feed will resume after you scroll back to the top, or by clicking the counter of items collected while it was paused.

サンプリングされたライブ エラー

サーバー インスタンスによるフィルター処理Filter by server instance

特定のサーバー ロール インスタンスを監視する場合は、サーバーでフィルター処理できます。If you want to monitor a particular server role instance, you can filter by server.

サンプリングされたライブ エラー

SDK の要件SDK Requirements

.NET.NET

カスタムの Live Metrics Stream は、バージョン 2.4.0-beta2 以降の Application Insights SDK for web で使用できます。Custom Live Metrics Stream is available with version 2.4.0-beta2 or newer of Application Insights SDK for web. NuGet パッケージ マネージャーで [リリース前のパッケージを含める] を必ず選択してください。Remember to select "Include Prerelease" option from NuGet package manager.

Node.jsNode.js

Live Metrics Stream は、バージョン 1.3.0 以降の Node.js 用 Application Insights SDK で使用できます。Live Metrics Stream is available with version 1.3.0 or newer of the Application Insights SDK for Node.JS. コードで SDK を構成するときは、必ず setSendLiveMetrics(true) を使用してください。Remember to use setSendLiveMetrics(true) while configuring the SDK in your code.

コントロール チャネルの保護Secure the control channel

指定したカスタム フィルター条件は、Application Insights SDK の Live Metrics コンポーネントに送信されます。The custom filters criteria you specify are sent back to the Live Metrics component in the Application Insights SDK. フィルターに顧客 ID などの機密情報が含まれている可能性があります。The filters could potentially contain sensitive information such as customerIDs. インストルメンテーション キーに加え、シークレット API キーを使用してチャネルをセキュリティで保護できます。You can make the channel secure with a secret API key in addition to the instrumentation key.

API キーを作成するCreate an API Key

API キーを作成する

API キーを構成に追加するAdd API key to Configuration

クラシック ASP.NETClassic ASP.NET

applicationinsights.config ファイルで、AuthenticationApiKey を QuickPulseTelemetryModule に追加します。In the applicationinsights.config file, add the AuthenticationApiKey to the QuickPulseTelemetryModule:


<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector">
      <AuthenticationApiKey>YOUR-API-KEY-HERE</AuthenticationApiKey>
</Add>

または、コードで QuickPulseTelemetryModule に API キーを設定します。Or in code, set it on the QuickPulseTelemetryModule:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Extensibility;

             TelemetryConfiguration configuration = new TelemetryConfiguration();
            configuration.InstrumentationKey = "YOUR-IKEY-HERE";

            QuickPulseTelemetryProcessor processor = null;

            configuration.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    processor = new QuickPulseTelemetryProcessor(next);
                    return processor;
                })
                        .Build();

            var QuickPulse = new QuickPulseTelemetryModule()
            {

                AuthenticationApiKey = "YOUR-API-KEY"
            };
            QuickPulse.Initialize(configuration);
            QuickPulse.RegisterTelemetryProcessor(processor);
            foreach (var telemetryProcessor in configuration.TelemetryProcessors)
                {
                if (telemetryProcessor is ITelemetryModule telemetryModule)
                    {
                    telemetryModule.Initialize(configuration);
                    }
                }

Azure Function AppAzure Function Apps

Azure Function App (v2) の場合、API キーを使用してチャネルをセキュリティで保護するには、環境変数を使用します。For Azure Function Apps (v2) securing the channel with an API key can be accomplished with an environment variable.

Application Insights リソース内から API キーを作成し、Function App の [アプリケーションの設定] に移動します。Create an API key from within your Application Insights resource and go to Application Settings for your Function App. [新しい文字列の追加] を選択し、APPINSIGHTS_QUICKPULSEAUTHAPIKEY の名前と、API キーに対応する値を入力します。Select add new setting and enter a name of APPINSIGHTS_QUICKPULSEAUTHAPIKEY and a value that corresponds to your API key.

ASP.NET Core (Application Insights ASP.NET Core SDK 2.3.0-beta 以降が必要)ASP.NET Core (Requires Application Insights ASP.NET Core SDK 2.3.0-beta or greater)

startup.cs ファイルを次のように変更します。Modify your startup.cs file as follows:

最初に以下を追加します。First add

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

その後、ConfigureServices メソッド内で以下を追加します。Then within the ConfigureServices method add:

services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

ただし、接続されているすべてのサーバーを認識し、信頼している場合は、認証済みチャネルなしにカスタム フィルターを試すことができます。However, if you recognize and trust all the connected servers, you can try the custom filters without the authenticated channel. このオプションは 6 か月間使用できます。This option is available for six months. このオーバーライドは、新しいセッションごとに 1 回、または新しいサーバーがオンラインになったときに必要になります。This override is required once every new session, or when a new server comes online.

Live Metrics の認証オプション

注意

フィルター条件に CustomerID などの機密情報を入力する前に、認証済みチャネルを設定することを強くお勧めします。We strongly recommend that you set up the authenticated channel before entering potentially sensitive information like CustomerID in the filter criteria.

トラブルシューティングTroubleshooting

データが表示されない場合No data? 保護されているネットワークにアプリケーションが存在する場合:Live Metrics Stream では他の Application Insights Telemetry とは異なる IP アドレスを使用します。If your application is in a protected network: Live Metrics Stream uses a different IP addresses than other Application Insights telemetry. これらの IP アドレスがファイアウォールで開いていることを確認してください。Make sure those IP addresses are open in your firewall.

次の手順Next steps