记录规则计算后清理 Prometheus 中的指标
Cleaning metrics in Prometheus after recording rules computation
我在 Prometheus 中有一个联合工作,它从多台机器上抓取指标(请求数)。
问题是这些指标带有范围广泛的标签组合(如 IP 地址、容器元数据等),因此我添加了一个记录规则,该规则计算所有传入指标的总和并将其保存在一个只有我需要的标签的新指标。结果,我只有大约 10 种标签组合,而不是 200k。
问题:有没有办法删除原始指标而不是来自记录规则的指标?
可能的解决方案:
--storage.tsdb.retention.time
但这将删除所有内容(原始指标和计算指标)
POST to api/v1/admin/tsdb/delete_series
但我一直在寻找更 优雅 的东西。另外,如果我删除了整个系列,还没有时间计算的记录规则会怎样?
据我所知,除了删除您不再感兴趣的时间序列之外,无法在单个 Prometheus 实例中执行您想要的操作。顺便说一句,/api/v1/admin/tsdb/series
apparently accepts start
和 end
参数,允许您例如只删除原始时间序列的旧样本。
另一种选择是让一个 Prometheus 实例以非常短的保留时间执行抓取和聚合(就像您现在所做的那样)。并让第二个具有较长保留时间的 Prometheus 实例从第一个实例中获取聚合结果(以及您想要保留的任何其他指标)。这叫做"federation".
我在 Prometheus 中有一个联合工作,它从多台机器上抓取指标(请求数)。
问题是这些指标带有范围广泛的标签组合(如 IP 地址、容器元数据等),因此我添加了一个记录规则,该规则计算所有传入指标的总和并将其保存在一个只有我需要的标签的新指标。结果,我只有大约 10 种标签组合,而不是 200k。
问题:有没有办法删除原始指标而不是来自记录规则的指标?
可能的解决方案:
--storage.tsdb.retention.time
但这将删除所有内容(原始指标和计算指标)POST to api/v1/admin/tsdb/delete_series
但我一直在寻找更 优雅 的东西。另外,如果我删除了整个系列,还没有时间计算的记录规则会怎样?
据我所知,除了删除您不再感兴趣的时间序列之外,无法在单个 Prometheus 实例中执行您想要的操作。顺便说一句,/api/v1/admin/tsdb/series
apparently accepts start
和 end
参数,允许您例如只删除原始时间序列的旧样本。
另一种选择是让一个 Prometheus 实例以非常短的保留时间执行抓取和聚合(就像您现在所做的那样)。并让第二个具有较长保留时间的 Prometheus 实例从第一个实例中获取聚合结果(以及您想要保留的任何其他指标)。这叫做"federation".