Как различать правила предупреждений в Prometheus при наличии нескольких экспортеров

Я хочу контролировать контейнеры докеров, запущенные на нескольких серверах, скажем, у меня есть серверы a, b и контейнеры, работающие внутри них, теперь я добавляю один сервер (d) Я хочу отслеживать все контейнеры докеров внутри всех серверов (A, B) только с сервера c. Я настроил докер, чтобы открывать журналы на всех серверах, следуя этому докерам, не использующим cAdvisor. Целевой статус показывает «ОК» на всех серверах, но проблема в том, что выражение одинаково для всех контейнеров докера. Прометей не может различать серверы. Может ли кто-нибудь поделиться образцом файла правил Прометея с выражением, т.е. количество остановленных контейнеров должно не быть меньше x. Это мой текущий файл правил

groups:

- name: Server_A
  rules:
  - alert: Central_service_down
    expr: engine_daemon_container_states_containers{state="running"} < 10
    for: 50s
    labels:
      severity: critical
      instance: <IP_of_A>:9323
    annotations:
      summary: "Monitor service non-operational"
      description: "Demo Service {{ $labels.instance }} is down."
- name: Server_B
  rules:
  - alert: Central_service_down
    expr: engine_daemon_container_states_containers{state="running"} < 10
    for: 50s
    labels:
      severity: critical
      instance: <IP_of_B>:9323
    annotations:
      summary: "Monitor service non-operational"
      description: "Demo Service {{ $labels.instance }} is down."

как вы можете видеть, expr: engine_daemon_container_states_containers{state="running"} < 10 одинаково для серверов a и b, как я могу различать expr для обоих. пожалуйста, поделитесь образцом файла оповещения. заранее спасибо


person Kalyan Raparthi    schedule 18.03.2021    source источник


Ответы (1)


Я добавил instance='ip', чтобы различать, т.е. expr: engine_daemon_container_states_containers{instance="serverA",state="running"} < 10

person Kalyan Raparthi    schedule 25.03.2021