我正在考虑使用 Prometheus 作为时间序列数据库来长期存储数据(数月甚至一年以上)。
但是,我在几个地方读到 Prometheus 不适合长期存储,在这种情况下,其他 TSDB 将是更好的解决方案。但它究竟为什么不适合,将其用作长期存储的缺点是什么?
官方docs提及:
Prometheus's local storage is not intended to be durable long-term storage; external solutions offer extended retention and data durability.
但是“延长保留时间和数据持久性”的确切含义是什么?为什么 Prometheus 无法实现?
最佳答案
这是一个设计决策,主要与项目/工具的范围有关。原作者根据他们在 SoundCloud 的用例,决定不构建分布式数据存储层,而是保持简单。
换句话说:Prometheus 会填满磁盘但不会为您分片或复制数据。现在,如果您要监控许多不同的环境,创建数十万个时间序列和大量指标,这将无法扩展(本地磁盘太小,基于 NFS 的解决方案现在可能是您想要的)。所以,有 different solutions在那里,允许您联合和/或删除来自不同环境的指标。
这里要记住的重要一点是,这不是 Prometheus 的缺点,而是一个有意识的决定,专注于一件事并把它做得很好,并随着时间的推移开发 API(remote_write
和 remote_read
),使其他人能够构建解决分布式/大规模用例的系统。
关于database - 为什么 Prometheus 不适合长期存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68891824/