想象一下我有这样的指标:
sample_metric{type="some-type1-1234"} 2
sample_metric{type="some-type1-5678"} 1
sample_metric{type="some-type2-9876"} 4
sample_metric{type="some-type2-4321"} 3
现在我想根据遵循相同模式的类型对指标值求和。因此,对于上面的示例,所需的结果是有 2 个总和:
type1: 3
type2: 7
这个问题有点类似于meld,但就我而言,我事先不知道这些组。我只知道他们遵循的模式。有没有办法通过使用正则表达式的一个查询来实现这一点?
答案 0 :(得分:0)
我再次在 the accepted answer from this post 的帮助下找到了方法。为将来遇到相同问题的人发布答案:
sum by (type_group) (
label_replace(
label_replace(sample_metric, "type_group", "$1", "type", ".+"),
"type_group", "$1", "type", "some-(\\w+(-\\w+)*)-.*"
)
)
因此,内部 label_replace
引入了一个名为 type_group
的新标签,而外部 label_replace
使用从原始标签中提取的 type
替换值,在帮助下正则表达式。因此,type_group
将包含值,例如 type1
和 type2
($1
指的是要拉取的正则表达式组)。内部组 (-\\w+)*
表示您的组可能由几个部分组成,例如type1-type12
,它会将其视为另一个组。