【问题标题】:Why Prometheus is not suitable for long-term storage?为什么 Prometheus 不适合长期存储?
【发布时间】:2021-10-23 18:11:50
【问题描述】:
我正在考虑使用 Prometheus 作为时间序列数据库来存储很长一段时间(几个月甚至一年以上)的数据。
但是,我在少数地方读到 Prometheus 不适合长期存储,在这种情况下,其他 TSDB 会是更好的解决方案。但究竟为什么它不适合,将其用作长期存储有什么缺点?
官方docs提及:
Prometheus 的本地存储并非旨在长期持久
贮存;外部解决方案提供延长的保留期和数据
耐用性。
但“延长保留期和数据持久性”究竟是什么意思,为什么 Prometheus 无法实现?
【问题讨论】:
标签:
database
time-series
prometheus
【解决方案1】:
这是一个设计决策,主要与项目/工具的范围有关。原作者在 SoundCloud 的用例中决定不构建分布式数据存储层,而是保持简单。
换句话说:Prometheus 会填满磁盘,但不会为您分片或复制数据。现在,如果您要监控许多不同的环境,创建数十万个时间序列和数以万计的指标,则无法扩展(本地磁盘太小,而基于 NFS 的解决方案现在可能也是您想要的)。所以,有different solutions,允许您联合和/或删除来自不同环境的指标。
这里要记住的重要一点是,这不是 Prometheus 的缺点,而是有意识地决定专注于一件事并做得很好,并且随着时间的推移开发 API(remote_write 和 remote_read),使其他人能够构建解决分布式/大规模用例的系统。