我有一個應用程序,每次寫入日誌時都會寫出日誌。日期和時間信息是指該功能的結束時間。通過使用執行時間,我們計算請求開始的時間。生成線程利用摘要
以下是日誌目前的樣子:
year | month | day | hour | minute | seconds | Thread | UserName | ExecTime
2014 | 3 | 26 | 8 | 57 | 300 | 1 | file_download | 33.86
2014 | 3 | 26 | 8 | 57 | 45 | 1 | file_upload | 0.359
2014 | 3 | 26 | 8 | 57 | 55 | 1 | folder_browse | 0.234
2014 | 3 | 26 | 8 | 58 | 11 | 1 | sending_email | 0.14
2014 | 3 | 26 | 8 | 58 | 20 | 1 | browsing_favorites | 0.985
2014 | 3 | 26 | 8 | 58 | 29 | 1 | file_download | 0.266
2014 | 3 | 26 | 8 | 58 | 33 | 1 | file_upload | 0.296
2014 | 3 | 26 | 8 | 58 | 37 | 1 | file_zip | 0.25
2014 | 3 | 26 | 8 | 58 | 41 | 1 | view_properties | 0.0
2014 | 3 | 26 | 8 | 58 | 46 | 1 | file_download | 0.187
說明目的
作爲一個請求可能跨越幾個幾分鐘甚至幾小時就變得難以計算在每個線程的利用率一分鐘一分鐘。下面的輸出說明我後輸出:
Thread | month | day | hour | minute | % Busy
1 | 3 | 26 | 8 | 57 | 0.5
2 | 3 | 26 | 8 | 57 | 0.1
3 | 3 | 26 | 8 | 57 | 0.9
說明目的
例如,如果請求開始在12時三十分30秒執行,並在十二時三十二分30秒結束上表看起來像:
Thread | month | day | hour | minute | % Busy
1 | 3 | 26 | 12 | 29 | 0
1 | 3 | 26 | 12 | 30 | 0.5
1 | 3 | 26 | 12 | 31 | 1
1 | 3 | 26 | 12 | 32 | 0.5
1 | 3 | 26 | 12 | 33 | 0
說明目的
輸出中的分鐘數將是可以在日誌中找到的第一個請求和最後一個請求之間的分鐘數。
UPDATE
下面是從@TessellatingHeckler請求所採取的澄清摘要:用於開始/結束部分分鐘計算的利用率分數
- 計算開始時間
- 。
- 在100%忙碌時計數分鐘數
- 在每分鐘內添加多個請求/開始結束重疊。
- 填寫缺少分鐘爲0%繁忙。
- 出示每個線程的列表,從第一項到最後一項的計算的開始,顯示到分鐘和%繁忙的日期時間
我知道這很難,但我只需要一個方法,將翻譯以及代碼。我很高興使用Perl,PowerShell或Java。
謝謝
我沒有得到你想要的。您的示例輸出顯示線程1,在8:57,0.5%繁忙。然而,輸入顯示它在8:57:32有ExecTime 33秒。爲什麼不是那一分鐘〜50%忙?或者在輸入範圍內的兩分鐘內有25%的忙?從8:57:32,33秒ExecTime通過一分鐘的邊界(從前一分鐘或下一分鐘)進行分析,你如何解釋這一點?然而,如果你想要的是每分鐘繁忙的百分比,那麼你所做的只是拋開秒數,計算時間/ 60,這不是一個統計計算的很大一部分。 – TessellatingHeckler
@TessellatingHeckler對不起,該代碼僅用於說明目的,數學上不正確。我應該指出的。我會在我的問題中糾正這一點。 – Bruno
是我的理解權嗎?請求結束後,寫入日誌條目(結束時間,線程編號,持續時間)。您需要:1)計算開始時間,2)開始/結束部分分鐘,計算繁忙分數。 3)在100%忙碌時計數分鐘數,4)在每分鐘內添加多個請求/開始結束重疊。 5)填寫缺少的分鐘爲0%繁忙。 5)從計算出的第一個條目開始到最後一個條目,顯示每個線程的列表,顯示日期時間到分鐘和繁忙百分比。 – TessellatingHeckler