2014-02-13 10 views
0

我正忙於爲我們公司編寫一個程序來監視我們的一些系統的性能。如何存儲性能記錄以進行時間縮放報告

所以基本上每一分鐘我都會收到當前狀態的值。我將把它們存儲在一個數據庫中。這一切都很好。

但是現在我需要能夠在時間範圍內生成其性能報告(圖表)。那是小時,一天,一週,一個月。

現在,我可以用時間戳查詢它。但是在生成年度報告時,我真的不需要一分鐘的精確度,然後我需要每臺機器每年存儲60 * 24 * 568個記錄。

我想要一些如何存儲所有的值,然後總結它們來減少需要存儲的數據量。所以當我生成年度報告時,它會每兩天查看一次。而不是每一分鐘和一個月的相同,它可以每天或每半小時查看一次。

現在我的問題其實是。如何將其存儲在數據庫中?

我應該爲每個版本的彙總表,以便分鐘=>小時=>天=>周等

還是我保持一個大表中的所有條目,只是使用SQL sumarise它等

我從來沒有做過這樣的事情,我真的不知道從哪裏開始思考。這聽起來很像數據倉庫,但請注意,這不是一個巨大的規模。它將通過Web界面監控5-10個服務。我記得的想法其實是從Mikrotik Rotuers那裏得到的。我懷疑許多oyu會與他們合作。但他們有一個很好的資源圖形系統,它很簡單,但顯示它所需要的。

這樣的: Picture of graphs

回答

0

我覺得你可以保持原有的表分鐘的糧食。因爲將來你的需求可能會改變。就像2天到1天甚至6小時一次。要有效管理此表,請考慮對錶進行分區。創建一個具有彙總數據的另一個表。編寫一個sql來插入原始表中的聚合表。所以基本上你在這裏進行提取,轉換和加載(ETL)。希望能幫助到你。

相關問題