StreamInsight パフォーマンス カウンターおよびイベントの監視

既存の診断インフラストラクチャを使用すると、イベント ビューアーやパフォーマンス モニターで StreamInsight プロセスおよびクエリの監視とトラブルシューティングを行うことができます。

このトピックの内容

  • パフォーマンス カウンター

    • パフォーマンス カウンターの構成

    • パフォーマンス カウンターの一覧

    • パフォーマンス カウンターの利用方法

  • 管理イベント

    • 管理ログの構成

    • 管理イベントの一覧

パフォーマンス カウンター

StreamInsight によって、パフォーマンス カウンターをインストールおよび構成します。これらのカウンターは、パフォーマンス モニターや別の監視ツールを使用して監視できます。

パフォーマンス カウンターは、次の StreamInsight オブジェクトで使用できます。

  • サーバー

  • クエリ

  • 入力アダプター

  • 回復性

パフォーマンス カウンターの構成

StreamInsight のインストール時に、パフォーマンス カウンターがインストールおよび構成されます。この設定オプションは構成できません。

サーバー カテゴリ内のカウンターは、既定でオンになっており、これをオフにすることはできません。クエリおよび入力アダプター カテゴリ内のカウンターは、既定でオフになっています。クエリに対してカウンターをオンにすると、関連付けられた入力アダプターのカウンターもオンになります。StreamInsight のインスタンスを再起動すると、これらの既定の動作も復元されます。

1 つのクエリのカウンターをオンにする方法

特定のクエリと関連付けられた入力アダプターに対してカウンターをオンにするには、Server.SetDiagnosticSettings の呼び出しで新しい Aspect を有効にします。

たとえば、次のコードを使用して、URI (cep:/Server/Application/MyApp/Query/MyQuery) を含むクエリのパフォーマンス カウンターをオンにできます。

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects |= DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);

次のコードを使用して、同じクエリのパフォーマンス カウンターをオフにできます。

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects & ~DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);

すべてのクエリのカウンターをオンにする方法

foreach ループを使用して、アプリケーションのすべてのクエリと入力アダプターのパフォーマンス カウンターをオンにすることもできます。

foreach (var q in application.Queries)
   {
       DiagnosticSettings settings = server.GetDiagnosticSettings(q.Value.Name);
       settings.Aspects |= DiagnosticAspect.PerformanceCounters;
       server.SetDiagnosticSettings(q.Value.Name, settings);
   }

上記のコード サンプルで使用されるクラスおよびメソッドの詳細については、次のトピックを参照してください。

[トップに戻る]

パフォーマンス カウンターの一覧

名前付け規則

16 文字を超えるアプリケーション名などの文字列は、式 (first 10 characters + 2 periods + last 4 characters) に応じて短縮されます。

以下に示す特定の名前付け規則で、uniqueid は実行時のオブジェクトの ID を表します。

サーバー カウンター

サーバー インスタンスの名前付け規則: %PROCESSNAME%[uniqueid]。ここで、%PROCESSNAME% は、ホストしているプロセスの名前です。

名前

説明

Events in input queues

すべてのクエリの入力キューにあるイベントの数。

Events in output queues

すべてのクエリの出力キューにあるイベントの数。

Memory

すべてのストリーム、イベント、および演算子インデックスで使用される合計メモリ量 (バイト単位)。

Running queries

現在実行されているクエリの数。

クエリ カウンター

クエリ インスタンスの名前付け規則: %APPLICATION NAME%,%QUERY NAME%[uniqueid],%SERVER_INSTANCE_NAME%。ここで、%SERVER_INSTANCE_NAME% は、クエリが属するサーバーのインスタンス名です。

名前

説明

Average produced event latency

秒ごとにクエリによって生成されたイベントの平均待機時間 (ミリ秒)。

CTIs produced

生成された CTI の数。

Events in output queue

出力キュー内のイベント数。

Events produced

生成されたイベントの数。

Memory

イベント、インデックス、ストリームなどで使用される合計メモリ量 (バイト単位)。

Produced events/sec

1 秒間に生成されるイベントの数。

入力アダプター カウンター

アダプター インスタンスの名前付け規則: %APPLICATION NAME%,%QUERY NAME%,%ADAPTER NAME%[uniqueid],%SERVER_INSTANCE_NAME%。

名前

説明

Adjusted events

一時的なメタデータが AdvanceTimeSettings ポリシーに応じて調整されたイベントの数。

CTIs input

入力キューに送信される CTI の数。

Dropped events

AdvanceTimeSettings ポリシーに応じて削除されたイベントの数。

Events in input queue

入力キュー (CTI など) にあるイベントの数。

Incoming events/sec

アダプターが受信した 1 秒あたりのイベント数。

Resumes/sec

1 秒あたりの実行状態への状態遷移の数。

Suspensions/sec

1 秒あたりの中断状態への状態遷移の数。

Total events enqueued

キューに登録されたイベントの数。

[トップに戻る]

パフォーマンス カウンターの利用方法

次のシナリオは、StreamInsight アプリケーションの理解、監視、およびトラブルシューティングに役立つパフォーマンス カウンター例を示しています。

  • サーバーのシナリオ

    • メモリの使用量。どの程度のメモリ量がホスト アプリケーションとは別に、StreamInsight の埋め込まれたインスタンスになるか?

    • キャパシティ プランニング。パフォーマンスが低下する前にいくつのクエリをこのサーバーで実行できるか?

    • 事後検証分析。サーバーがクラッシュしたときにいくつのクエリが実行されていたか?

  • クエリのシナリオ

    • スループットの監視。ボトルネックはどこか?

    • 待機時間の監視。

[トップに戻る]

管理イベント

StreamInsight は、Windows アプリケーション イベント ログにイベントのログを記録します。イベント ビューアーまたは別の監視ツールでこのログをレビューできます。ログ記録されたイベントは、StreamInsight アプリケーションで発生する可能性のある状態変化の監視と異常のトラブルシューティングを監視する際に役立ちます。

次の StreamInsight オブジェクトによってイベントがログに記録されます。

  • サーバー

  • クエリ

管理ログの構成

管理ログは既定でオンになっています。管理ログのオンとオフを切り替えることができるのは、StreamInsight インスタンス (cep:/Server/) のレベルのみです。

管理ログをオフにする方法

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects &= ~DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);

管理ログをオンにする方法

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects |= DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);

[トップに戻る]

管理イベントの一覧

次の表は、イベント ログに表示されるイベントの一覧を示しています。

すべての StreamInsight 管理イベントのソースは、StreamInsight です。

クエリ イベント

シンボル

イベント ID

レベル

メッセージ

パラメーター

QueryInitializing

11001

情報

クエリ {0} を初期化しています。

Query Uri

QueryRunning

11002

情報

クエリ {0} を実行しています。

Query Uri

QueryCheckpointing

11003

情報

クエリ [0} はチェックポイントを実行しています。

Query Uri

QueryStopping

11004

情報

クエリ {0} は停止しています。

Query Uri

QuerySuspended

11005

情報

クエリ {0} は中断しています。

Query Uri

QueryCompleted

11006

情報

クエリ {0} が完了しました。

Query Uri

QueryAborted

11007

警告

クエリ {0} が中止されました。

Query Uri

QueryStopped

11008

情報

クエリ {0} は停止しました。

Query Uri

QueryError

11500

警告

クエリ {0} で例外が発生しました。例外の詳細: {1}

Query Uri、例外メッセージ。

QueryRecoveryError

11501

エラー

回復中にクエリ {0} で例外が発生しました。例外の詳細: {1}

Query Uri、例外メッセージ。

QueryCheckpointError

11502

エラー

チェックポイント実行中にクエリ {0} で例外が発生しました。例外の詳細: {1}

Query Uri、例外メッセージ。

サーバー イベント

シンボル

イベント ID

レベル

メッセージ

パラメーター

ServerCreated

1000

情報

サーバーが作成されました。

ServerDisposed

1001

情報

サーバーが削除されました。

[トップに戻る]