Интервал очистки и интервал оценки в прометее
Мой интервал очистки и интервал оценки отличаются друг от друга, как показано ниже (15 с против 4 м). Когда я передаю метрики в конечную точку, я обнаруживаю, что правила оцениваются каждые 4 м, что ожидается. Однако чего я не понимаю, так это того, что он не оценивает правила для всех показателей, поданных за последние 4 минуты. Я с трудом понимаю, как работают эти два часа (очистка и оценка). Кроме того, документация вокруг этого очень скудна. Любые указатели будут очень полезны. У меня нет сомнений в том, чтобы изменить время очистки и оценки, скажем, 15 секунд каждый. Но мне нужно понять последствия установки часов.
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 4m # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- testmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "/etc/prometheus/xyz_rule.yml"
- "/etc/prometheus/pqr_rule.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
metrics_path: /v1/metrics/xyz
# scheme defaults to 'http'.
static_configs:
- targets: ['test:7070']
2 ответа
Интервал очистки :
It defines the interval based on which prometheus scrapes a monitored target. It is defined globally but can also be overridden at job level. Defaults to 1 min.
Интервал оценки :
It defines the interval based on which prometheus evaluates the query for alerting. In each evaluation cycle, prometheus runs the expression defined in each alerting rule and sets the state of alert.
Рекомендация : Установите оба интервала равными
same
ценность
Время, необходимое для срабатывания сигнализации, должно варьироваться в пределах:
minimum time = [time set in the 'FOR' clause]
maximum time = [scrapeInterval + evaluationInterval + 'FOR' clause time]
Предположение :
evaluationInterval
это
multiple
из
scrapeInterval
. Например,
scrapeInterval = 30 sec and
evaluation interval = 1 min and
FOR clause set for 2 mins
Minimum time to fire alarm => 2 mins.
Maximum time to fire alarm => 30 sec + 1min + 2min => 3 min 30 sec
ПРИМЕЧАНИЕ . Если время в предложении FOR равно 0, оповещение немедленно перейдет в состояние срабатывания.
Эти два процесса независимы, PromQL и правила записи не знают, какой у вас интервал очистки. Поэтому любое правило, которое вы укажете, будет оцениваться одинаково с одинаковым результатом при оценке в данное время, независимо от того, какой интервал оценки.
Для простоты и здравомыслия лучше, чтобы оба интервала были одинаковыми, поэтому я бы посоветовал иметь оба по 15 с.