在普罗米修斯中,应如何对多价状态进行建模/查询



我想在标签中导出状态,类似的东西:

my_status{group="xx",partition="1",status="ERROR"} 1
my_status{group="xx",partition="1",status="OK"} 1
my_status{group="xx",partition="1",status="STALL"} 1

我已经阅读了Brian的https://www.robustperception.io/exposing-the-software-version-version-to-prometheus我想做的是非常相似的。

和查询状态在Grafana中,给定 group partition 。但是我无法进行示例

中所示的查询
my_status{group="xx",partition="1"} 
* on (partition, group) group_left(status) 
my_status{group="xx",partition="1"}

这给了我一个错误,因为它们现在是两个不同的时间序列,这导致了

错误执行查询:不允许多对多匹配:匹配 标签必须在一侧是唯一的

我不想通过将其映射到价值来导出枚举。(例如OK = 1,错误= 2(,因为我必须继续更新它们。有指针吗?谢谢。

这里的问题是您正在报告三个状态。如果一个人的值为1,则可以做

  up
* on (partition, group) group_left(status)
  (my_status{group="xx",partition="1"} == 1)

最新更新