Оповещения Prometheus на основе непериодических показателей пакетных заданий

У меня есть CronJob, который запускается каждые 20 минут и собирает только активные сборки для многоотраслевых заданий Jenkins, продолжительность сборки которых превышает определенное значение, и публикует эти метрики с продолжительностью сборки в качестве значения для Prometheus Pushgateway. Таким образом, эта метрика не будет добавлена, если сборка будет завершена. У меня есть оповещения, настроенные с использованием приведенной ниже конфигурации Prometheus.

- alert: BuildDurationExceeded
    expr: jenkins_build_duration > 7200
    annotations:
      title: 'Build duration is too long at {{ $labels.instance }}'
      description: 'Build time of job {{ $labels.job }} on {{ $labels.instance }} exceeded 2h.'
    labels:
      severity: 'high'

Ниже приведено одно значение метрики, которое присутствует в Prometheus.

jenkins_build_duration{branch="repo/branch_name",build_number="5",instance="https://jenkins-instance.com/",jenkins_url="https://jenkins-instance.com/job/repo/job/branch_name/5/",job="jenkins_metrics_job",job_name="repo"}    10000

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


person Sirish    schedule 26.08.2020    source источник


Ответы (1)


Мы исправили это, явно удалив метрику, если она больше не актуальна, с помощью Prometheus python client API библиотеки delete_from_gateway.

person Sirish    schedule 07.10.2020