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 メソッドが呼び出されました。クエリは、ユーザーの操作なしで Running 状態になります。

  • 回復性のあるクエリが実行され、サーバーは障害から復旧中です。クエリの状態を変更するには、ユーザーは Start メソッドを呼び出す必要があります。

実行中

クエリはイベントを処理中です。

この状態は、通常、クエリの Start メソッドの呼び出しの後に発生します。

チェックポイント

クエリが実行中で、チェックポイントが進行中です。

この状態は、通常、BeginCheckpoint メソッドの呼び出しの後に発生します。

Stopping

ユーザーがクエリの停止を要求しました。

この状態は、通常、クエリの Stop メソッドの呼び出しの後に発生します。

中断状態

サーバーが回復性なしで起動されたため、回復性のあるクエリが復旧に失敗したか、復旧することができませんでした。

完了

クエリが正常に完了しました。つまり、入力アダプターがストリームの終端マーカーをキューに登録し、出力アダプターがそれらを使用しました。

中断

障害が発生しました。クエリは、プラン マネージャーで使用できます。

[トップに戻る]

クエリレベルの監視について

StreamInsight サーバーのクエリ パフォーマンスを監視する場合は、ManagementService API に用意されている、クエリレベルの監視属性を使用できます。次のイベント フロー図は、このような監視属性をどのように使用できるかを理解するのに役立ちます。

CEP クエリによるイベントの監視

この図からは、入力アダプターからクエリを介して出力アダプターに至るまでのイベントの経路 (左から右) を記録する 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

[トップに戻る]

関連項目

概念

操作 (StreamInsight)