database - 为什么 Prometheus 不适合长期存储?

标签 database time-series prometheus

我正在考虑使用 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/

相关文章:

r - 一系列数据开始时的滚动方式和应用方式

database - Highcharts 工具提示中的滚动条

mysql - 组合数据帧,并添加公共(public)元素的值

mysql - 克尼克斯/SQL : Merge one to many join in one object

python - Pandas 滚动窗口 - datetime64[ns] 未实现

prometheus - 在由 prometheus-operator helm chart 设置的 Kubernetes 集群上更新 Prometheus 安装的规则和配置的正确方法?

database - 如何从 pg_dump 输出中删除注释和设置?

r - "Spread"na.locf数据为不规则时间数据

go - 在 Go 模板中对 Alertmanager 电子邮件模板进行排序

python - 如何使用 kafka 主题并通过 http 进行解析/服务?