0

我正在使用模板变量查询在 Grafana 中分配一个变量。

SELECT * FROM jmeter WHERE application =~ /$tag_left/ ORDER BY time asc LIMIT 1

此查询的结果 JSON 是

{"results":[{"series":[{"name":"jmeter","columns":[" time ","application","avg","count","countError","endT", "命中","max","maxAT","meanAT","min","minAT","pct90.0","pct95.0","pct99.0","rb","re​​sponseCode", "responseMessage","sb","startedT","statut","transaction"],"values":[[ 1595241959625 ,"demo_scenario.jmx @ 1 @ Mon Jul 20 16:15:58 IST 2020",null, null,null,0,null,null,0,0,null,0,null,null,null,null,null,null,null,0,null,"内部"]]}]}]}

我需要从这个查询中获得时间。哪个是5.0版的 grafana,但不是7.0版。

有什么方法可以让我time从查询结果中选择相应的列并将其分配给变量?像${var:index}

为了更清楚地说明这一点,我附上了屏幕截图。

5.0 版

7.0 版

如您所见,一个显示timestamp为变量值(例如 1595228080029),另一个显示application值(例如 demo_scenario.jmx @ 1 @ Mon Jul 20 16:15:58 IST 2020 )在值预览部分下询问

下划线数据源是InfluxDB。在这两种情况下,api 查询都有相同的响应。

4

1 回答 1

0

使用的变量查询返回时间序列和多个“列”(因为SELECT *) - 这是错误的。Doc https://grafana.com/docs/grafana/latest/datasources/influxdb/#templating包含正确的模板查询应该是什么样子,例如

SHOW TAG VALUES WITH KEY = "hostname"

它不返回时间序列,并且只返回一个“列”(在这种特殊情况下为主机名)。InfluxQL 不允许您仅选择时间列,因此无法根据需要在 Grafana 中实现它。

于 2021-01-12T18:21:38.550 回答