我需要在 Grafana 仪表板上多次计算 CPU 核心数,并希望执行一次查询并将其存储在变量中。我找不到以 Grafana 接受的格式返回数据的方法。
Grafana错误:
Template variables could not be initialized: parse error at char 1: vector selector must contain label matchers or metric name
我已经尝试过(PromQL):
count(node_cpu{instance="$host",mode="system"})
返回:
Element {}, Value 2
另外(PromQL):
scalar(count(node_cpu{instance="$host",mode="system"}))
返回:
Element scalar, Value 2
使用 Grafana 的query_result
功能如下:
query_result(count(node_cpu{instance="$host",mode="system"}))
我在预览中获得以下值:
{} 2 1521669355000
2
中间的那个就是我想要的。
有什么想法可以使它工作吗?
答案1
您可以使用正则表达式字段来获取您的值,就您而言:/.* (.*) .*/
答案2
如果你把它放在 grafana 的正则表达式框中,它就会起作用
/.*\s(.*)\s.*/
答案3
对于此类情况,您应避免使用标量,因为如果您想要绘制具有两个可能具有不同核心数的主机的图形,则标量不起作用。我建议在每个查询表达式中执行此操作,而不是通过模板变量。