簡體   English   中英

自定義時間段內的效果計數器

[英]Performance counters over custom period of time

我需要能夠在特定的自定義時間段內收集一些性能計數器。 我對ServiceModelService的一些性能計數器特別感興趣:“調用”和“失敗的調用”,盡管該問題適用於我相信的任何一個。

WCF開箱即用地提供自服務啟動以來的總數的“呼叫”和“每秒呼叫”; “失敗的呼叫”,“每秒失敗的呼叫”相同。 我需要的是能夠在自定義時間段內創建此名稱,例如“每分鍾通話數”或“每小時通話數”。

我還沒有發現任何開箱即用的方法。 我想我可以創建自己的性能計數器收集器,該收集器將每X的時間進行一次計算; 我的應用程序在Azure雲服務中運行,因此我認為可以在啟動任務中安裝的單獨exe中執行此操作,也可以在啟動Web角色時在單獨的線程中完成此操作。

我在自己的特定問題中表達了該問題,但我認為該問題適用於任何情況:如何在特定的自定義時間段內捕獲性能計數器。

任何幫助將不勝感激! 謝謝!

事實證明,“每秒呼叫數”和“每秒失敗呼叫數”性能計數器名稱有點誤導...它們的默認采樣率是1s,但是它們能夠以您需要的任何采樣間隔率工作。 例如,如果您想知道五秒鍾內發生的呼叫數量,可以編寫如下代碼:

// load performance counter
var numOfCalls = new PerformanceCounter(...);

// read initial value for the period
numOfCalls.NextValue();

// wait desired period
Thread.Sleep(5000);

// read final value, the counter will internally calculate it based on the two samples
numOfCalls.NextValue();

如果您使用的是perfmon,則可以更改采樣率。 如果您使用的是代碼,則可以通過間隔NextValue調用自己設置采樣率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM