从中位数CPU使用的子查询中选择前10名,并显示涌入的时间序列数据



我想在Grafana中创建一个图形面板,该图表显示了CPU的十大最高消费者,并在选择的任何时间间隔内显示了他们各自的历史记录。我认为最后一部分是棘手的。

我到目前为止有一个:

SELECT TOP("median_Percent_Processor_Time", 10) as "usage", host FROM (
    SELECT median("Percent_Processor_Time") AS "median_Percent_Processor_Time" FROM "telegraf_monitoring"."autogen"."win_cpu" WHERE time > now() - 5s GROUP BY time(:interval:), "host" FILL(none)
)

这将产生下表:

time                | usage              | host
12/17/18 02:38:36PM | 88.4503173828125   | CNVDWSO202
12/17/18 02:38:36PM | 60.55384826660156  | CNVDSerr01
12/17/18 02:38:36PM | 46.807456970214844 | NVsABAr01
12/17/18 02:38:36PM | 27.402353286743164 | NVDARCH02
12/17/18 02:38:36PM | 21.320478439331055 | NVDABAr05
12/17/18 02:38:36PM | 5.546620845794678  | NVDALMBOE
12/17/18 02:38:36PM | 3.654918909072876  | NVDLeNCXE01
12/17/18 02:38:36PM | 47.08285903930664  | NVDOKTARAD01

表很有用,但这只是一个时间点。我需要从该10个主机的Win_cpu测量中查询并从该WIN_CPU测量中获取时间序列数据。主机值是动态的,我无法预测出现的内容,因此我无法将OR语句和涌入不支持IN

您可以使用或regexp而不是IN=~ /HOST1|HOST2|HOST3/ GROUP BY host和一个InfluxDB查询将返回所有数据。棘手的部分是Grafana变量,它将拥有那十大主机。当您拥有它时,只需在Regexp查询中使用Advance变量格式 - 例如=~ /${tophosts:pipe}/

最新更新