весенний пакет: оповещение с графаной и прометеем, если работа не удалась в последние xx минут - PullRequest
1 голос
/ 24 апреля 2020

Я использую подпружиненную партию (4.2.2.RELEASE) вместе с пружинным приводом (2.2.6 RELEASE). Начиная с версии 4.2, Spring Batch предоставляет поддержку мониторинга партий и показателей на основе микрометра (https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/monitoring-and-metrics.html).

Например, я могу видеть с именем metri c * spring_batch_job как часто выполнялось задание, его статус и продолжительность.

Я хочу отслеживать этот показатель c с помощью графаны и прометея и оповещать, если задание не выполнено в последние xx минуты.

Если приложение Spring Batch работает как служба, кажется, что оно суммирует все показатели, пока служба не будет остановлена. Например, если задание было запущено 12 раз за последний час, выходные данные метрик могут быть следующими:

spring_batch_job_seconds_count{name="mainJob",status="COMPLETED",} 10.0
spring_batch_job_seconds_sum{name="mainJob",status="COMPLETED",} 354.354538083
spring_batch_job_seconds_count{name="mainJob",status="FAILED",} 2.0
spring_batch_job_seconds_sum{name="mainJob",status="FAILED",} 0.880157862

Таким образом, два экземпляра mainJob завершились неудачно. Предполагается, что в течение следующего часа все 12 заданий будут успешными, вывод метрик будет следующим:

spring_batch_job_seconds_count{name="mainJob",status="COMPLETED",} 22.0
spring_batch_job_seconds_sum{name="mainJob",status="COMPLETED",} 708.704538083
spring_batch_job_seconds_count{name="mainJob",status="FAILED",} 2.0
spring_batch_job_seconds_sum{name="mainJob",status="FAILED",} 0.880157862

Как я могу проверить, провалилось ли задание за последние XX минут? Поскольку следующее выражение будет по-прежнему возвращать два сбойных задания: spring_batch_job_seconds_count{status="FAILED"}[15m]

1 Ответ

0 голосов
/ 26 апреля 2020

Я не знаком с Prometheus QL, но постараюсь помочь.

Что вы можете сделать, это рассчитать разницу этого счетчика между последним часом и часом ранее. Если вы видите увеличение числа неудачных экземпляров, то по крайней мере один экземпляр вышел из строя, и вы можете подать предупреждение. В противном случае ни одно задание не было выполнено в предыдущий час.

Prometheus предоставляет функцию увеличение , разработанную специально для этого. Таким образом, вы должны быть в состоянии ответить на ваш вопрос и поднять предупреждение, когда:

increase(spring_batch_job_seconds_count{name="mainJob",status="FAILED"}[15m]) > 0

Как я уже сказал, я не эксперт в Prometheus, поэтому я позволю вам проверить синтаксис. Но это идея, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...