2017-07-17 170 views
1

如果我有以下标签的度量:如何在普罗米修斯查询中对标签进行分组?

my_metric{group="group a"} 100 
my_metric{group="group b"} 100 
my_metric{group="group c"} 100 
my_metric{group="misc group a"} 1 
my_metric{group="misc group b"} 2 
my_metric{group="misc group c"} 1 
my_metric{group="misc group d"} 1 

是否有可能做一个查询甚至label_replace,结合了“杂项”组在一起吗?

(我意识到,指标基数有待提高,我已经更新了应用程序来修复它。但是它给我留下了这个问题,因为如果我想通过以后查询修复指标)

回答

6

是的,你可以使用标签替换到组中的所有其它在一起:

sum by (new_group) (
    label_replace(
    label_replace(my_metric, "new_group", "$1", "group", ".+"), 
    "new_group", "misc", "group", "misc group.+" 
) 
) 

内label_replace将复制组中的所有值到new_group,外覆盖那些匹配以“杂项组+。” “misc”,然后我们通过“new_group”标签进行求和。使用新标签的原因是,如果我们只是覆盖了“组”标签,则该系列将不再是唯一的,并且总和不起作用。

+0

难道就没有可能仅仅做给archieve相同的结果:( “杂项组+” label_replace(my_metrics, “杂项”, “集团”) ) '由(MISC)和' – Hawky4s

1

您可以使用正则表达式查询:

my_metric{group=~"misc group.+"} 

这将会给你的一切,其中group开始用“杂项组”。