2017-06-06 49 views
0

我使用的是telegraf-influxdb-grafana。但我无法获取只有最后一个时间戳的行。 这是我正在做的事情;grafana-influxdb获取最后一个时间戳的多行

  • 使用Telegraf(exec插件)收集数据库统计信息(当时正在运行查询)。

  • 存储输出到influxdb

  • 试图监视一段grafana

运行的查询,但我需要在最后的时间戳获得所有行。

这是我试过的;

> select * from postgresql_running_queries where time=(select max(time) from postgresql_running_queries) 
ERR: error parsing query: found SELECT, expected identifier, string, number, bool at line 1, char 54 

这是我想看到的;

Time     DB  USER  STATE    QUERY 
2017-06-06 14:25.00 mydb myuser active    my_query 
2017-06-06 14:25.00 mydb myuser idle in transaction my_query2 
2017-06-06 14:25.00 mydb2 myuser2 active    my_query3 

任何一个可以帮助我实现这个? 我很乐意接受任何解决方案。

回答

0
select last(fieldname) from measurment_name; 

以这种格式查询将返回来自InfluxDB的上次时间戳数据。

但我很惊讶你期待3个值的单个时间戳(除非你有不同的TAG值,请参阅本文档how to store duplicate points)。对于给定的时间戳,您将只有一条记录。如果在同一时间戳中有另一个条目,则InfluxDB将覆盖先前的内容,即here is why

你的结果会是这样的(如果你没有不同的变量值):

Time     DB  USER  STATE    QUERY 
2017-06-06 14:25.00 mydb2 myuser2 active    my_query3 

编辑:

根据评论,我的猜测是您使用标签来区分,仍上面的查询应该可以工作,如果没有,你可以尝试加入WHERE子句。

+0

其实它不是覆盖。我有从Telegraf存储在InfluxDB中的指标。例如cpu。 16cpu指标具有相同的时间戳。 [image_for_query](https://ibin.co/3P9LdTprLj5j.png) –

+1

16个指标具有相同的时间戳,是有意义的。但是你不能有两次SAME时间戳(除非你有两个不同的标签)。 – kosa

+0

谢谢,现在我明白了。但是有没有可以和Telegraf和Grafana一起使用的类似InfluxDB的数据库?我需要存储具有相同时间戳(没有不同标签)的指标,并且可以在最后时间戳记中获取多行。 –

相关问题