監視 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 方法的呼叫之後存在。 |
檢查點檢查 |
查詢正在執行且檢查點正在進行中。 此狀態通常在對 BeginCheckpoint 方法的呼叫之後存在。 |
正在停止 |
使用者以應要求查詢停止。 此狀態通常在對查詢之 Stop 方法的呼叫之後存在。 |
已暫停 |
具有恢復功能的查詢復原失敗,或者因為在沒有恢復的情況下啟動伺服器而無法復原。 |
已完成 |
查詢已使用正常的方式完成。亦即,輸入配接器已將資料流結尾標記加入佇列,且輸出配接器已取用這些標記。 |
已中止 |
發生故障。查詢仍然可以在計畫管理員中使用。 |
[回到頂端]
了解查詢層級監視
當您在 StreamInsight 伺服器中監視查詢效能時,可以使用 ManagementService API 所提供的查詢層級監視屬性。請使用下列事件流程圖來協助您了解如何使用這些監視屬性。
根據上圖,設想有四個測量點,這些測量點會記錄事件 (由左至右) 透過查詢從輸入配接器傳遞至輸出配接器的過程。根據這些測量點,可以衍生出下列度量資訊:
內送 - 記錄所有輸入配接器之間的內送事件。這是從輸入配接器進入查詢之原始輸入事件抵達率的量值。
取用 - 記錄 StreamInsight 伺服器所取用的事件 (也就是緊接在輸入配接器後面的所有運算子之間)。這是加入伺服器佇列之事件的量值。
產生 - 記錄離開輸出配接器前面之最後一個運算子的所有事件。這是從查詢佇列中清除之事件的量值。
傳出 - 記錄離開輸出配接器的所有事件。這是從 StreamInsight 伺服器進入接收之事件離開率的量值。
您可以使用上圖當做指南,並根據您感興趣的事件流程區域,判斷要傳回的正確屬性。例如,如果您對於查詢所取用的事件數目感興趣,請使用 QueryTotalConsumedEventCount 屬性。或者,如果您對於查詢所產生的事件感興趣,請使用 QueryTotalProducedEventCount 屬性。
[回到頂端]
查詢延遲的監視
延遲是在特定閘道 (內送、產生、取用或傳出) 中所有事件抵達和離開之間計算的累計數字。您可以將在任兩個時間點所進行之測量之間的平均延遲計算成 (S2 – S1) / (C2 – C1),其中 S 是位於任何給定閘道的累計延遲總和,而 C 是位於該閘道點的事件計數。
例如,若要計算平均取用延遲,請測量位於時間戳記 t1 (S1) 的累計取用延遲 (QueryTotalConsumedEventLatency) 以及位於時間戳記 t1 (C1) 的取用事件總數 (QueryTotalConsumedEventCount)。接著,您可以在不同的時間戳記 (t2) 重複相同的測量,然後將平均取用事件延遲計算成 (S2 – S1)/ (C2 – C1)。
您可以使用 QueryTotalIncomingEventCount 到 QueryLastProducedCtiTimestamp 的屬性來判斷將事件傳入或傳出查詢之配接器的效率,以及 StreamInsight 伺服器可處理這些事件的速率。
您可以透過加總 OperatorEventMemory 和 OperatorIndexMemory 屬性的值,判斷運算子所取用的記憶體總數。
[回到頂端]
診斷屬性
診斷檢視會傳回數種物件細微程度的屬性:伺服器、查詢、發行的資料流、運算子和配接器。
診斷的設計方式可以將階層中粒度比較精細的物件以及粒度比較粗的物件彙總起來。針對其中每個層級,您可以取得下列診斷資訊種類:
靜態資訊 (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
[回到頂端]