首页 > 解决方案 > 高标签基数但低度量/标签计数和不频繁采样是 Prometheus 可接受的用例吗?

问题描述

我有一个监控用例,我不完全确定它是否适合 Prometheus,我想在深入研究之前征求意见。

我要存储的数量:

只有 1 个指标。该指标有 1 个标签,其中包含 1,000,000 到 2,000,000 个不同的值。这些值是仪表(但如果它们是计数器,它会有所不同吗?)采样率为每 5 分钟一次。保留数据 180 天。

如果我有 100 万个不同的标签值,估计的存储大小:

(根据 Prometheus 文档中的公式:retention_time_seconds * ingested_samples_per_second * bytes_per_sample)

(24*60)/5=288 5-minute intervals in a day.

(180*288)           * (1,000,000)       * 2 = 103,680,000,000 ~= 100GB
samples/label-value   label-value-count   bytes/sample

所以我假设需要 100-200GB。

  1. 这个估计正确吗?

  2. 我在多个地方阅读了有关避免高基数标签的信息,我想问一下。 考虑到我一次只看一个时间序列是高基数标签的问题吗?或者有大量的时间序列?由于每个标签值都会产生另一个时间序列?我还在多个地方读到,Prometheus 可以一次处理数百万个时间序列,所以即使我有 1 个具有一百万个不同值的标签,就时间序列计数而言,我应该没问题,我是否需要担心在这种情况下具有高基数的标签?我知道这取决于服务器的强度,但假设平均容量,我想知道 Prometheus 的实现是否在有效处理这种情况下存在问题。

  3. 而且,如果这是时间序列计数的问题,我是否正确假设它不会在以下选项之间产生显着差异?

    1. 1 个具有 1,000,000 个不同标签值的标签的指标。
    2. 10 个指标,每个指标有 1 个包含 100,000 个不同标签值的标签。
    3. X 度量,每个度量都有 1 个标签,其中包含 Y 个不同的标签值。其中 X * Y = 1,000,000

谢谢您的帮助!

标签: monitoringprometheus

解决方案


请注意,Victoria Metrics 是一个易于为 Prometheus 配置的后端,它将显着降低存储需求。


推荐阅读