用于监视按名称和图像过滤的docker容器的Prometheus查询
我有几个docker容器在运行:用于监视按名称和图像过滤的docker容器的Prometheus查询,docker,prometheus,Docker,Prometheus,我有几个docker容器在运行: docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 736caaa764f4 ubuntu "/bin/bash" 2 hours ago
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
我想做的是为按名称和图像过滤的容器构建图。
示例:由ubuntu容器(古怪的莫尔斯、昏昏欲睡的威尔逊、古怪的布斯)和普罗米修斯容器构建
我可以使用以下类型的查询按图像筛选容器:
sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu"} [1m] ) )
正如你所看到的,我得到了三个容器的图形(平面线,因为它们什么都不做)。
现在我想添加额外的过滤器参数名,但它不起作用
sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu", name="prometheus"} [1m] ) )
我想要得到的是:三个来自图像“ubuntu”的容器图形和一个名为“prometheus”的容器图形,不管源图像是什么,你不能用一个选择器来完成 这里正确的解决方案是使用Grafana,它支持在一个图上绘制多个表达式
在这个级别上,您可以做的最好的事情是
rate(container\u network\u receive\u bytes\u total{image=“ubuntu”}[1m]或rate(container\u network\u receive\u bytes\u total{name=“prometheus”}[1m]
我有grafana、cAdvisor、Promethues堆栈。请您为grafana查询编写表达式好吗?如果可能的话。@Demant container\u network\u receive\u bytes\u total未在指标中列出。我通过守护程序只添加了公开的docker指标,并通过跟随博客单独使用prometheus。是否需要cAdvisor和node\u导出程序ed?你能为我提供一些在线的参考来监控docker容器吗prometheus@Demaunt我已经拔出了Cadvisor并得到了它。