AlertManager--容器警报未返回正在运行的主机名



我面临一个问题,我在alert_rules.yml中使用以下规则当我收到警报时,它不会返回容器运行的主机名。如何实现返回主机名而不是节点ID?

我尝试使用container_label_com_docker_swam_node_name而不是container_label_com_docker_Swam_node_id,但不起作用。

有什么建议吗?

- alert: task_high_memory_usage_1g
expr: sum(container_memory_rss{container_label_com_docker_swarm_task_name=~".+"})
BY (container_label_com_docker_swarm_task_name, container_label_com_docker_swarm_node_id) > 1e+09
for: 1m
labels:
severity: warning
annotations:
description: '{{ $labels.container_label_com_docker_swarm_task_name }} on ''{{
$labels.container_label_com_docker_swarm_node_id }}'' memory usage is {{ humanize
$value}}.'
summary: Memory alert for Swarm task '{{ $labels.container_label_com_docker_swarm_task_name
}}' on '{{ $labels.container_label_com_docker_swarm_node_id }}'

没有使用Docker的经验,但如果您的container_memory_rss度量同时具有container_label_com_docker_swarm_node_idcontainer_label_com_docker_swarm_node_name标签,那么在警报规则(包括规则和描述/摘要(中用另一个标签替换所有出现的情况应该会很好。如果..._name标签不存在,那么这可能解释了它不起作用的原因。

您可以尝试$labels.instance。它将返回触发警报的实例名称。

相关内容

最新更新