Prometheus按instance标签前缀分组求和及异常标签排查
问题分析与解决
你遇到的"Value"标签,是因为存在不匹配cue-.*或cga-.*的instance标签值——这些指标经过label_replace后不会被添加infra标签,执行sum by(infra)时,无infra标签的指标会被聚合到同一个结果组,部分可视化工具会把这个无标签组显示为"Value"。
另外你的查询写法过于繁琐,没必要分两次label_replace再用or合并,直接用正则捕获第一个-前的前缀即可:
sum by(infra) ( label_replace( rate(wallet_operation_total[1m]), "infra", "$1", "instance", "([^-]+)-.*" ) )
说明:
- 正则
([^-]+)-.*会匹配instance标签值中第一个-前的所有字符([^-]+表示匹配任意非-的字符,直到遇到第一个-),并通过$1引用这个捕获组作为infra标签的值。 - 如果只想保留cga和cue两组,可先过滤再处理,避免其他前缀的instance干扰:
sum by(infra) ( label_replace( rate(wallet_operation_total{instance=~"(cga|cue)-.*"}[1m]), "infra", "$1", "instance", "([^-]+)-.*" ) )
这样就能精准得到cga、cue两组结果,不会出现额外的"Value"组。
内容的提问来源于stack exchange,提问作者Orhun
相关产品推荐
相关产品推荐

