Prometheus 记录规则将名称转换为标签

Prometheus recording rules convert name to label

我正在尝试创建一个记录规则以将一些数据与正则表达式结合起来。但是我想通过将其转换为标签来保留原始名称,例如

errors{old_name="__name__"} = {__name__=~"counter_status_5\d{2}.+"}

但标签设置为文字 __name__ 而不是计数器的原始名称。

有没有办法得到预期的结果?

您可以使用 with label_replace,但真正的问题是您没有使用标签,这个额外的 old_name 标签只会使表达式更复杂且更容易出错。

假设您无法在另一端解决此问题,https://www.robustperception.io/extracting-labels-from-legacy-metric-names/ 是 Prometheus 摄取端的解决方法。

重命名标签:

label_replace(sort_desc(count by(__name__, job) ({__name__=~".+"})),"label_name","","__name__", "(.+)")