監視 StreamInsight 伺服器和查詢

監視 StreamInsight 伺服器的狀態包括追蹤系統和查詢效能的整體健全狀況。StreamInsight 伺服器狀態的擷取方式,是透過監視在伺服器上執行的 StreamInsight 查詢以及監視撰寫 StreamInsight 查詢的實體如何使用系統資源。

本主題內容

  • 建立診斷檢視

  • 我可以使用診斷檢視疑難排解什麼問題?

  • 查詢狀態

  • 了解查詢層級監視

  • 查詢延遲的監視

  • 診斷屬性的清單

    • 運算子診斷

    • 配接器診斷

    • 資料流診斷

    • 查詢診斷

    • 發行的資料流診斷

    • 伺服器診斷

  • 使用 PowerShell 存取診斷

建立診斷檢視

您可以使用診斷檢視 API 來取得監視資訊。使用這個 API 有一個先決條件,就是您必須同時在內嵌和獨立模式的伺服器部署上啟用管理 Web 服務,而且您的用戶端應用程式必須透過此 Web 服務連接到伺服器。如需詳細資訊,請參閱<發行及連接到 StreamInsight 伺服器>。

另外,您也可以使用 StreamInsight 事件流程偵錯工具中的診斷功能來監視伺服器和查詢,這個工具會使用診斷 API 在 GUI 介面中傳回結果。您應該將此偵錯工具連接到即時 StreamInsight 伺服器,並使用 [物件總管] 來檢視伺服器中的各種物件。以滑鼠右鍵按一下任何物件,取得該實體的執行階段診斷。如需詳細資訊,請參閱<使用 StreamInsight 事件流程偵錯工具>。

伺服器中的所有物件都是使用以階層式命名結構描述為根據的統一資源識別碼 (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 及該設定特有的其他屬性) 和層級 (關鍵性的層級)。您可以使用 SetDiagnosticsSettings() 和 ClearDiagnosticSettings() 方法來設定這些篩選條件,以設定或清除指定之查詢的特有設定。下列範例取自 'ExplicitServer.cs' 範例,而且會輸出各種不同物件當中的診斷來執行查詢。此範例假設有一個已註冊的 StreamInsight 執行個體名為 "MyInstance"。

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 方法的呼叫之後存在。

正在停止

使用者以應要求查詢停止。

此狀態通常在對查詢之 Stop 方法的呼叫之後存在。

已暫停

具有恢復功能的查詢復原失敗,或者因為在沒有恢復的情況下啟動伺服器而無法復原。

已完成

查詢已使用正常的方式完成。亦即,輸入配接器已將資料流結尾標記加入佇列,且輸出配接器已取用這些標記。

已中止

發生故障。查詢仍然可以在計畫管理員中使用。

[回到頂端]

了解查詢層級監視

當您在 StreamInsight 伺服器中監視查詢效能時,可以使用 ManagementService API 所提供的查詢層級監視屬性。請使用下列事件流程圖來協助您了解如何使用這些監視屬性。

透過 CEP 查詢監視事件。

根據上圖,設想有四個測量點,這些測量點會記錄事件 (由左至右) 透過查詢從輸入配接器傳遞至輸出配接器的過程。根據這些測量點,可以衍生出下列度量資訊:

  • 內送 - 記錄所有輸入配接器之間的內送事件。這是從輸入配接器進入查詢之原始輸入事件抵達率的量值。

  • 取用 - 記錄 StreamInsight 伺服器所取用的事件 (也就是緊接在輸入配接器後面的所有運算子之間)。這是加入伺服器佇列之事件的量值。

  • 產生 - 記錄離開輸出配接器前面之最後一個運算子的所有事件。這是從查詢佇列中清除之事件的量值。

  • 傳出 - 記錄離開輸出配接器的所有事件。這是從 StreamInsight 伺服器進入接收之事件離開率的量值。

您可以使用上圖當做指南,並根據您感興趣的事件流程區域,判斷要傳回的正確屬性。例如,如果您對於查詢所取用的事件數目感興趣,請使用 QueryTotalConsumedEventCount 屬性。或者,如果您對於查詢所產生的事件感興趣,請使用 QueryTotalProducedEventCount 屬性。

[回到頂端]

查詢延遲的監視

延遲是在特定閘道 (內送、產生、取用或傳出) 中所有事件抵達和離開之間計算的累計數字。您可以將在任兩個時間點所進行之測量之間的平均延遲計算成 (S2 – S1) / (C2 – C1),其中 S 是位於任何給定閘道的累計延遲總和,而 C 是位於該閘道點的事件計數。

例如,若要計算平均取用延遲,請測量位於時間戳記 t1 (S1) 的累計取用延遲 (QueryTotalConsumedEventLatency) 以及位於時間戳記 t1 (C1) 的取用事件總數 (QueryTotalConsumedEventCount)。接著,您可以在不同的時間戳記 (t2) 重複相同的測量,然後將平均取用事件延遲計算成 (S2 – S1)/ (C2 – C1)。

您可以使用 QueryTotalIncomingEventCountQueryLastProducedCtiTimestamp 的屬性來判斷將事件傳入或傳出查詢之配接器的效率,以及 StreamInsight 伺服器可處理這些事件的速率。

您可以透過加總 OperatorEventMemoryOperatorIndexMemory 屬性的值,判斷運算子所取用的記憶體總數。

[回到頂端]

診斷屬性

診斷檢視會傳回數種物件細微程度的屬性:伺服器、查詢、發行的資料流、運算子和配接器。

診斷的設計方式可以將階層中粒度比較精細的物件以及粒度比較粗的物件彙總起來。針對其中每個層級,您可以取得下列診斷資訊種類:

  • 靜態資訊 (S) 會傳回物件的屬性。靜態資訊不會隨著查詢作業的狀態變化而變更。

  • 非彙總資訊 (N) 會將非彙總的統計資料從子物件傳回給其父物件。

  • 彙總資訊 (A) 會將彙總的統計資料從子物件傳回給其父物件。

請注意,底下所列的所有診斷檢視屬性都可以在 DiagnosticViewProperty 中使用。

運算子診斷

中繼資料

下表列出在查詢中描述個別運算子的中繼資料屬性。這些屬性的值不會變更。

屬性名稱

類型

描述

OperatorId

Int64

運算子的識別碼。

OperatorKind

String

運算子的類型。

OperatorQueryId

Int64

目前運算子所在之查詢的識別碼。

OperatorEventType

String

運算子之輸出類型的 XML 表示法。若為 G&A,它就是群組欄位的類型,而非輸出。

非彙總的統計資料

下表列出的統計資料是跨運算子的所有邏輯執行個體彙總而來,但不是彙總到查詢統計資料。

屬性名稱

類型

描述

OperatorTotalInputEventCount

Int64

運算子的輸入事件總數。

OperatorMinInputEventCountAcrossWorkers

Int64

在運算子所有工作者之間處理的輸入事件數目下限。

OperatorMaxInputEventCountAcrossWorkers

Int64

在運算子所有工作者之間處理的輸入事件數目上限。

OperatorTotalOutputEventCount

Int64

運算子的輸出事件總數。

OperatorMinOutputEventCountAcrossWorkers

Int64

在運算子所有工作者之間產生的輸出事件數目下限。

OperatorMaxOutputEventCountAcrossWorkers

Int64

在運算子所有工作者之間產生的輸出事件數目上限。

OperatorLastOutputCtiTimestamp

DateTime

運算子產生之最後一個 CTI 的時間戳記 (應用程式時間)。

OperatorTotalOutputCtiCount

Int64

運算子產生的 CTI 事件總數。

OperatorMinOutputCtiCountAcrossWorkers

Int64

在運算子所有工作者之間產生的 CTI 事件數目下限。

OperatorMaxOutputCtiCountAcrossWorkers

Int64

在運算子所有工作者之間產生的 CTI 事件數目上限。

OperatorEventCountSinceLastCti

Int64

運算子自運算子所有工作者之最後一個 CTI 以來產生的彙總事件數目。

若是 Cleanse 運算子,此值通常為 0 (零)。

OperatorMinIndexEventCountAcrossWorkers

Int64

在運算子工作者間之索引中的事件數目下限。

OperatorMaxIndexEventCountAcrossWorkers

Int64

在運算子工作者間之索引中的事件數目上限。

OperatorMinEventMemoryAcrossWorkers

Int64

在運算子所有工作者間索引之事件所使用的記憶體數量下限 (位元組)。

OperatorMaxEventMemoryAcrossWorkers

Int64

在運算子所有工作者間索引之事件所使用的記憶體數量上限 (位元組)。

OperatorMinIndexMemoryAcrossWorkers

Int64

在運算子所有工作者間之索引所使用的記憶體數量下限 (位元組)。

OperatorMaxIndexMemoryAcrossWorkers

Int64

在運算子所有工作者間之索引所使用的記憶體數量上限 (位元組)。

OperatorNumberOfWorkers

Int32

正在執行運算子的運算單元數目。

OperatorGroupIdField

String

Group And Apply 運算子之群組識別碼欄位的名稱。

OperatorMinCpuUsageAcrossWorkers

Int64

運算子工作者間的 CPU 使用量下限 (毫秒)。

OperatorMaxCpuUsageAcrossWorkers

Int64

運算子工作者間的 CPU 使用量上限 (毫秒)。

OperatorMinEventAdjustedCount

Int64

在運算子工作者之間調整的事件數目下限。

OperatorMaxEventAdjustedCount

Int64

在運算子工作者之間調整的事件數目上限。

OperatorTotalEventAdjustedCount

Int64

在運算子工作者之間調整的事件總數。

OperatorMinEventDroppedCount

Int64

在運算子工作者中卸除的事件數目下限。

OperatorMaxEventDroppedCount

Int64

在運算子工作者中卸除的事件數目上限。

OperatorTotalEventDroppedCount

Int64

在運算子工作者之間卸除的事件總數。

彙總的統計資料

下表列出的統計資料是跨運算子的所有邏輯執行個體彙總而來,而且會彙總到查詢統計資料。

屬性名稱

類型

描述

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

處於執行中狀態的配接器執行個體數目。

AdapterNumberOfStoppedWorkers

Int32

處於已停止狀態的配接器執行個體數目。

AdapterNumberOfSuspendedWorkers

Int32

處於已暫停狀態的配接器執行個體數目。

配接器恢復功能

屬性

資訊

類型

.NET Framework 類型

描述

InputAdapterLastCheckpointHighWaterMark

N

DateTime

此資料流上一次檢查點所使用的應用程式時間上限標準。這可唯一識別輸入資料流中的點,並且資料流應在復原期間於此點之後重新執行所有事件。

OutputAdapterLastCheckpointEventOffset

N

Int32

自指定輸出資料流中上一次執行檢查點位置之應用程式時間上限標準以來所發生的事件數目。

OutputAdapterLastCheckpointHighWaterMark

N

DateTime

查詢所執行之上一次檢查點的輸出資料流應用程式時間上限標準。

[回到頂端]

資料流診斷

中繼資料

下表列出在查詢中描述個別資料流的中繼資料屬性。這些屬性的值不會變更。

屬性名稱

類型

描述

StreamId

Int64

資料流的識別碼。

StreamQueryId

Int64

資料流之查詢的識別碼。

StreamSourceOperatorId

Int64

資料流之來源運算子的識別碼。

StreamTargetOperatorId

Int64

資料流之目標運算子的識別碼。

StreamSystemInstance

布林

指出資料流是否為系統資料流的布林值。

非彙總的統計資料

下表列出的統計資料是跨資料流的所有邏輯執行個體彙總而來,但不是彙總到查詢統計資料。

屬性名稱

類型

描述

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

查詢的識別碼。

QuerySystemInstance

布林

指出查詢是否為系統查詢的布林值。

QueryInstanceGroupId

Int64

查詢的執行個體群組識別碼。

統計資料

下表列出查詢專屬的統計資料。

屬性名稱

類型

描述

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

已發行之資料流的識別碼。

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

Number

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 伺服器) 查詢診斷度量資訊為三個資料表的聯集,這些資料表會顯示查詢、運算子和資料流的彙總度量資訊。此外,這個診斷檢視也會提供整個查詢的延遲度量資訊。這裡說明其中兩個度量資訊來強調其重要性。

屬性

資料類型

.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)