配置 Prometheus 资源使用说明

时间:2021-07-21
本文章向大家介绍配置 Prometheus 资源使用说明,主要包括配置 Prometheus 资源使用说明使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

存储和数据保留

Prometheus 所需的存储空间与您存储的时间序列和标签的数量以及您配置的数据保留量直接相关。需要注意的是,Prometheus 并不是用来作为长期指标存储的。数据保留时间通常只有几天,而不是几周或几个月。原因是,Prometheus 不会对其存储的指标进行任何聚合。这很好,因为聚合会稀释数据,但这也意味着所需的存储空间随着时间的推移线性增长而没有保留。

计算所需存储空间的一种方法是通过以下查询来查看 Prometheus 中存储块的平均大小:

rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1h]) / rate(prometheus_tsdb_compaction_chunk_samples_sum[1h])

接下来,找出你每秒的数据摄取率:

rate(prometheus_tsdb_head_samples_appended_total[1h])

然后与保留时间相乘,并添加几个百分点作为缓冲区:

平均块大小(以字节为单位) * 每秒的摄取速率 * 保留时间(以秒为单位) * 1.1 = 必需的存储空间(以字节为单位)

你可以在这篇博客文章中找到更多关于如何计算必要存储的信息。
https://www.robustperception.io/how-much-disk-space-do-prometheus-blocks-use

你可以在Prometheus 文档中阅读更多关于 Prometheus 存储概念的内容。
https://prometheus.io/docs/prometheus/latest/storage

CPU 和内存的请求和限制

在较大的 Kubernetes 集群中,Prometheus 会消耗大量内存。 Prometheus 需要的内存直接与它存储的时间序列和标签的数量以及填充这些标签的 scrape 间隔有关。

你可以在这个博客文章中找到更多关于如何计算所需内存的信息。
https://www.robustperception.io/how-much-ram-does-prometheus-2-x-need-for-cardinality-and-ingestion

所需的 CPU 数量与您正在执行的查询数量相关。

长期储存

Prometheus 并不是为了长期存储指标,而只用于短期存储。

为了长期存储一些或所有的指标,你可以利用 Prometheus 的远程读/写功能将其连接到存储系统,如Thanos、InfluxDB、M3DB或其他系统。你可以在这篇博客文章中找到一个示例设置。
https://prometheus.io/docs/prometheus/latest/storage/#remote-storage-integrations
https://thanos.io/
https://www.influxdata.com/
https://www.m3db.io/
https://rancher.com/blog/2020/prometheus-metric-federation

作者:Varden
本文内容如有雷同,请联系作者!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/varden/p/15018616.html