feat(monitoring): dashboard Grafana + règles d'alerte prospection
Helm Charts / Detect changed charts (push) Successful in 22s
Helm Charts / Library charts tool (push) Has been skipped
Helm Charts / Application charts pgcat (push) Has been skipped
Helm Charts / Detect changed charts (pull_request) Successful in 21s
Helm Charts / Library charts tool (pull_request) Has been skipped
Helm Charts / Application charts pgcat (pull_request) Has been skipped
Helm Charts / Detect changed charts (push) Successful in 22s
Helm Charts / Library charts tool (push) Has been skipped
Helm Charts / Application charts pgcat (push) Has been skipped
Helm Charts / Detect changed charts (pull_request) Successful in 21s
Helm Charts / Library charts tool (pull_request) Has been skipped
Helm Charts / Application charts pgcat (pull_request) Has been skipped
Consomme les métriques poussées par le pipeline prospection au Pushgateway (job=prospection, déjà scrapé). Additif — n'affecte aucun dashboard existant. - grafana : provider + dashboard « Prospection — pipeline BI missions » inliné (grafana.dashboards.prospection, json) — vue d'ensemble (fraîcheur/statut/durée/ erreurs/missions/score), collecte par étape (table + historique), modèle de données (opportunités A/B, offres/entités), livraison (brief/Telegram) + panneau Alertes actives. Inline plutôt que ConfigMap externe : grafana est déployé via un HelmChart CRD (tool lib), l'inline évite toute hypothèse de namespace. - prometheus : groupe d'alertes `prospection` (serverFiles.alerting_rules.yml) — RunStale (>25h), RunFailed, StepError, NoOffers, BriefNotSent. NB : la livraison des alertes (Alertmanager → Telegram) n'est pas câblée dans le cluster (server.alertmanagers vide, aucun receiver) ; les règles restent visibles dans Prometheus /alerts + le dashboard. Câblage delivery = décision séparée. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
+53
-1
@@ -1115,7 +1115,59 @@ prometheus: &prometheus_config
|
||||
serverFiles:
|
||||
## Alerts configuration
|
||||
## Ref: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
|
||||
alerting_rules.yml: {}
|
||||
alerting_rules.yml:
|
||||
groups:
|
||||
# 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
|
||||
# câblée dans ce cluster — ces règles s'évaluent et sont visibles dans Prometheus
|
||||
# /alerts + le dashboard Grafana « Prospection » (panneau Alertes actives).
|
||||
- name: prospection
|
||||
rules:
|
||||
- alert: ProspectionRunStale
|
||||
expr: time() - prospection_run_timestamp_seconds > 90000 # > 25 h (cron quotidien)
|
||||
for: 10m
|
||||
labels:
|
||||
severity: warning
|
||||
app: prospection
|
||||
annotations:
|
||||
summary: "Prospection — aucun run réussi depuis plus de 25 h"
|
||||
description: "Dernier run réussi il y a {{ $value | humanizeDuration }} ; le CronJob quotidien (~06:30 UTC) n'a pas abouti."
|
||||
- alert: ProspectionRunFailed
|
||||
expr: prospection_run_success == 0
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
app: prospection
|
||||
annotations:
|
||||
summary: "Prospection — le dernier run a échoué"
|
||||
description: "prospection_run_success=0 : toutes les collectes ont échoué au dernier run."
|
||||
- alert: ProspectionStepError
|
||||
expr: prospection_step_status == 0
|
||||
for: 5m
|
||||
labels:
|
||||
severity: info
|
||||
app: prospection
|
||||
annotations:
|
||||
summary: "Prospection — étape {{ $labels.step }} en erreur"
|
||||
description: "L'étape {{ $labels.step }} du pipeline a fini en erreur au dernier run."
|
||||
- alert: ProspectionNoOffers
|
||||
expr: prospection_offers_total == 0
|
||||
for: 15m
|
||||
labels:
|
||||
severity: warning
|
||||
app: prospection
|
||||
annotations:
|
||||
summary: "Prospection — 0 offre (mission) collectée"
|
||||
description: "Aucune offre au dernier run : collecte France Travail / Free-Work potentiellement cassée."
|
||||
- alert: ProspectionBriefNotSent
|
||||
expr: prospection_brief_telegram_pushed == 0
|
||||
for: 15m
|
||||
labels:
|
||||
severity: info
|
||||
app: prospection
|
||||
annotations:
|
||||
summary: "Prospection — brief non poussé sur Telegram"
|
||||
description: "Le brief vidéo n'a pas été diffusé sur Telegram au dernier run."
|
||||
# groups:
|
||||
# - name: Instances
|
||||
# rules:
|
||||
|
||||
Reference in New Issue
Block a user