2013-05-06 85 views
0

我正在使用Python的模擬引擎工作,我在這裏收集了大量指標。模擬運行速度很快,每秒產生大約100K個事件(我可以通過每秒整合這些事件來做一些處理)。我正在尋找一種機制將這些指標記錄爲時間序列。用於在Python應用程序中處理時間序列數據的RRD庫

我的要求是:

  1. 我想在同一個進程這個日誌機制 的,而不是外部進程如石墨

  2. 機制必須能夠模擬處理100K事件/秒而不會減慢模擬。我想存儲的數據如下:每個度量標準相關數據應該以1秒粒度存儲60分鐘,1分鐘粒度爲1天,5分鐘粒度爲2天,1小時粒度爲6個月和1天的粒度爲3年的持續時間。我希望這個機制按照指定的範圍來處理數據的合併。

  3. 理想情況下,我想維護一個文件,其中包含一次模擬運行的度量信息。對於另一個仿真運行,必須創建單獨的文件。

  4. 這將是很好有一個良好測試的庫/模塊是現成的:)

BTW,我參加了一個粗略地看一下RRDTool的,但是從我的理解,似乎像python庫是RRDTool二進制文件的薄包裝器。如果可能,我正在尋求更緊密的集成。

TIA

+0

你有沒有嘗試過的代碼或以前看過的東西,你可以告訴我們? – 2013-05-06 22:07:47

+0

我以前使用過http://graphite.wikidot.com/。但正如我在我的問題文字中提到的那樣,這是我模擬的外部過程,我寧願不這樣做。現在我正在閱讀RRDTool的文檔 - http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html。目前我還沒有爲此編寫任何代碼,因爲我仍在確定要走哪條路。 – 2013-05-06 22:10:15

+0

http://oss.oetiker.ch/rrdtool/prog/rrdpython.en.html似乎是一個前瞻性的解決方案。任何有經驗的人都可以使用這個評論來評論我的用例是否合適? – 2013-05-06 22:17:18

回答

2

RRDTool提供的功能符合我的要求。最初我找到了一個Python庫https://pypi.python.org/pypi/python-rrdtool/,並誤解了集成的本質。我認爲它是作爲一個單獨的進程執行RRDTool的二進制文件,但文檔說這是一個適當的Python可訪問包裝器,它調用相同進程空間中的功能。

後來我發現了這個(https://pypi.python.org/pypi/PyRRD)Python庫,它將RRDTool功能封裝在我覺得很舒服的更時髦的OOPS類型中。鏈接頁面上的文檔很好,所以我在使用它時沒有遇到任何障礙。

此鏈接(http://www.vandenbogaerdt.nl/rrdtool/tutorial/rrdcreate.php)有助於確定如何在創建期間配置RRD數據庫。

+0

由於我沒有收到任何其他答案,我將自己的答案標記爲已接受的答案。 – 2013-05-10 21:01:27

相關問題