InfluxDB-查询每个现有标签的最新值的最大值

时间:2020-10-29 12:02:15

标签: influxdb

以下是我的数据库中的一个测量示例:

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解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我用一个简单的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