0

我在influxql中有一个查询来获取cpu、内存、负载和磁盘值,用一个WHERE子句表示它只带来1分钟前的数据。查询有效,但它总是带来相同的日期,即 WHERE 的确切日期。我需要你给我带来最新的日期,也就是服务器最后一次向influexdb数据库发送数据的时间。

我想要的是确定是否有机器没有发送数据,也就是说,我需要 condiict 的最后日期:

 time> = now () - 1h

例如,现在我输入 WHERE 的日期,所以:

02/02/2019, 19:33:35
02/02/2019, 19:33:35
02/02/2019, 19:33:35
02/02/2019, 19:33:35
02/02/2019, 19:33:35

我需要的是最后一个日期,因为在那一小时(1h)内肯定有日期更长的记录(time> =),我的意思是必须有日期的记录:

02/02/2019, 19:33:35
02/02/2019, 19:35:12
02/02/2019, 19:43:30
02/02/2019, 19:40:25
02/02/2019, 19:36:32

我感谢知道发生了什么的人的帮助。谢谢!

这是 SQL:

SELECT 
  LAST(cpu_used) AS cpu, 
  LAST(mem_used) AS mem, 
  LAST(load) AS load, 
  LAST(disk_await) AS disk_await 
FROM custom  
WHERE time >= now() - 1m 
GROUP BY hostname

这是查询的完整退出:

名称:自定义标签:hostname=linux7 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 1 43 0 0

名称:自定义标签:hostname=linux24 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 11 34 0 0

名称:自定义标签:hostname=linux4 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 11 42 0 0

名称:自定义标签:hostname=linux3 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 73 32 1 0

名称:自定义标签:hostname=linux20 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 1 41 0 0

名称:自定义标签:hostname=linux1 time cpu mem load disk ---- --- --- ---- ---- 2019-02-02T18:46:00.42366206Z 36 55 0 0

4

1 回答 1

0

不要使用WHERE条件,而只使用LAST() InfluxDB 选择器

于 2019-02-03T12:15:54.260 回答