我正在使用Python的模拟引擎,我收集了很多指标。模拟以高速运行并产生大约100K事件/秒(我可以通过每秒合并这些事件来进行一些处理)。我正在寻找一种机制来将这些指标记录为时间序列。
我的要求是:
我想在同一个过程中使用此日志记录机制 作为模拟,而不是像Graphite
该机制必须能够在不减慢模拟速度的情况下处理100K事件/秒。
我想将数据存储如下:每个指标相关数据应以1秒粒度存储60分钟,1分钟粒度1天,5分钟粒度2天,1小时粒度6个月和1天的粒度,持续3年。我希望这种机制能够按照指定的范围处理数据合并。
理想情况下,我想维护一个文件,其中包含一次模拟运行的指标信息。对于另一次模拟运行,必须创建一个单独的文件。
如果有一个经过充分测试的库/模块可以随时使用,那就太好了。)
TIA
答案 0 :(得分:2)
RRDTool提供的功能符合我的要求。最初我发现了一个Python库https://pypi.python.org/pypi/python-rrdtool/并且误解了集成的本质。我认为它正在执行RRDTool的二进制文件作为一个单独的进程,但文档说这是一个适当的Python可访问包装器,它调用同一进程空间中的功能。
后来我找到了这个(https://pypi.python.org/pypi/PyRRD)Python库,它以更加pythonic的OOPS方式包装了RRDTool功能,我觉得这很方便。链接页面上提供的文档很好,所以我在使用它时没有遇到任何障碍。
此链接(http://www.vandenbogaerdt.nl/rrdtool/tutorial/rrdcreate.php)有助于确定如何在创建期间配置RRD数据库。