InfluxDB - 查询每个现有标签的最后一个值的最大值
InfluxDB - Query the MAX of last values for every existing tag
这是我的数据库中的一个测量示例:
time category VM observation severity
---- -------- --- ----------- --------
1434067460000000000 availability VM2 cpu 1
1434067470000000000 availability VM2 memory 3
1434067480000000000 availability VM1 memory 2
1434067490000000000 treacability VM1 filesystem 1
我想查询给定 VM 的类别的当前状态,类别的状态是该给定类别的所有不同现有观察结果的最后严重性的最大值。 (例如,对于此处 VM2 的可用性,它是最后一次 cpu 观察和最后一次内存观察的严重性的最大值)。
我可以通过这样的查询获得某个类别的不同观察结果:
select distinct("observation") from (select observation, severity from my_measurement where category='availability')
但是没有像 SQL 中那样的 WHERE IN
子句将其用作子查询。
知道如何使用 influxdb 解决这个问题吗?
我用简单的 GROUP BY
解决了这个问题。类别 可用性 和虚拟机 VM2:
的示例
SELECT MAX("value") FROM (
SELECT "value"
FROM my_measurement
WHERE category='availability' AND VM='VM2'
GROUP BY observation
ORDER BY DESC
LIMIT 1)
ORDER BY DESC
这是我的数据库中的一个测量示例:
time category VM observation severity
---- -------- --- ----------- --------
1434067460000000000 availability VM2 cpu 1
1434067470000000000 availability VM2 memory 3
1434067480000000000 availability VM1 memory 2
1434067490000000000 treacability VM1 filesystem 1
我想查询给定 VM 的类别的当前状态,类别的状态是该给定类别的所有不同现有观察结果的最后严重性的最大值。 (例如,对于此处 VM2 的可用性,它是最后一次 cpu 观察和最后一次内存观察的严重性的最大值)。
我可以通过这样的查询获得某个类别的不同观察结果:
select distinct("observation") from (select observation, severity from my_measurement where category='availability')
但是没有像 SQL 中那样的 WHERE IN
子句将其用作子查询。
知道如何使用 influxdb 解决这个问题吗?
我用简单的 GROUP BY
解决了这个问题。类别 可用性 和虚拟机 VM2:
SELECT MAX("value") FROM (
SELECT "value"
FROM my_measurement
WHERE category='availability' AND VM='VM2'
GROUP BY observation
ORDER BY DESC
LIMIT 1)
ORDER BY DESC