Grafana 10.2升级后表达式报错“2 items dropped from union(s)”求助
问题原因
Grafana 10.2版本收紧了PromQL查询联合(union)操作的标签一致性校验规则。你用$A + $B * -1这种变量拼接方式时,$A和$B返回的时间序列如果标签集不完全匹配,那些标签不一致的序列会被直接从联合结果中丢弃,就会弹出“2 items dropped from union(s): ...”的警告,最终导致整个表达式无法输出有效数据。而10.1版本对标签不匹配的情况容忍度更高,会自动忽略差异执行计算,所以之前能正常工作。
单个查询的替代方案
不用拆分变量,直接把两个指标的计算合并成单个PromQL查询就行,操作简单还能规避标签匹配问题:
- 如果两个指标的标签完全一致,直接用减法替代
+ *-1的写法:你的A指标原始查询语句 - 你的B指标原始查询语句 - 如果标签存在差异,用
ignoring()指定忽略不需要匹配的标签,或者on()指定只匹配特定标签:
举个例子:如果两个指标只有你的A指标原始查询语句 ignoring(不匹配的标签名) - 你的B指标原始查询语句instance标签不同,就可以这么写:metric_a{env="prod"} ignoring(instance) - metric_b{env="prod"}
内容的提问来源于stack exchange,提问作者Jérôme Gillard
相关产品推荐
相关产品推荐

