Grafana Prometheus查询等价于SQL DISTINCT
我有多个普罗米修斯实例提供相同的度量,例如:Grafana Prometheus查询等价于SQL DISTINCT,grafana,prometheus,Grafana,Prometheus,我有多个普罗米修斯实例提供相同的度量,例如: my_metric{app="foo", state="active", instance="server-1"} 20 my_metric{app="foo", state="inactive", instance="server-1"} 30 my_metric{app="foo", state="active", instance="server-2"} 20 my_metric{app="foo", state="inactiv
my_metric{app="foo", state="active", instance="server-1"} 20
my_metric{app="foo", state="inactive", instance="server-1"} 30
my_metric{app="foo", state="active", instance="server-2"} 20
my_metric{app="foo", state="inactive", instance="server-2"} 30
现在我想在Grafana singlestat小部件中显示这个度量。当我使用以下查询时
sum(my_metric{app="foo", state="active"})
…当然,它将所有值相加并返回40
。所以我告诉普罗米修斯用实例求和
sum(my_metric{app="foo", state="active"}) by (instance)
…这导致Grafana出现“多系列错误”。有没有办法告诉普罗米修斯/格拉法纳只使用第一个结果?我刚刚发现的一种方法是对所有值进行额外的平均:
avg(sum(my_metric{app="foo", state="active"}) by(instance))
我不知道有什么不同的方法,但我认为这也会起作用:
topk(1, my_metric{app="foo", state="active"} by (instance))
查看此处倒数第二个示例:
当我在普罗米修斯的图形用户界面中执行此操作时,只得到一个结果。看起来不错。但当我将相同的字符串传递给Grafana Singlestat时,它仍然会告诉我“多序列错误”。令人困惑。这很奇怪。它在普罗米修斯有效,但在格拉法纳无效。能否尝试删除“按(实例)”部分?不要认为这是有效的查询。如果不使用任何聚合函数,例如
sum
、avg
、max
、min`等,您就不能使用by
。。。