我正在使用Python开发一个模拟引擎,在那里我收集了很多度量。模拟运行速度很快,每秒生成大约100K个事件(我可以通过将这些事件合并到每秒的基础上来进行一些处理)。我正在寻找一种机制来记录这些指标作为一个时间序列。在
我的要求是:
我希望这个日志记录机制在同一个进程中 与石墨等外部过程相反的模拟
该机制必须能够在不减慢模拟速度的情况下处理每秒100K个事件。
我希望存储的数据如下:每个与指标相关的数据应以1秒粒度存储60分钟,1分钟粒度用于1天,5分钟粒度用于两天,1小时粒度用于6个月,1天粒度用于3年时间。我希望这个机制按照指定的范围来处理数据的合并。
理想情况下,我希望维护一个文件,该文件保存一次模拟运行的度量信息。对于另一个模拟运行,必须创建一个单独的文件。
最好有一个经过良好测试的库/模块,随时可用:)
顺便说一句,我粗略地看了一下RRDTool,但据我所知,Python库似乎是RRDTool二进制文件的一个很薄的包装器。如果可能的话,我正在寻找一个更紧密的整合。在
TIA公司
RRDTool提供的功能符合我的需求。最初我发现了一个Python库https://pypi.python.org/pypi/python-rrdtool/,并误解了集成的本质。我以为它是作为一个单独的进程来执行RRDTool的二进制文件,但是文档说这是一个正确的Python可访问包装器,它在同一个进程空间中调用该功能。在
后来我发现了这个(https://pypi.python.org/pypi/PyRRD)Python库,它以一种更Python oop的方式包装RRDTool功能,这种方式让我觉得很舒服。链接页面上提供的文档很好,所以我在使用它时没有遇到任何障碍。在
这个链接(http://www.vandenbogaerdt.nl/rrdtool/tutorial/rrdcreate.php)有助于了解如何在创建期间配置RRD数据库。在
相关问题 更多 >
编程相关推荐