監視 StreamInsight 效能計數器和事件
您現在可以使用現有的診斷基礎結構搭配效能監視器和事件檢視器,監視及疑難排解 StreamInsight 處理與查詢。
本主題內容
效能計數器
設定效能計數器
效能計數器清單
效能計數器可以如何協助我?
管理事件
設定管理記錄
管理事件清單
效能計數器
StreamInsight 會安裝並設定效能計數器。您可以使用效能監視器或其他監視工具來監視這些計數器。
效能計數器可用於下列 StreamInsight 物件:
伺服器
查詢
輸入配接器
恢復功能
設定效能計數器
當您安裝 StreamInsight 時,會一併安裝並設定效能計數器。此安裝選項無法設定。
伺服器類別目錄中的計數器預設為開啟狀態,而且無法關閉。查詢和輸入配接器類別目錄中的計數器預設則為關閉。當您開啟查詢的計數器時,也會開啟相關聯之輸入配接器的計數器。當您重新啟動 StreamInsight 的執行個體時,系統會還原這些預設行為。
如何開啟單一查詢的計數器
您可以透過在對 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 指的是物件在執行階段的識別碼。
伺服器計數器
伺服器執行個體的命名慣例:%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 |
每秒產生的事件數目。 |
輸入配接器計數器
配接器執行個體的命名慣例:%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 |
配接器每秒所接收的事件數目。 |
Resumes/sec |
每秒轉換成執行中狀態的狀態轉換數目。 |
Suspensions/sec |
每秒轉換成已暫停狀態的狀態轉換數目。 |
Total events enqueued |
加入佇列的事件數目。 |
[回到頂端]
效能計數器可以如何協助我?
以下是幾個狀況範例,在這些狀況下,效能計數器可以協助您了解、監視以及疑難排解 StreamInsight 應用程式:
伺服器狀況
記憶體使用量:除了主機應用程式之外,有多少內嵌的 StreamInsight 執行個體?
容量計畫:在效能降低之前,我可以在這部伺服器上執行多少查詢?
事後檢討分析:伺服器當機時,有多少查詢正在執行中?
查詢狀況
輸送量監視:瓶頸在哪裡?
延遲監視。
[回到頂端]
管理事件
StreamInsight 會將事件記錄到 Windwos 應用程式事件記錄檔。您可以使用事件檢視器或其他監視工具檢閱這個記錄檔。記錄的事件可以協助您監視狀態變更,並疑難排解 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。
查詢事件
符號 |
事件識別碼 |
層級 |
訊息 |
參數 |
---|---|---|---|---|
QueryInitializing |
11001 |
資訊 |
查詢 {0} 正在初始化。 |
查詢 URI |
QueryRunning |
11002 |
資訊 |
查詢 {0} 正在執行。 |
查詢 URI |
QueryCheckpointing |
11003 |
資訊 |
查詢 [0} 正在進行檢查點檢查。 |
查詢 URI |
QueryStopping |
11004 |
資訊 |
查詢 {0} 正在停止。 |
查詢 URI |
QuerySuspended |
11005 |
資訊 |
查詢 {0} 已暫停。 |
查詢 URI |
QueryCompleted |
11006 |
資訊 |
查詢 {0} 已完成。 |
查詢 URI |
QueryAborted |
11007 |
警告 |
查詢 {0} 已中止。 |
查詢 URI |
QueryStopped |
11008 |
資訊 |
查詢 {0} 已停止。 |
查詢 URI |
QueryError |
11500 |
警告 |
查詢 {0} 發生例外狀況。例外狀況詳細資料: {1} |
查詢 URI、例外狀況訊息。 |
QueryRecoveryError |
11501 |
錯誤 |
查詢 {0} 在復原期間發生例外狀況。例外狀況詳細資料: {1} |
查詢 URI、例外狀況訊息。 |
QueryCheckpointError |
11502 |
錯誤 |
查詢 {0} 在檢查點檢查期間發生例外狀況。例外狀況詳細資料: {1} |
查詢 URI、例外狀況訊息。 |
伺服器事件
符號 |
事件識別碼 |
層級 |
訊息 |
參數 |
---|---|---|---|---|
ServerCreated |
1000 |
資訊 |
伺服器已建立。 |
|
ServerDisposed |
1001 |
資訊 |
伺服器已處置。 |
[回到頂端]