Прометей считая вопрос - PullRequest
       9

Прометей считая вопрос

0 голосов
/ 08 февраля 2019

Я пытаюсь подсчитать, сколько значений == 0 за последний час в прометее, и пытаюсь создать правила оповещения.

Я пришел с правилами count_over_time (instance == 0 [1h]) / count_over_time (instance)

Я получил сообщение об ошибке, показывающее, что я должен следовать выражению агрегатора Prometheus.

Не уверен, в чем причина.

Очень ценю вашу помощь.

1 Ответ

0 голосов
/ 10 февраля 2019

Указывая на некоторые ошибки в вашем запросе:

  • instance==0 [1h]: Выбор диапазона возможен только для мгновенного вектора, но не для выражения.т. е. instance[1h] действителен, но не упомянутый.Здесь вам нужен подзапрос , который будет выглядеть примерно так: (instance==0)[1h:1m] (выберите ваше разрешение).

  • count_over_time(instance): count_over_time принимает вектор диапазона, поэтому здесь нельзя использовать только instance, который является мгновенным вектором.

Теперь перейдем к ожидаемому запросу, и я понимаю, что вы хотитечтобы узнать, какой процент серии instance оказался равным 0 за последние 1 час, и предупредить об этом, для этого я предлагаю воспользоваться тегом for при определении предупреждений, например:

groups:
- name: example
  rules:
  - alert: ExampleAlert
    expr: count(instance == 0)/count(instance) > 0.5
    for: 1h
    annotations:
        description: "Count of (instances==0) is >50% of instances for more than 1h."

Здесь, если отношение было бы > 0.5 (50%) для прямой 1h, это предупредило бы.

...