2009-01-13 47 views
4

我有一個Windows服務,跨多個線程運行框架的實現。每個正在運行的實例都有幾個共同的東西,我需要跟蹤它們,例如,處理的項目數量,上次處理項目的時間等。在此基礎監視數據之上,我希望提供框架允許實現動態添加自己的監控數據。要PerformanceCounter或編寫自定義監視?

我之前和PerformanceCounters一起工作過,儘管他們提供了不錯的功能,但我發現創建和維護它們的代碼非常繁瑣,並且還加載了與實例相關的陷阱的可能性(即, - 編碼計數器實例名稱,類別名稱和計數器類型)。另外,我不確定是否可以在不寫大量代碼的情況下提供簡單的基本功能動態計數器創建。

有沒有人用PerformanceCounters實現過類似的東西?如果是這樣,你會推薦它嗎?如果沒有,有沒有人有一個媒體的建議,我可以輕鬆寫出性能/健康監測數據,而不會引入1)大量放緩和2)另一個失敗點?

謝謝,如果有必要,我很樂意補充說明,因爲我知道這有點含糊不清。

結論:

我最終實現性能計數器。這是一個PITA(赫),但我的老闆真的想到這個想法,現在我已經知道了,它並沒有那麼糟糕。我希望能夠通過更簡單的方式呈現分層數據,從而更輕鬆地配置。但是,這工作正常,並且很難與內置接口爭論。

回答

1

一致認爲,將代碼利用到性能計數器可能需要一點時間。但是,上次我做到這一點時,我把它全部包裝在一個很好的可重用類中。它使我更容易在整個代碼庫中使用性能計數器,而且摩擦力最小。

考慮到在perf計數器上存在的工具(perfmon是一個很大的恩賜),最終的結果對我來說是非常值得的。

+2

多少錢你重用類?我很懶! j/k ;-) – 2009-01-13 19:00:05