StreamInsight サーバーおよびクエリの監視
StreamInsight サーバーの状態の監視では、システム全体の状態の追跡とクエリ パフォーマンスの追跡が行われます。StreamInsight サーバーの状態をキャプチャするには、サーバーで実行中の StreamInsight クエリを監視し、さらに StreamInsight クエリを構成するエンティティがシステム リソースをどのように使用しているかを監視します。
このトピックの内容
診断ビューの作成
診断ビューでトラブルシューティングできる問題
クエリの状態
クエリレベルの監視について
クエリ待機時間の監視
診断プロパティの一覧
演算子の診断
アダプターの診断
ストリームの診断
クエリの診断
パブリッシュされたストリームの診断
サーバーの診断
PowerShell を使用した診断へのアクセス
診断ビューの作成
監視情報は、診断ビュー API を使用することで取得できます。この API を使用する前提条件として、管理 Web サービスがサーバー配置の埋め込みモードとスタンドアロン モードの両方で有効になっており、クライアント アプリケーションがこの Web サービスを経由してサーバーに接続されている必要があります。詳細については、「StreamInsight サーバーへのパブリッシュおよび接続」を参照してください。
代わりに、診断 API を使用して GUI インターフェイスに結果を返す StreamInsight Event Flow Debugger の診断機能を利用して、サーバーとクエリを監視することもできます。デバッガーはライブの StreamInsight サーバーに接続し、オブジェクト エクスプローラーを使用してサーバー内のさまざまなオブジェクトを表示します。任意のオブジェクトを右クリックすると、そのエンティティのランタイム診断を取得できます。詳細については、「StreamInsight Event Flow Debugger の使用」を参照してください。
サーバーのすべてのオブジェクトへのアクセスには、階層的な名前付けスキーマに基づいた Uniform Resource Identifier (URI) を使用します。この名前付けスキーマはサーバーで開始され、クエリ演算子とイベント ストリームまで続行します。サーバー レベルの診断は、次のオブジェクトから取得できます。
cep:/Server
cep:/Server/PlanManager
cep:/Server/EventManager
cep:/Server/Query
特定のクエリを参照するには、cep:/Server/Application/ApplicationName/Query/QueryName の名前付けスキームを使用します。
クエリに属する特定の演算子やストリームを参照するには、以下の名前付けスキームを使用します。クエリ内ではアダプターは演算子としても見なされることに注意してください。アダプターには演算子の用語体系を使用します。
cep:/Server/Application/ApplicationName/Query/QueryName/Operator/OperatorName
cep:/Server/Application/ApplicationName/Query/QueryName/Stream/StreamName
たとえば、'ObjectModelSample' という名前のアプリケーションに含まれている 'TrafficSensorQuery' という名前のクエリを参照するには、cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery を使用します。
これらのオブジェクトの診断情報は、GetDiagnosticView() メソッドを呼び出すことで取得します。診断設定を取得する際は、側面 (メモリ、CPU、およびその設定に特有の他の属性) とレベル (重要度) の 2 つのディメンションでフィルター処理できます。これらのフィルター条件は、SetDiagnosticsSettings() メソッドおよび ClearDiagnosticSettings() メソッドを使用して、指定されたクエリに対して特定の設定を行うか、設定を解除できます。次の例は、サンプル 'ExplicitServer.cs' に基づいています。実行中のクエリに対してさまざまなオブジェクトの診断を出力します。この例では、"MyInstance" という名前の StreamInsight インスタンスが登録されていることが前提となっています。
public class ExplicitServer
{
public static void Main(string[] args)
{
using (Server server = Server.Create("MyInstance"))
{
try
{
// Create application in server
// Create query logic as a query template
// Register adapter factories
// bind query to event producers and consumers
// Create bound query that can be run
// Create a tracer to output information on the console.
TraceListener tracer = new ConsoleTraceListener();
// Start the query
query.Start();
// Retrieve diagnostic information from the StreamInsight server.
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
tracer.WriteLine("Global Server Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Query")), tracer);
tracer.WriteLine("Summary Query Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);
tracer.WriteLine("Operator Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery/Operator/sensorInput")), tracer);
query.Stop();
}
catch (Exception e)
{
tracer.WriteLine(e.ToString());
}
}
}
private static void RetrieveDiagnostics(DiagnosticView diagview, TraceListener traceListener)
{
// Display diagnostics for diagnostic view object
traceListener.WriteLine("Diagnostic View for '" + diagview.ObjectName + "':");
foreach (KeyValuePair<string, object> diagprop in diagview)
{
traceListener.WriteLine(" " + diagprop.Key + ": " + diagprop.Value);
}
}
}
前の例で使用される API の詳細については、「DiagnosticView」を参照してください。トレース リスナーの詳細については、「トレース リスナー」を参照してください。
[トップに戻る]
診断ビューでトラブルシューティングできる問題
診断ビューを使用すると、StreamInsight アプリケーションのさまざまな種類の問題をトラブルシューティングできます。次に例を示します。
原因 |
現象 |
---|---|
ユーザー定義の拡張機能の実行に時間がかかる |
システム待機時間が長い |
ユーザー定義の拡張機能により例外が発生した |
クエリのハングまたは中断 |
入力アダプターがデータを迅速にフィードしない |
データ待機時間が長い |
入力アダプターが CTI を生成しない |
クエリのハング |
出力アダプターが遅れる |
システム待機時間が長い |
ただし、診断ビューは、StreamInsight アプリケーションに影響している可能性のあるサーバー レベル、またはローカル ネットワーク レベルの問題のトラブルシューティングには使用できません。この種類の問題には、速度の遅いネットワーク、速度の遅いディスク I/O、メモリ不足、サーバー上のリソース競合などがあります。
[トップに戻る]
クエリの状態
クエリはその有効期間中、複数の状態を通過します。次の表でこれらの状態について説明します。
クエリの状態 |
説明 |
---|---|
停止 |
クエリはアクティブではなくなります。クエリ プランは維持されません。 この状態は、通常、クエリの Stop メソッドの呼び出しの後に発生します。 |
初期化中 |
この状態は通常、次のいずれかのイベントの後に発生します。
|
実行中 |
クエリはイベントを処理中です。 この状態は、通常、クエリの Start メソッドの呼び出しの後に発生します。 |
チェックポイント |
クエリが実行中で、チェックポイントが進行中です。 この状態は、通常、BeginCheckpoint メソッドの呼び出しの後に発生します。 |
Stopping |
ユーザーがクエリの停止を要求しました。 この状態は、通常、クエリの Stop メソッドの呼び出しの後に発生します。 |
中断状態 |
サーバーが回復性なしで起動されたため、回復性のあるクエリが復旧に失敗したか、復旧することができませんでした。 |
完了 |
クエリが正常に完了しました。つまり、入力アダプターがストリームの終端マーカーをキューに登録し、出力アダプターがそれらを使用しました。 |
中断 |
障害が発生しました。クエリは、プラン マネージャーで使用できます。 |
[トップに戻る]
クエリレベルの監視について
StreamInsight サーバーのクエリ パフォーマンスを監視する場合は、ManagementService API に用意されている、クエリレベルの監視属性を使用できます。次のイベント フロー図は、このような監視属性をどのように使用できるかを理解するのに役立ちます。
この図からは、入力アダプターからクエリを介して出力アダプターに至るまでのイベントの経路 (左から右) を記録する 4 つの測定ポイントがあることが考えられます。これらの測定ポイントに基づき、次の指標を取得できます。
受信 - すべての入力アダプターを通過した受信イベントを記録します。入力アダプターからクエリへの未処理の入力イベントの到着率を測定することができます。
使用 - StreamInsight サーバーで使用されたイベント、つまり、入力アダプターの直後に続くすべての演算子を通過したイベントを記録します。サーバーのキューに格納されたイベントを測定することができます。
生成 - 出力アダプターの直前にある演算子から送られるすべてのイベントを記録します。クエリのキューから取り出されたイベントを測定することができます。
送信 - 出力アダプターから送信されるすべてのイベントを記録します。StreamInsight サーバーからシンクへのイベント送信率を測定することができます。
この図をガイドとして使用すると、イベント フロー内の必要な領域に基づいて返される適切な属性を判断することができます。たとえば、クエリで使用されたイベント数を調べるには、属性 QueryTotalConsumedEventCount を使用します。また、クエリによって生成されたイベント数を調べるには、属性 QueryTotalProducedEventCount を使用します。
[トップに戻る]
クエリ待機時間の監視
待機時間は、特定のゲート ("受信"、"生成"、"使用"、または "送信") でのすべてのイベントの到着から送信までを計算した累積値です。(S2 – S1) / (C2 – C1) のように、任意の 2 つの時点で実施された測定値間の平均待機時間を計算できます。この場合、S は指定されたゲートの待機時間の累積合計を表し、C はゲート地点でのイベント数を表します。
たとえば、平均待機時間を計算するには、タイム スタンプ t1 の時点で使用された累積待機時間 (QueryTotalConsumedEventLatency) (S1) と、タイム スタンプ t1 の時点で使用されたイベントの総数 (QueryTotalConsumedEventCount) (C1) を測定します。次に、別のタイム スタンプ (t2) で同様の測定を繰り返してから、(S2 – S1)/ (C2 – C1) で使用されたイベントの平均待機時間を計算します。
QueryTotalIncomingEventCount から QueryLastProducedCtiTimestamp までの属性を使用すると、クエリとの間でのイベント転送におけるアダプターの効率性と、StreamInsight サーバーでイベントを処理できる比率を確認できます。
演算子によって使用されたメモリの合計を確認するには、OperatorEventMemory 属性と OperatorIndexMemory 属性の値を合計します。
[トップに戻る]
診断プロパティ
診断ビューは、サーバー、クエリ、パブリッシュされたストリーム、演算子、およびアダプターを含む複数レベルのオブジェクトの粒度で属性を返します。
診断は、階層内の細かい粒度のオブジェクトから粗い粒度のオブジェクトに集計できるように設計されています。各レベルでは、次の種類の診断情報を取得できます。
静的情報 (S) では、オブジェクトのプロパティが返されます。静的情報は、クエリ操作の条件が変化しても変わりません。
非集計情報 (N) では、子オブジェクトからその親オブジェクトまで集計されない統計が返されます。
集計情報 (A) では、子オブジェクトからその親オブジェクトまで集計された統計が返されます。
以下に示す診断ビューのプロパティはすべて DiagnosticViewProperty に含まれています。
演算子の診断
メタデータ
次の表に、クエリ内の各演算子を記述するメタデータ プロパティを示します。これらのプロパティの値は変化しません。
プロパティ名 |
型 |
説明 |
---|---|---|
OperatorId |
Int64 |
演算子の識別子。 |
OperatorKind |
String |
演算子の種類です。 |
OperatorQueryId |
Int64 |
現在の演算子が存在するクエリの識別子。 |
OperatorEventType |
String |
演算子の出力の種類の XML 表現。''グループ化と適用'' 演算子の場合、出力ではなく、グループ化フィールドの種類になります。 |
非集計統計情報
次の表に、1 つの演算子のすべての論理インスタンスで集計されるが、クエリ統計に対しては集計されない統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
OperatorTotalInputEventCount |
Int64 |
演算子に関する入力イベントの総数。 |
OperatorMinInputEventCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで処理済みの入力イベントの最小数。 |
OperatorMaxInputEventCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで処理済みの入力イベントの最大数。 |
OperatorTotalOutputEventCount |
Int64 |
演算子に関する出力イベントの総数。 |
OperatorMinOutputEventCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで生成された出力イベントの最小数。 |
OperatorMaxOutputEventCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで生成された出力イベントの最大数。 |
OperatorLastOutputCtiTimestamp |
DateTime |
演算子によって生成された最後の CTI のタイムスタンプ (アプリケーション時間)。 |
OperatorTotalOutputCtiCount |
Int64 |
演算子によって生成された CTI イベントの総数。 |
OperatorMinOutputCtiCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで生成された CTI イベントの最小数。 |
OperatorMaxOutputCtiCountAcrossWorkers |
Int64 |
1 つの演算子のすべてのワーカーで生成された CTI イベントの最大数。 |
OperatorEventCountSinceLastCti |
Int64 |
1 つの演算子のすべてのワーカーの最後の CTI 以降に、演算子によって生成されたイベントの集計数。 Cleanse 演算子の場合、この値は通常 0 (ゼロ) です。 |
OperatorMinIndexEventCountAcrossWorkers |
Int64 |
演算子のすべてのワーカーでのインデックス内のイベントの最小数。 |
OperatorMaxIndexEventCountAcrossWorkers |
Int64 |
演算子のすべてのワーカーでのインデックス内のイベントの最大数。 |
OperatorMinEventMemoryAcrossWorkers |
Int64 |
演算子のすべてのワーカーで、インデックス内でイベントによって使用される最小メモリ量 (バイト単位)。 |
OperatorMaxEventMemoryAcrossWorkers |
Int64 |
演算子のすべてのワーカーで、インデックス内でイベントによって使用される最大メモリ量 (バイト単位)。 |
OperatorMinIndexMemoryAcrossWorkers |
Int64 |
演算子のすべてのワーカーで、インデックスによって使用される最小メモリ量 (バイト単位)。 |
OperatorMaxIndexMemoryAcrossWorkers |
Int64 |
演算子のすべてのワーカーで、インデックスによって使用される最大メモリ量 (バイト単位)。 |
OperatorNumberOfWorkers |
Int32 |
その演算子を実行している計算単位の数。 |
OperatorGroupIdField |
String |
グループ化と適用演算子のグループ ID の名前。 |
OperatorMinCpuUsageAcrossWorkers |
Int64 |
演算子のすべてのワーカーでの最小の CPU 使用率 (ミリ秒)。 |
OperatorMaxCpuUsageAcrossWorkers |
Int64 |
演算子のすべてのワーカーでの最大の CPU 使用率 (ミリ秒)。 |
OperatorMinEventAdjustedCount |
Int64 |
演算子のすべてのワーカーでの調整済みイベント最小数。 |
OperatorMaxEventAdjustedCount |
Int64 |
演算子のすべてのワーカーでの調整済みイベント最大数。 |
OperatorTotalEventAdjustedCount |
Int64 |
演算子のすべてのワーカーでの調整済みイベントの総数。 |
OperatorMinEventDroppedCount |
Int64 |
演算子のすべてのワーカーでの削除済みイベント最小数。 |
OperatorMaxEventDroppedCount |
Int64 |
演算子のすべてのワーカーでの削除済みイベント最大数。 |
OperatorTotalEventDroppedCount |
Int64 |
演算子のすべてのワーカーでの削除済みイベントの総数。 |
集計統計情報
次の表に、1 つの演算子のすべての論理インスタンスで集計され、クエリ統計に対して集計される統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
OperatorIndexEventCount |
Int64 |
演算子のすべてのアクティブ論理インスタンスでインデックスによって使用されるメモリ。 |
OperatorEventMemory |
Int64 |
演算子のすべての論理インスタンスで、インデックス内でイベントによって使用されるメモリ量 (バイト単位)。 |
OperatorIndexMemory |
Int64 |
演算子のインデックスによって使用されるメモリ量 (バイト単位)。 |
OperatorTotalCpuUsage |
Int64 |
演算子の総 CPU 使用率 (ミリ秒)。 |
OperatorTotalScheduledCount |
Int64 |
演算子がスケジュールされた合計回数。 |
[トップに戻る]
アダプターの診断
このセクションでは、アダプターに特有の診断プロパティの一覧を示します。アダプターとは特殊な種類の演算子で、したがって、演算子について一覧表示されたすべての診断プロパティを含んでいます。
メタデータ
次の表に、個々のアダプターを記述するメタデータ プロパティを示します。注: AdapterState プロパティの値は変化することがあります。
プロパティ名 |
型 |
説明 |
---|---|---|
AdapterStateTransitionHistory |
String |
各アダプターについて、最後の数件のアダプター遷移に関する XML 表現。 |
統計情報
次の表に、アダプターに特有の統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
AdapterTotalSuspendCount |
Int64 |
アダプターのすべてのインスタンスが中断された合計回数。 |
AdapterMinSuspendCountAcrossWorkers |
Int64 |
アダプターのインスタンスがサーバーによって中断された最低の回数。 |
AdapterMinSuspendCountAcrossWorkers |
Int64 |
アダプターのインスタンスがサーバーによって中断された最大の回数。 |
AdapterTotalTimeInSuspendedState |
TimeSpan |
アダプターのすべてのインスタンスが中断状態にあった時間の合計値。 |
AdapterMinTimeInSuspendedStateAcrossWorkers |
TimeSpan |
アダプターのインスタンスが中断状態にあった時間の最小値。 |
AdapterMaxTimeInSuspendedStateAcrossWorkers |
TimeSpan |
アダプターのインスタンスが中断状態にあった時間の最大値。 |
AdapterTotalTimeInNonSuspendedState |
TimeSpan |
アダプターのすべてのインスタンスが非中断状態にあった時間の合計値。 |
AdapterMinTimeInNonSuspendedStateAcrossWorkers |
TimeSpan |
アダプターのインスタンスが非中断状態にあった時間の最小値。 |
AdapterMaxTimeInNonSuspendedStateAcrossWorkers |
TimeSpan |
アダプターのインスタンスが非中断状態にあった時間の最大値。 |
AdapterFirstCtiTimestamp |
DateTime |
アダプターによって生成または使用された最初の CTI のタイムスタンプ (アプリケーション時間)。 |
AdapterNumberOfRunningWorkers |
Int32 |
"Running" 状態のアダプターのインスタンス数。 |
AdapterNumberOfStoppedWorkers |
Int32 |
"Stopped" 状態のアダプターのインスタンス数。 |
AdapterNumberOfSuspendedWorkers |
Int32 |
"Suspended" 状態のアダプターのインスタンス数。 |
アダプターの回復性
属性 |
情報 型 |
.NET Framework 型 |
説明 |
---|---|---|---|
InputAdapterLastCheckpointHighWaterMark |
N |
DateTime |
このストリームの最後のチェックポイントで使用されたアプリケーション時間の高ウォーターマーク。これによって、入力ストリームのポイントを一意に識別でき、ストリームは、復旧中にこのポイント以降のすべてのイベントを再生できます。 |
OutputAdapterLastCheckpointEventOffset |
N |
Int32 |
最後のチェックポイントが取られた出力ストリーム内での場所を指定するアプリケーション時間の高ウォーターマーク以降のイベントの数。 |
OutputAdapterLastCheckpointHighWaterMark |
N |
DateTime |
クエリによって取られた最後のチェックポイントのための出力ストリームのアプリケーション時間の高ウォーターマーク。 |
[トップに戻る]
ストリームの診断
メタデータ
次の表に、クエリ内の各ストリームを記述するメタデータ プロパティを示します。これらのプロパティの値は変化しません。
プロパティ名 |
型 |
説明 |
---|---|---|
StreamId |
Int64 |
ストリームの ID。 |
StreamQueryId |
Int64 |
ストリームのクエリの ID。 |
StreamSourceOperatorId |
Int64 |
ストリームのソース演算子の ID。 |
StreamTargetOperatorId |
Int64 |
ストリームのターゲット演算子の ID。 |
StreamSystemInstance |
ブール値 |
ストリームがシステム ストリームであるかどうかを示すブール値 (Boolean)。 |
非集計統計情報
次の表に、ストリームのすべての論理インスタンスで集計されるが、クエリ統計情報に対して集計されない統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
StreamTotalInputEventCount |
Int64 |
ストリームに関する入力イベントの総数。 |
StreamMinEventCountAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスにあるイベントの最小数。 |
StreamMaxEventCountAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスにあるイベントの最大数。 |
StreamNumberOfWorkers |
Int32 |
このストリームのインスタント数。 |
StreamMinInputEventCountAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスにある入力イベントの最小数。 |
StreamMaxInputEventCountAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスにある入力イベントの最大数。 |
StreamMinMemoryIncludingEventsAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスによって使用される最小メモリ量 (バイト単位)。 |
StreamMaxMemoryIncludingEventsAcrossWorkers |
Int64 |
ストリームのすべてのインスタンスによって使用される最大メモリ量 (バイト単位)。 |
集計統計情報
次の表に、ストリームのすべての論理インスタンスで集計され、クエリ統計情報に対して集計される統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
StreamEventCount |
Int64 |
ストリームのすべてのインスタンスにあるイベントの総数。 |
StreamMemoryIncludingEvents |
Int64 |
ストリームおよびストリーム内のすべてのイベントによって使用されるメモリ量 (バイト単位)。 |
[トップに戻る]
クエリの診断
クエリには、それを構成する演算子とストリームからの集計統計情報と共に独自の統計情報が含まれます。次のセクションでは、クエリに特有の統計情報について詳しく説明します。
クエリが実行されていない場合は、診断は QueryState (中断状態または停止中) および IsResilient (true または false) プロパティのみを返します。
メタデータ
次の表に、個々のクエリを記述するメタデータ プロパティを示します。これらのプロパティの値は変化しません。
プロパティ名 |
型 |
説明 |
---|---|---|
QueryState |
String |
クエリの現在の状態。 |
QueryStartTime |
DateTime |
クエリの開始時刻。 |
QueryEndTime |
DateTime |
クエリの終了時刻。 |
QueryException |
String |
クエリ内で最後に発生した例外。 |
QueryCreationTime |
DateTime |
クエリのインスタンスが作成された時刻。 |
QueryId |
Int64 |
クエリの ID。 |
QuerySystemInstance |
ブール値 |
クエリがシステム クエリであるかどうかを示すブール値。 |
QueryInstanceGroupId |
Int64 |
クエリのインスタンス グループ ID。 |
統計情報
次の表に、クエリに特有の統計情報を示します。
プロパティ名 |
型 |
説明 |
---|---|---|
QueryTotalIncomingEventCount |
Int64 |
クエリに関する受信イベントの総数。 |
QueryTotalConsumedEventCount |
Int64 |
クエリによって使用されるイベントの総数。 |
QueryTotalProducedEventCount |
Int64 |
クエリによって生成されるイベントの総数。 |
QueryTotalOutgoingEventCount |
Int64 |
クエリに関する送信イベントの総数。 |
QueryLastIncomingEventTimestamp |
DateTime |
クエリに対する最後の受信イベントのシステム時刻。 |
QueryLastConsumedEventTimestamp |
DateTime |
クエリに対して最後に使用されたイベントのシステム時刻。 |
QueryLastProducedEventTimestamp |
DateTime |
クエリに対して最後に生成されたイベントのシステム時刻。 |
QueryLastOutgoingEventTimestamp |
DateTime |
クエリに対する最後の送信イベントのシステム時刻。 |
QueryTotalConsumedEventLatency |
Double |
クエリで使用されたすべてのイベントの合計待機時間 (ミリ秒)。 |
QueryTotalProducedEventLatency |
Double |
クエリによって生成されたすべてのイベントの合計待機時間 (ミリ秒)。 |
QueryTotalOutgoingEventLatency |
Double |
クエリに対するすべての送信イベントの合計待機時間 (ミリ秒)。 |
QueryLastProducedCtiTimestamp |
DateTime |
クエリによって生成された最後の CTI のタイムスタンプ (アプリケーション時間)。 |
クエリの回復性
属性 |
情報 型 |
.NET Framework 型 |
説明 |
---|---|---|---|
QueryLastCheckpointBeginTime |
N |
DateTime |
クエリ最後のチェックポイントが開始された時刻。この時刻は、チェックポイントがまったく取られなかった場合、クエリが停止した場合、またはクエリが中止された場合にはありません。 |
QueryLastCheckpointEndTime |
N |
DateTime |
クエリ最後のチェックポイントが完了した時刻。この時刻は、チェックポイントがまったく取られなかった場合、クエリが停止した場合、またはクエリが中止された場合にはありません。 |
QueryLastCheckpointSize |
N |
Int64 |
クエリの最後のチェックポイントのサイズ (バイト単位)。このサイズは、チェックポイントがまったく取られなかった場合にはありません。 |
QueryIsResilient |
N |
ブール値 |
クエリが回復性を持つように構成されている場合は true (サーバーの状態には関係なく)。回復性を持つように構成されていない場合は false。 |
[トップに戻る]
パブリッシュされたストリームの診断
次の表に、パブリッシュされたストリームに対して返される指標を示します。パブリッシュされたストリームの詳細については、開発者ガイドの「実行時のクエリの構築」を参照してください。各クエリには暗黙的にパブリッシュされたストリームもあることに注意してください。このパブリッシュされたストリームの詳細は、クエリ診断の一部として表示されます。
属性 |
情報の種類 |
データ型 |
.NET Framework 型 |
説明 |
---|---|---|---|---|
PublishedStreamId |
S |
Number |
Int64 |
パブリッシュされたストリームの ID。 |
PublishedStreamEventShape |
S |
String |
String |
パブリッシュされたストリームによって処理されたイベントの形状 (ポイント、期間、または境界のいずれか)。 |
PublishedStreamEventType |
S |
String |
String |
XML で表されたイベントの種類を含む文字列。 |
PublishedStreamProducerCount |
S |
Number |
Int32 |
ストリームに対するイベントのプロデューサーの数。0 または 1 の値です。 |
PublishedStreamConsumerCount |
S |
Number |
Int32 |
ストリームのイベントのコンシューマーの数。 |
PublishedStreamEventCount |
S |
Number |
Int64 |
パブリッシュされたストリーム内のイベントの数。 |
PublishedStreamTotalEventCount |
S |
数値 |
Int64 |
パブリッシュされたすべてのストリームでのイベントの総数。 |
[トップに戻る]
サーバーの診断
サーバー
次の表に、サーバー全体 (StreamInsight) の基準を示します。
属性 |
データ型 |
.NET Framework 型 |
説明 |
---|---|---|---|
ServerVersion |
String |
String |
サーバーのアセンブリ バージョン文字列。 |
イベント マネージャー
次の表に、イベント マネージャーに使用できる、サーバー全体 (StreamInsight サーバー) の指標を示します。
属性 |
データ型 |
.NET Framework 型 |
説明 |
---|---|---|---|
AllEventsCount |
Number |
Int64 |
StreamInsight サーバーで保持されている (割り当てられている) イベントの数。 |
AllEventsMemory |
Number |
Int64 |
システムで有効な、すべてのイベントによって使用されるメモリ量。 |
クエリ マネージャー
次の表に、クエリ プラン マネージャーに使用できる、サーバー全体 (StreamInsight サーバー) の指標を示します。
属性 |
データ型 |
.NET Framework 型 |
説明 |
---|---|---|---|
AllQueriesCount |
Number |
Int64 |
StreamInsight サーバー全体の、実行されているクエリ、中止されたクエリ、または中断されたクエリの合計 (実行中のクエリと完了したクエリ)。完了したクエリとは、アダプターがクエリのシャットダウン要求に応答して Stopped() メソッドを呼び出したか、またはクエリが中止されたことを意味します。 |
AllQueriesStreamCount |
Number |
Int64 |
クエリ内の演算子の総数。 |
AllQueriesOperatorCount |
Number |
Int64 |
クエリ内のストリームの総数。 |
クエリ (サーバー全体)
サーバー全体 (StreamInsight サーバー) のクエリ診断の指標は、クエリ、演算子、およびストリームに対して集計された指標を示す 3 つの表を結合したものです。また、この診断ビューにはクエリ全体の待機時間の指標も示されます。ここでは、その有意性を強調するために 2 つの指標について説明します。
属性 |
データ型 |
.NET Framework 型 |
説明 |
---|---|---|---|
StreamEventCount |
Number |
Int64 |
すべてのクエリのすべての論理ストリームに含まれるイベントの総数。 これは、すべてのストリームでのイベントの累積数です。複数の異なるクエリからのストリームで、これらのイベントへの参照が保持されることがあります。そのため、複数のクエリを対象としてこの数値を合計すると、イベント総数に対して必要となるストリームのメモリが StreamInsight サーバーを実行しているコンピューターの物理容量を超えているように見える場合があります。 |
OperatorIndexEventCount |
Number |
Int64 |
すべての演算子での累積イベント数。 これは、すべての演算子でのイベントの累積数です。複数の異なるクエリからの演算子で、これらのイベントへの参照が保持されていることがあります。そのため、複数のクエリを対象としてこの数値を合計すると、イベント総数に対して必要となるメモリが StreamInsight サーバーを実行しているコンピューターの物理容量を超えているように見える場合があります。つまり、この数値は、複数のクエリではなく特定のクエリにローカライズされていると解釈することが重要です。 |
サーバーの回復性
属性 |
情報 型 |
.NET Framework 型 |
説明 |
---|---|---|---|
ServerLastRecoveryBeginTime |
N |
DateTime |
サーバーによって最後の回復プロセスが開始された時刻。 |
ServerLastRecoveryEndTime |
N |
DateTime |
サーバーによる最後の回復プロセスが完了した時刻。 |
ServerIsResilient |
N |
ブール値 |
サーバーで回復性が構成されている場合は True。回復性を持つように構成されていない場合は false。 |
[トップに戻る]
PowerShell を使用した診断へのアクセス
PowerShell を使用すると、管理に関する情報へのアクセスや、ホストされている実行中の StreamInsight インスタンスのメタデータの管理を行うことができます。次の例では Powershell 2.0 を使用しています。クエリを実行するために、これらは StreamInsight ホストで実行されているサンプル アプリケーション ObjectModel.cs を使用します。
グローバル アセンブリ キャッシュ (GAC) から Microsoft.ComplexEventProcessing DLL を読み込む例を次に示します。
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.ComplexEventProcessing")
以下に結果セットを示します。
GAC Version Location
------ ----------- -------------------------------------------------------------------------
True v2.0.50727 C:\Windows\assembly\GAC_MSIL\Microsoft.ComplexEventProcessing\10.0.0.0__89845dcd8080cc91\Micro...
実行中の StreamInsight インスタンスでアクセスできるメソッドおよびプロパティを返す例を次に示します。
PS C:\> $server = [Microsoft.ComplexEventProcessing.Server]::Connect("https://localhost/StreamInsight")
PS C:\> $server | gm
TypeName: Microsoft.ComplexEventProcessing.Server
以下に結果セットを示します。
Name MemberType Definition
------------------------------ ---------- ----------------
ClearDiagnosticSettings Method System.Void ClearDiagnosticSettings(System.Uri name)
CreateApplication Method Microsoft.ComplexEventProcessing.Application CreateApplication(string name)
CreateManagementService Method Microsoft.ComplexEventProcessing.ManagementService.IManagementService CreateManag...
Dispose Method System.Void Dispose()
Equals Method bool Equals(System.Object obj)
GetDiagnosticSettings Method Microsoft.ComplexEventProcessing.DiagnosticSettings GetDiagnosticSettings(System....
GetDiagnosticView Method Microsoft.ComplexEventProcessing.DiagnosticView GetDiagnosticView(System.Uri name)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
SetDiagnosticSettings Method System.Void SetDiagnosticSettings(System.Uri name, Microsoft.ComplexEventProcessi...
ToString Method string ToString()
Applications Property System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=2.0.0....
IsEmbedded Property System.Boolean IsEmbedded {get;}
イベント マネージャーに対応する、サーバー全体 (StreamInsight サーバー) を対象とした指標を返す例を次に示します。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/EventManager")
PS C:\> $dv
以下に結果セットを示します。
Key Value
------------------------------ -----
AllEventsCount 19
AllEventsMemory 249856
プラン マネージャーに対応する、サーバー全体 (StreamInsight サーバー) を対象とした指標を返す例を次に示します。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/PlanManager")
PS C:\> $dv
以下に結果セットを示します。
Key Value
----------------------- -----
AllQueriesCount 14
AllQueriesStreamCount 50
AllQueriesOperatorCount 38
クエリ TrafficSensorQuery のクエリ指標を返す例を次に示します。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")
PS C:\> $dv
以下に結果セットを示します。
Key Value
------------------------------------------ --------------
QueryState Suspended
QueryStartTime 9/22/2009 5:34:02 PM
QueryEndTime 9/22/2009 5:34:03 PM
StreamEventCount 0
OperatorCount 0
QueryTotalIncomingEventCount 553
QueryTotalConsumedEventCount 553
QueryTotalProducedEventCount 192
QueryTotalOutgoingEventCount 192
QueryLastIncomingEventSystemTime 9/22/2009 5:34:02 PM
QueryLastConsumedEventSystemTime 9/22/2009 5:34:02 PM
QueryLastProducedEventSystemTime 9/22/2009 5:34:03 PM
QueryLastOutgoingEventSystemTime 9/22/2009 5:34:03 PM
QueryTotalConsumedEventsLatency 14527.833
QueryTotalProducedEventsLatency 62457.0953
QueryTotalOutgoingEventsLatency 63553.2049
QueryLastProducedCTITimestamp 12/31/9999 11:59:59 PM
StreamMemoryIncludingEvents 0
OperatorIndexEventCount 0
OperatorEventMemory 0
OperatorIndexMemory 65870
OperatorTotalScheduledCount 708
OperatorTotalCpuUsage 670
[トップに戻る]