Мы используем предупреждение Prometheus (и узел-экспортер), чтобы проверить, не заканчивается ли у нас память на узле.
Проблема: во многих случаях я получаю предупреждение со значением $, которое ниже порогового значения в выражении.
Выражение:
alert: GettingOutOfMemory
expr: max(sum
by(instance) ((((node_memory_MemTotal_bytes) - (node_memory_MemFree_bytes + node_memory_Buffers_bytes
+ node_memory_Cached_bytes)) / (node_memory_MemTotal_bytes)) * 100)) >= 90
for: 5m
labels:
severity: warning
annotations:
description: Docker Swarm node {{ $labels.instance }} memory usage is at {{ humanize $value}}%.
summary: Memory is getting low for Swarm node '{{ $labels.node_name }}'
Я получаю сообщения о том, что у нас закончилась память, например, 83%. Итак, это значение $ value. Это явно ниже порога в 90%.
Почему я получаю это предупреждение, даже если значение $ ниже порогового значения?
Как я могу исправить это правило предупреждений Prometheus, чтобы получать предупреждения только тогда, когда значение $ превышает пороговое значение?