docker - Prometheus查询以监视按名称和图像过滤的Docker容器

标签 docker 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

我要做的是为按名称和图像过滤的容器构建图形。
示例:从ubuntu容器(quirky_morse,sleepy_wilson,cranky_booth)和prometheus容器构建。

我可以使用这种类型的查询按图像过滤容器:
sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu"} [1m] ) )

如您所见,我得到了三个容器的图形(扁平线,因为它们什么都不做)。
enter image description here

现在我想添加其他过滤器参数名称,它不会起作用
sum by (name) (rate(container_network_receive_bytes_total{image="ubuntu", name="prometheus"} [1m] ) )

我想要得到的是:源自图像“ubuntu”的三个容器图,以及一个名称为“prometheus”的容器,无论原始图像是什么

最佳答案

您不能使用一个选择器来执行此操作。

此处的正确解决方案是使用Grafana,它支持在一个图上绘制多个表达式。

在此级别上,您可以做的最好的就是rate(container_network_receive_bytes_total{image="ubuntu"} [1m] or rate(container_network_receive_bytes_total{name="prometheus"}[1m]

关于docker - Prometheus查询以监视按名称和图像过滤的Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501691/

相关文章:

docker - CRON 作业找不到在 docker-compose 中设置的环境变量

docker - 在 Docker Ubuntu 18.04 上安装 PIP3 和 PYTHON3.7

docker - 我在为 golang api 构建 docker 时遇到问题

node.js - Redis配置为保存RDB快照,但当前无法在磁盘上持久保存-Ubuntu Server

docker - 如何将docker容器ip映射到主机ip(NAT而不是NAPT)?

kubernetes - 有没有办法查询 Prometheus 来统计时间范围内失败的作业?

go - Prometheus - 将指标列表发送到 Gauge

grafana - 普罗米修斯:是否可以使用仪表的事件编号作为计数器?

go - 普罗米修斯自定义注册表不工作