想象一下我有这样的指标:
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
Run Code Online (Sandbox Code Playgroud)
现在我想根据遵循相同模式的类型对指标值进行求和。因此,对于上面的例子,期望的结果是有 2 个和:
type1: 3
type2: 7
Run Code Online (Sandbox Code Playgroud)
这个问题与这个问题有点相似,但是就我而言,我事先不知道这些组。我只知道他们遵循的模式。有没有一种方法可以使用正则表达式通过一个查询来实现这一目标?
在这篇文章中接受的答案的帮助下,我再次弄清楚了如何做到这一点。为以后遇到同样问题的人发布答案:
sum by (type_group) (
label_replace(
label_replace(sample_metric, "type_group", "$1", "type", ".+"),
"type_group", "$1", "type", "some-(\\w+(-\\w+)*)-.*"
)
)
Run Code Online (Sandbox Code Playgroud)
因此,内部label_replace引入了一个名为 的新标签type_group,而外部则在正则表达式的帮助下用从原始标签中提取的label_replace值替换了值。type因此,type_group将包含值,例如type1and type2($1指要拉取的正则表达式组)。内部组(-\\w+)*表明您的组可能由多个部分组成,例如type1-type12,它会将其视为另一个组。
| 归档时间: |
|
| 查看次数: |
6568 次 |
| 最近记录: |