Как сохранить статус expr в правилах оповещения, чтобы использовать его в аннотациях? - PullRequest
0 голосов
/ 10 июля 2019

Я настраиваю оповещения для Прометея для каждого перехода узла в NotReady моего кластера Kubernetes. Я получаю уведомление на Slack всякий раз, когда это происходит. Проблема в том, что я получаю уведомление с тем же описанием «Узел xxxx находится в NotReady», даже когда он возвращается. Я пытаюсь использовать переменную для состояния готовности узла и использовать ее в части аннотаций.

Я пытался использовать «vars» и «when» для присвоения переменной, чтобы использовать ее в аннотациях.

  - name: NodeNotReady
    rules:
    - alert: K8SNodeNotReadyAlert
      expr: kube_node_status_condition{condition="Ready",status="true"} == 0
      for: 3m
      vars:
      - ready_status: "Ready"
        when: kube_node_status_condition{condition="Ready",status="true"} == 1
      - ready_status: "Not Ready"
        when: kube_node_status_condition{condition="Ready",status="true"} == 0
      labels:
        severity: warning
      annotations:
        description: Node {{ $labels.node }} status is in {{ ready_status }}.
        summary: Node status {{ ready_status }} Alert!  

Я хочу получить эти оповещения: 1. Когда узел находится в состоянии NotReady: «Статус узла-узла находится в NotReady». 2. Когда узел готов: «Состояние узла выпускного узла в NotReady.»

1 Ответ

0 голосов
/ 15 июля 2019

Итак, то, что вы ищете, закончилось здесь . Таким образом, вы должны получить в конце концов что-то вроде этого:

Node {{ $labels.node }} status is in {{ if eq $value 1 }} Ready {{ else }} Not Ready {{ end }} status.

Также стоит прочитать это , прежде чем отправлять больше предупреждений.

...