我们每一秒都想从一堆服务器收集一系列指标并将它们存储在 prometheus 中。我们会将这些高分辨率指标保留 24 小时,然后再丢弃。我们正在寻找一种方法将指标降采样到 5 秒和 1 分钟的平均值,以便我们可以将这些数据存储更长时间。我们想知道如何实施这一点。目前,我们正在研究两种可能性。
我们计划使用 prometheus_client python 库来收集和导出指标。也许我们可以将 1、5 和 60 秒平均值实现为移动窗口函数,但似乎我们必须弄清楚如何实现固定长度 fifo 堆栈。这似乎可以通过 collections.deque 实现。
我们有一些端点可以从 prometheus 中的一秒数据中读取最后 5 或 60 秒的数据并对其进行平均。然后由每 5 或 60 秒运行一次的不同 scrap 调用。
这两个选项都会实时进行下采样。有没有人有其他建议或对如何继续使用这些选项有任何实际建议?
谢谢,
安德鲁