我正在制作一个Grafana仪表板来显示canary应用程序的性能。我的问题是我需要找出哪些实例是金丝雀(蓝色或绿色)。
Canary stack总是会创建一个实例,要么是蓝色要么是绿色,所以我可以使用下面的查询看到实例的计数,但不能显示绑定度量的值。
(count(绑定(cfstack ="。蓝色。"))= = 1)或(count(绑定(cfstack ="。绿色。"))= = 1)
如何在PromQL中表达以下内容?
if ( count(bound(cfstack=".*Blue.*")) == 1 )
cfstack_val=".*Blue.*"
else
if ( count(bound(cfstack=".*Green.*")) == 1 )
cfstack_val=".*Green.*"
bound(cfstack="${cfstack_val}")
尝试以下查询:
(bound{cfstack=~".*Blue.*"} and on() (count(bound{cfstack=~".*Blue.*"}) == 1))
or
(bound{cfstack=~".*Green.*"} and on() (count(bound{cfstack=~".*Green.*"}) == 1))
这个查询的工作方式如下:
- 如果只有一个时间序列,则选择与
bound{cfstack=~".*Blue.*"}
匹配的时间序列。 - 如果只有一个时间序列,则选择与
bound{cfstack=~".*Green.*"}
匹配的时间序列。 - 在
or
操作符的帮助下,返回步骤1和步骤2的结果。
参见or
和and
操作符的文档。
on()
修饰符参见这些文档