2010-10-10 57 views
2

我的應用程序之一是執行一些複雜計算的引擎。這些計算可能需要幾個小時。我想知道這個引擎的活動時間。獲取我的引擎活動的統計信息

如果您使用H udson CI server,則Administration > Usages statistics選件中有這樣的功能。這裏有一個例子:

alt text

在我的申請,我已經有一個返回值計算次數的函數。因此,我的想法是定期調用此方法,例如每10分鐘(使用Quartz)以檢索運行計算的數量並將其存儲在int[]中。這個int[]每天都存儲在一個外部文件中,並進行清理。所以,過了些日子,這個文件的內容將是這樣的:

data.20101008=1;2;1;0;1;1;0;0;0;0;....;0 
data.20101009=1;0;1;1;0;0;0;0;3;2;....;0 
data.20101010=1;2;1;0;1;1;2;3;4;4;....;2 
... 

(我簡化了一點這種處理,因爲我想更頻繁地更新這個文件,在發動機停機,或者類似的東西的情況下)總之,我的想法是在properties文件中存儲特定日期的運行計算的數量。最終,我可以提供一個返回此數據的函數,作爲Map<Date, int[]>

最後,我將使用JFreeChart在圖形

來顯示這些數據你覺得這個主意怎麼樣?任何建議,以加強這一進程?

請注意,此功能是一個很高興有功能,所以我不想構建過於複雜的系統。

我使用Java 6

回答

1

而不是一個性質的文件,並JFreeChart的,也許可以考慮使用RRDTool Java實現像RRD4J。來自RRDTool網站:

RRDtool是開源行業標準,高性能的時間序列數據記錄和圖形系統。

2

對於由操作員進行簡單的臨時監控,您可以簡單地使用JMX。通過JConsole(隨JDK一起提供),您可以連接到正在運行的java進程,並且它可以完成CPU和內存使用情況,活動線程數量以及更多更好的圖形。使用MBeans,您可以通過JMX公開當前值,並使用JConsole來繪製它們(當然,當它連接時)。