我有两个不同实例的衡量标准"metric_awesome".我想要做的是从实例2中减去实例一,就像这样
metric_awesome{instance="one"} - metric_awesome{instance="two"}
Run Code Online (Sandbox Code Playgroud)
不幸的是,结果集是空的.有没有人经历过这个?
bri*_*zil 19
这里的问题是标签不匹配.你想要的是:
metric_awesome{instance="one"} - ignoring(instance) metric_awesome{instance="two"}
Run Code Online (Sandbox Code Playgroud)
默认情况下,Prometheusa - b按以下方式执行:
a查询。b查询。a并b获得具有相同标签集的结果。请参阅这些文档以了解更多详细信息。
返回空结果,因为所有匹配的时间序列都包含标签metric_awesome{instance="one"} - metric_awesome{instance="two"}左侧,而所有匹配的时间序列都包含标签右侧。这里不存在具有相同标签集的时间序列对。-instance="one"-instance="two"
on()可以使用、ignoring()和group_left()修饰符更改此行为group_right()。
例如,指示在搜索具有相同标签的时间序列对时metric_awesome{instance="one"} - ignoring(instance) metric_awesom{instance="two"}忽略标签。instance当一侧的多个时间序列与另一侧的-单个时间序列匹配时,这可能会导致多对一匹配。默认情况下,Prometheus 在这种情况下返回错误。group_left()这可以通过向运算符添加或group_right()修饰符来修复-:
metric_awesome{instance="one"}
- ignoring(instance) group_left()
metric_awesome{instance="two"}
Run Code Online (Sandbox Code Playgroud)
或者
metric_awesome{instance="one"}
- ignoring(instance) group_right()
metric_awesome{instance="two"}
Run Code Online (Sandbox Code Playgroud)
有关这些修饰符的更多详细信息,请参阅这些文档。
| 归档时间: |
|
| 查看次数: |
3845 次 |
| 最近记录: |