Skip to content

docs(infra): add pipeline runbook (TODO-5) - #86

Merged
GMartin-Data merged 1 commit into
mainfrom
docs/pipeline-runbook
May 25, 2026
Merged

GMartin-Data merged 1 commit into
mainfrom
docs/pipeline-runbook

Conversation

@GMartin-Data

Copy link
Copy Markdown
Owner

Contexte

Ce runbook capture les procédures opérationnelles découvertes pendant l'incident D113 du 2026-05-25 (premier run Scheduler post-PR #81 cassé sur env vars manquantes). La méthodologie de diagnostic en 4 steps qui a permis d'isoler la cause racine en ~30 min mérite d'être tracée formellement — sans documentation, ce savoir-faire opérationnel disparaît à la prochaine session.

Absorbe TODO-5 (« runbook minimal docs/runbook.md ») slotté initialement Bloc 2 par la mitigation humaine D109. Scope élargi vs TODO-5 initial : 4 sections au lieu des 3 prévues, le diagnostic Phase 4 est devenu le cœur du document plutôt qu'une section annexe.

Anticipe D28 (docs/ IaC-driven, livrable de soutenance final) — docs/runbook.md rejoint docs/setup.md existant comme deuxième artefact du dossier.

Décisions techniques

Choix Détail
Cible du document docs/runbook.md (versionné, livrable D28) plutôt que ~/explain/ (hors repo) — un runbook est par nature un livrable opérationnel partageable
Niveau de détail Intermédiaire : chaque section explique le pourquoi avant la commande, puis sortie attendue / anormale. Évite la prose longue mais évite aussi le mode "manuel sec"
Choix jq vs python3 -c jq partout, idiomatique pour le manipulation JSON CLI. Plus lisible que les heredocs Python utilisés pendant le diagnostic d'aujourd'hui
Périmètre des commandes 100% lecture seule (describe, list, read, query). Aucune commande destructive ou modifiante

Changements

  • docs/runbook.md créé (250 lignes), 4 sections :
    1. Surveillance hebdomadaire (mitigation D109) — check gcloud scheduler jobs describe chaque lundi après-midi
    2. Diagnostic d'un run cassé (4 steps) — méthodologie validée sur D113 : Cloud Run executions → image deployed → structlog logs filtrés par execution → BigQuery freshness
    3. Alertes automatisées en place — récap D105/D106/D109 + liste explicite des modes de défaillance non-couverts (anti-fausse-confiance)
    4. Référence rapide chemins JSON — aide-mémoire pour gcloud ... --format=json | jq, incluant le piège Knative v1 sur Cloud Run Jobs v2

Validation

Décisions liées

  • D109 — origine de TODO-5 (mitigation humaine pour le trou de couverture scheduler)
  • D110 — décomposition du délai de notification, mentionnée en section 3
  • D113 — incident type qui a donné naissance à ce runbook
  • D28 — stratégie docs/ IaC-driven (anticipe le livrable soutenance)

Refs : TODO-5 absorbé (et étendu), TODO-4 et TODO-8 mentionnés comme extensions futures dans la section "Alertes non couvertes".

Document the operational procedures for monitoring, diagnosing and
verifying the production pipeline. Four sections:

1. Weekly surveillance (mitigation for the D109 coverage gap on
   silent scheduler failures, pending TODO-4 Niveau 2 log-based metric).
2. Diagnostic of a broken run (4-step methodology validated on the
   D113 incident — Cloud Run executions / image deployed / structlog
   logs filtered by execution / BigQuery freshness).
3. Active Cloud Monitoring alerts (D105, D106, D109) + explicit list
   of uncovered failure modes to avoid false confidence.
4. JSON path quick reference for gcloud describe commands, including
   the Knative v1 nesting trap for Cloud Run Jobs v2 resources.

Refs: D109, D110, D113, TODO-5
@GMartin-Data
GMartin-Data merged commit 41145c5 into main May 25, 2026
6 checks passed
@GMartin-Data
GMartin-Data deleted the docs/pipeline-runbook branch May 25, 2026 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant