如何计算 Prometheus v2.2 所需的磁盘空间

87次阅读
没有评论

问题描述

正在尝试计算存储需求,但无法找到计算他们版本的 Prometheus(v2.2)所需值的方法。
在文档中,Prometheus(v2.2) 存储 给出了这个简单的公式:

needed_disk_space = retention_time_seconds * ingested_samples_per_second * bytes_per_sample

然而,他们在其中的一些参数上遇到了困难,特别是 ingested_samples_per_second 的计算。

解决方案

计算公式

在计算 Prometheus v2.2 所需的磁盘空间时,你可以使用以下公式:

needed_disk_space = retention_time_seconds * rate(prometheus_tsdb_head_samples_appended_total[2h]) * (rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[2h]) / rate(prometheus_tsdb_compaction_chunk_samples_sum[2h]))

其中,retention_time_seconds 是你配置的 --storage.tsdb.retention.time 参数的值,默认为 15d,即 1296000 秒。

排除 Prometheus 目标

如果你想要排除 Prometheus 目标本身占用的空间,可以通过以下方式计算所需空间:

  1. 首先计算你需要的目标的存储空间,按照上述公式计算。
  2. 然后,计算 Prometheus 目标占用的存储空间,按照相同的公式计算。
  3. 最终的所需磁盘空间为你需要的目标的存储空间减去 Prometheus 目标的存储空间。

这样,你就可以得到排除了 Prometheus 目标影响的实际所需空间。

注意:上述方法可能需要一些手动计算和调整,具体取决于你的实际需求和环境。

计算示例

假设你的配置中,retention_time_seconds 为默认值 1296000 秒,而 ingested_samples_per_secondbytes_per_sample 分别为你在问题描述中找到的值。那么,你可以按照以下方式计算所需磁盘空间:

needed_disk_space = 1296000 * 18600 * 1.3 = 32,245,440,000 字节 = 约 32.25GB

这个值应该更符合你的基础设施的实际需求。

版本差异

请注意,你在问题评论中提到 Prometheus v2.20 的版本差异。对于不同版本的 Prometheus,可能会有一些参数或指标的变化。因此,在使用不同版本的 Prometheus 时,请确保查阅对应版本的文档以获取准确的参数和指标信息。

总结

通过上述的计算公式,你可以计算出 Prometheus v2.2 所需的磁盘空间。记得考虑到不同版本的参数和指标差异,并根据你的实际需求进行调整。排除 Prometheus 目标占用的空间也是一个有效的方法,可以更准确地计算出你实际需要的磁盘空间。希望这些解决方案能够帮助你更好地规划和管理 Prometheus 的存储需求。

请注意:本文中的计算示例仅供参考,实际需求可能会因环境和配置的不同而有所变化。

正文完