我正在使用 Python 开发一个模拟引擎,我收集了很多指标。模拟以高速运行并生成大约 100K 事件/秒(我可以通过每秒合并这些事件来进行一些处理)。我正在寻找一种将这些指标记录为时间序列的机制。
我的要求是:
我希望在与模拟相同的进程中使用此日志记录机制,而不是在外部进程(如 Graphite)中
该机制必须能够处理 100K 事件/秒,而不会减慢模拟速度。
我想按如下方式存储数据:每个指标相关数据应以 1 秒粒度存储 60 分钟、1 分钟粒度 1 天、5 分钟粒度 2 天、1 小时粒度 6 个月和 1 天粒度 3年的持续时间。我希望这种机制能够根据指定的范围处理数据合并。
理想情况下,我想维护一个文件来保存一次模拟运行的指标信息。对于模拟的另一次运行,必须创建一个单独的文件。
拥有一个经过良好测试且随时可用的库/模块会很好:)
顺便说一句,我粗略地看了一下 RRDTool,但据我了解,Python 库似乎是 RRDTool 二进制文件的一个薄包装器。如果可能的话,我正在寻找更紧密的集成。
TIA