Мы используем предупреждение 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% порога.
Почему я получаю это предупреждение, даже если значение $ ниже порога?
Как я могу восстановить это правило предупреждений Прометея, чтобы получать уведомления только тогда, когда значение $ превышает пороговое значение?