我正在使用telegraf-influxdb-grafana。但我只能在最后一个时间戳上获得行。 这就是我在做的事情;
使用Telegraf(exec插件)收集数据库统计信息(当时运行查询)。
将输出存储到Influxdb
但我需要在最后一个时间戳获取所有行。
这是我尝试过的;
> 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 :(得分:0)
select last(fieldname) from measurment_name;
以这种格式查询将返回来自InfluxDB的最后一个时间戳数据。
但令我感到惊讶的是,您希望单个时间戳有3个值(除非您有不同的TAG值,请参阅此文档how to store duplicate points)。对于给定的时间戳,您只能记录一条记录。如果有相同时间戳here is why的其他条目,InfluxDB会覆盖以前的内容。
您的结果将类似(如果您没有不同的TAG值):
Time DB USER STATE QUERY
2017-06-06 14:25.00 mydb2 myuser2 active my_query3
编辑:
基于评论,我的猜测是你正在使用TAG来区分,仍然在查询之上应该有效,如果没有,你可以尝试添加WHERE子句。