Имя узла, инициированного оповещением, не указывает на то, что получено оповещение, когда запущено более одного - PullRequest
0 голосов
/ 26 октября 2018

Я настроил оповещение об использовании памяти узла в Prometheus. Мой шаблон оповещения выглядит следующим образом:

- alert: NodeMemory Usage(development)
      annotations:
        description: '{{$labels.instance}} Memory usage is critical (current value is: {{ $value }})'
        summary: High Memory  usage detected
      expr: |
        1 - sum by(node) ((node_memory_MemFree{job="node-exporter"} + node_memory_Cached{job="node-exporter"} + node_memory_Buffers{job="node-exporter"}) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:) / sum by(node) (node_memory_MemTotal{job="node-exporter"}* on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:)  > 0.70
      for: 1s
      labels:
        severity: warning

Я получаю имя узла в предупреждении, когда пороговое значение превышает для одного узла (здесь имя узла - node-3z4c), как показано ниже:

[FIRING:1]  (NodeMemory Usage(development) nodes-3z4c monitoring/k8s warning)

Memory usage is critical (current value is: 0.7148033249432908)

Но проблема в том, что, когда несколько узлов превышают пороговое значение, имя нескольких узлов не указывается в уведомлении о предупреждении и получает уведомление следующим образом:

[FIRING:4] NodeMemory Usage (monitoring/k8s)
Memory usage is critical (current value is: 0.7319404231240473)
Memory usage is critical (current value is: 0.7856648253333621)

Может ли кто-нибудь помочь мне разобраться в проблеме?

1 Ответ

0 голосов
/ 29 октября 2018

Это не имеет ничего общего с тем, как вы определили предупреждение.Если вы посмотрите на него в пользовательском интерфейсе Alertmanager, то увидите, что все метки есть.

Это либо шаблон , который вы используете (если Alertmanager отправляет сообщение напрямую), либо любой другой веб-крючокиспользуемый вами обработчик, который сохраняет только общие метки и отбрасывает все остальное.

...