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 |
情報 |
サーバーが削除されました。 |
[トップに戻る]