记录规则计算后清理 Prometheus 中的指标

Jav*_*tiz 1 prometheus

我在普罗米修斯中有一项联邦工作,从多台机器上抓取指标(请求数)。

问题是这些指标带有广泛的标签组合(如 IP 地址、容器元数据等),因此我添加了一个记录规则,该规则对所有传入指标进行求和并将其保存在一个新指标中,仅使用我需要的标签。因此,我只有大约 10 个标签组合,而不是 200k。

问题:有没有一种方法可以删除原始指标,但不删除来自记录规则的指标?

可能的解决方案:

  • --storage.tsdb.retention.time但这会删除所有内容(原始指标和计算指标)

  • POST to api/v1/admin/tsdb/delete_series但我一直在寻找更优雅的东西。另外,如果我删除整个系列,还没有时间计算的记录规则会发生什么情况?

Ali*_*ean 5

AFAIK,除了删除您不再感兴趣的时间序列之外,没有办法在单个 Prometheus 实例中执行您想要的操作。顺便说一句,/api/v1/admin/tsdb/series 显然接受 startend参数,允许您仅删除原始时间序列的旧样本。

另一种选择是让一个 Prometheus 实例以非常短的保留时间进行抓取和聚合(就像您现在所做的那样)。并让第二个具有较长保留时间的 Prometheus 实例抓取第一个实例的聚合结果(以及您想要保留的任何其他指标)。这就是所谓的“联邦”