【发布时间】:2021-11-16 23:14:51
【问题描述】:
我在 docker swarm 中遇到了一些奇怪的问题 - 即使我将副本设置为 1,但有时我仍然 - 在部署新版本后运行太多容器(就像在创建新容器后之前的容器没有被杀死)。为了让它正常工作,我需要重新运行堆栈部署。目前我不知道如何解决这个问题,所以我想在发生这种情况时创建一个普罗米修斯警报。我尝试使用直接从 grafana 配置中获取的表达式,但不知道为什么它会因错误而失败
规则 4,“too_many_containers_per_service”:无法解析 表达式:在 char 72 处解析错误:内部出现意外字符 大括号:'\\\\'"
编辑: 由于我能够在没有任何错误的情况下运行 prometheus 容器,因此取得了进展,但是当服务容器超过 1 个时,我没有收到任何警报。不知道出了什么问题。
配置:
- alert: too_many_containers_per_service
expr: sum(rate(container_last_seen{container_label_com_docker_swarm_node_id=~"node_id"}[5m])) by (container_label_com_docker_swarm_service_name) > 1
for: 2m
labels:
severity: warning
annotations:
description: Too many containers of {{ $labels.service_name }} are running simultaneously!
summary: Containers duplicate alert for service '{{ $labels.service_name }}'
更新:
我能够通过删除节点过滤器使其运行(不需要一个,因为我运行的是单节点群)。 我的配置现在看起来像这样:
- alert: too_many_containers_per_service
expr: count(container_last_seen) by (container_label_com_docker_swarm_service_name) > 1
for: 2m
labels:
severity: warning
annotations:
description: Too many containers of '{{ $labels.container_label_com_docker_swarm_service_name }}' are running simultaneously!
summary: Containers duplicate alert for service '{{ $labels.container_label_com_docker_swarm_service_name }}'
我现在遇到的问题是我不断收到类似“null”服务的警报。
同时运行的 '' 容器太多!
这有什么问题?它永远不会消失。
【问题讨论】:
标签: docker prometheus docker-swarm prometheus-alertmanager docker-swarm-mode