1
我在Grafana的查询:我可以在influxdb的多个维度上调用一个聚合函数吗?
SELECT mean(value) FROM "queues_value" WHERE "host" =~ /$host/ AND "type" = 'rabbitmq_messages' AND $timeFilter GROUP BY time($interval), "host", "instance"
目前这个图形消息的平均数在RabbitMQ的队列在给定的时间段,显示了每个主机每个队列独立的曲线图。
我想基本上做同样的事情,但导致每个主机只有一个图形将所有队列相加。这意味着在指定的时间段内保持所有消息计数的平均值(保持不同的instance
s,host
s和时间间隔分开),然后将它们相加在一起(这次只保持不同的host
s和时间间隔分开)。
问题是,像mean
或sum
这样的每个集合函数只会影响整个查询,并且似乎没有办法将GROUP BY
语句应用于仅一个集合函数。
如果有可能,我已经做了这样的事情:
SELECT sum(mean(value) GROUP BY "instance") FROM "queues_value" WHERE "host" =~ /$host/ AND "type" = 'rabbitmq_messages' AND $timeFilter GROUP BY time($interval), "host"
或者这样:
SELECT sum(value) FROM (SELECT mean(value) FROM "queues_value" WHERE "host" =~ /$host/ AND "type" = 'rabbitmq_messages' AND $timeFilter GROUP BY time($interval), "host", "instance") GROUP BY time($interval), "host"
但这些都不是有效的语法。从本质上讲,我试图首先研究一个特定主机在给定时间段内包含一个特定队列的聚合,然后尝试对每个主机上的计算结果组成的聚合进行处理。同一时期。
有没有办法在influxdb或grafana中完成我想要的?