fix(alerting): alerte fiable sur l'échec de la vidéo quotidienne du brief #12

Merged
arcodange merged 1 commits from arcodange/alert-brief-video into main 2026-07-23 22:06:17 +02:00
+22 -8
View File
@@ -1121,9 +1121,9 @@ prometheus: &prometheus_config
alerting_rules.yml: alerting_rules.yml:
groups: groups:
# Pipeline prospection (métriques poussées au Pushgateway job=prospection en fin de # Pipeline prospection (métriques poussées au Pushgateway job=prospection en fin de
# run). NB : la LIVRAISON des alertes (Alertmanager → Telegram/…) n'est pas encore # run). Livraison : Alertmanager → receiver telegram (chaîne testée live 2026-07-10,
# câblée dans ce cluster — ces règles s'évaluent et sont visibles dans Prometheus # firing + resolved reçus). Visibles aussi dans Prometheus /alerts + le dashboard
# /alerts + le dashboard Grafana « Prospection » (panneau Alertes actives). # Grafana « Prospection » (panneau Alertes actives).
- name: prospection - name: prospection
rules: rules:
- alert: ProspectionRunStale - alert: ProspectionRunStale
@@ -1162,15 +1162,29 @@ prometheus: &prometheus_config
annotations: annotations:
summary: "Prospection — 0 offre (mission) collectée" summary: "Prospection — 0 offre (mission) collectée"
description: "Aucune offre au dernier run : collecte France Travail / Free-Work potentiellement cassée." description: "Aucune offre au dernier run : collecte France Travail / Free-Work potentiellement cassée."
- alert: ProspectionBriefNotSent # Vidéo quotidienne : deux modes d'échec distincts, tous deux gardés contre le
expr: prospection_brief_telegram_pushed == 0 # skip volontaire — metrics.py met brief_rendered=0 aussi quand l'étape est
# SAUTÉE (cadence/kill-switch), seul step_status distingue skip(2) d'erreur(0).
- alert: ProspectionBriefFailed
# PRODUCTION en échec : l'étape brief a tourné mais n'a pas rendu la vidéo.
expr: prospection_brief_rendered == 0 and on(job) prospection_step_status{step="brief"} != 2
for: 15m for: 15m
labels: labels:
severity: info severity: warning
app: prospection app: prospection
annotations: annotations:
summary: "Prospection — brief non poussé sur Telegram" summary: "Prospection — la vidéo du brief quotidien n'a pas été produite"
description: "Le brief vidéo n'a pas été diffusé sur Telegram au dernier run." description: "L'étape brief a échoué au dernier run (rendu vidéo KO : TTS/ffmpeg/PIL ou erreur amont). Voir les logs du CronJob prospection."
- alert: ProspectionBriefNotSent
# LIVRAISON en échec : vidéo produite mais pas poussée sur Telegram.
expr: prospection_brief_telegram_pushed == 0 and prospection_brief_rendered == 1
for: 15m
labels:
severity: warning
app: prospection
annotations:
summary: "Prospection — brief produit mais non poussé sur Telegram"
description: "La vidéo du brief a été rendue mais l'envoi Telegram a échoué (token/chat_id/API). Voir les logs du CronJob prospection."
# groups: # groups:
# - name: Instances # - name: Instances
# rules: # rules: