从 Prometheus 标量设置 Grafana 仪表板变量

从 Prometheus 标量设置 Grafana 仪表板变量

我需要在 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

对于此类情况,您应避免使用标量,因为如果您想要绘制具有两个可能具有不同核心数的主机的图形,则标量不起作用。我建议在每个查询表达式中执行此操作,而不是通过模板变量。

相关内容