Grafana/InfluxDB:查询在面板中工作,而不是在变量中

Posted

技术标签:

【中文标题】Grafana/InfluxDB:查询在面板中工作,而不是在变量中【英文标题】:Grafana/InfluxDB: Query works in panel, not in variable 【发布时间】:2021-12-22 13:08:20 【问题描述】:

我有一个 InfluxDB 数据集,其中包含来自一堆虚拟机的大量时间序列数据。

我正在尝试设置一个变量来返回 CPU 使用率高于阈值的前 10 台机器的名称。

以下查询在查询编辑器中工作(我可以在面板中得到我想要的结果):

SELECT "name" FROM (SELECT TOP(usage, 10), "name" FROM (SELECT
SUM("cpu") AS usage FROM "location" WHERE ("type"=~/^$microservice$/)
AND $timeFilter AND "cpu" >= $cpuLimit GROUP BY "name"))

但是当我尝试用这个查询定义一个新变量时,它会出错。作为参考,$microservice 是所选程序的名称,$cpuLimit 是另一个包含阈值的变量。

如果我这样做:

SELECT "name" FROM (SELECT TOP(usage, 10), "name" FROM (SELECT
SUM("cpu") AS usage FROM "location" WHERE ("type"=~/^$microservice$/)
AND $timeFilter AND **"cpu" >= 0.5** GROUP BY "name"))

然后变量就可以正常工作了。当我输入$cpuLimit 时,我收到以下错误:

作为文本:

Validation - InfluxDB Error: error parsing query: found \, expected ) at line 1, char 216

Templating [name_of_variable] - Error updating options: InfluxDB Error: error parsing query: found \, expected ) at line 1, char 216

这表示位置 216 有一个意外字符,但我的查询中甚至没有 216 个字符,所以我有点迷茫。为什么它在面板中起作用,而在变量中不起作用?

【问题讨论】:

我刚刚注意到的另一件事 - 当 $cpuLimit 【参考方案1】:

我终于修好了。我用过:

"cpu" >= $cpuLimit:text

我在the documentation 找到了这个。

【讨论】:

以上是关于Grafana/InfluxDB:查询在面板中工作,而不是在变量中的主要内容,如果未能解决你的问题,请参考以下文章

Using InfluxDB in Grafana,influxDB在grafana中使用

Grafana / InfluxDB 查询具有时间范围的计数器数据

在influxdb中查询时如何写case?

WPF - groupbox伸展不在水平堆栈面板中工作

InfluxDB 和 Grafana:InfluxDB 错误:错误请求 |码头工人

Grafana + Influxdb Android性能监控部署