有没有办法将Prometheus数据存储到像mysql或postgreSQL这样的外部数据库中?

7

目前我正在使用Prometheus并且取得了不错的结果,但我遇到了一个困难,就是如果服务重新启动,我的所有旧数据都会丢失。有没有办法将Prometheus数据永久存储在像mysql或PostgreSQL这样的数据库中?

4个回答

4
您不能直接将 Prometheus 数据写入关系数据库(或任何数据库)。您有两个选择:
  1. 在计算机上挂载外部磁盘,并配置 Prometheus 将数据写入该挂载位置
  2. 编写一个小型 Web 脚本,将 Prometheus 导出格式转换为您想要的任何存储格式。然后配置 Prometheus 发送数据到 Web 脚本。
有关详细信息,请参阅Prometheus 文档

一个好消息是,现在我们可以使用 https://github.com/timescale/pg_Prometheus 将 Prometheus 数据存储到 PostgreSQL 中,并且可以将 timescale-db 与 PostgreSQL 一起作为其他介质使用。 - Anish Varghese
也许你忘了提及已存在的适配器?是的,现在PostgreSQL适配器已经准备好了。 - kenichi

4

3

传统的数据库如MySQL和PostgreSQL并不适用于由Prometheus收集的时间序列数据。存在更好的解决方案,这些解决方案需要更少的存储空间,并且在插入和选择方面工作更快。

Prometheus支持远程存储。启用后,它会将所有新数据存储在本地存储和远程存储中。有多个远程存储数据库可供选择,具有各种权衡。我建议尝试VictoriaMetrics。它原生支持Prometheus的查询语言-PromQL,因此可以轻松地在Grafana中用作Prometheus数据源。


3
一个好消息是,现在我们可以使用 https://github.com/timescale/pg_Prometheus 将Prometheus数据存储到PostgreSQL中,并且可以将timescale-db与PostgreSQL一起作为其他媒介使用。 - Anish Varghese

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接