Prometheus查询监视通过名称和图像过滤的泊坞窗容器

我有几个docker集装箱运行:

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 736caaa764f4 ubuntu "/bin/bash" 2 hours ago Up 2 hours quirky_morse e2869c98ee1a ubuntu "/bin/bash" 2 hours ago Up 2 hours sleepy_wilson e4149472a2da ubuntu "/bin/bash" 2 hours ago Up 2 hours cranky_booth 70bb44ac5d24 grafana/grafana "/run.sh" 2 hours ago Up 2 hours 0.0.0.0:3000->3000/tcp microservicemonitoring_grafana_1 e4b30881a83e prom/prometheus "/bin/prometheus -..." 2 hours ago Up 2 hours 0.0.0.0:9090->9090/tcp prometheus 281f792380f9 prom/node-exporter "/bin/node_exporte..." 2 hours ago Up 2 hours 9100/tcp node-exporter 17810c718b29 google/cadvisor "/usr/bin/cadvisor..." 2 hours ago Up 2 hours 8080/tcp microservicemonitoring_cadvisor_1 77711de421e2 prom/alertmanager "/bin/alertmanager..." 2 hours ago Up 2 hours 0.0.0.0:9093->9093/tcp microservicemonitoring_alertmanager_1 

我想要做的是为容器过滤名称和图像的graphics。 例如:从Ubuntu的容器( quirky_morsesleepy_wilsoncranky_booth )和prometheus容器构build

我可以通过这种查询types的图像过滤容器:

 sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu"} [1m] ) ) 

正如你所看到的,我得到了三个容器的graphics(扁平线,因为他们什么都不做)。 在这里输入图像说明

现在我想添加额外的filter参数名称 ,它不能工作

 sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu", name="prometheus"} [1m] ) ) 

我想得到的是:无论源图像如何,从图像“ubuntu”和名为“prometheus”的容器派生的三个图

你不能用一个select器来做到这一点。

这里适当的解决scheme是使用Grafana,它支持在一个图上绘制多个expression式。

在这个级别,你可以做的最好的是rate(container_network_receive_bytes_total{image="ubuntu"} [1m] or rate(container_network_receive_bytes_total{name="prometheus"}[1m]