Указывая на некоторые ошибки в вашем запросе:
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
, это предупредило бы.