根据普罗米修斯文件:
vector1或vector2的结果包含vector1的所有原始元素(标签集+值)以及vector2中没有匹配标签集的所有元素
但是上面的查询只返回cpu_usage_value
promql初学者,如果理解错了请原谅
or
算子在用标签集搜索or
左侧的时间序列时没有考虑到度量名,而or
右侧的时间序列没有考虑到标签集。
有以下解决方案:
-
在标签列表中明确提及
__name__
标签(又名度量名称),在通过其标签集匹配系列时应考虑到这一点:foo or on(__name__) bar
将返回具有foo
和bar
名称的系列。 -
枚举序列选择器regexp:
{__name__=~"foo|bar"}
返回具有foo
和bar
名称的序列。 -
使用MetricsQL中的联合函数:
union(foo, bar)
返回具有foo
和bar
名称的序列。注意,这个解决方案只适用于VictoriaMetrics(我所使用的类似普罗米修斯的系统)。它在普罗米修斯中不起作用:(