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 查询具有时间范围的计数器数据