Exploitation

Reprise après incident

Aucune procédure n'a été éprouvée. Les étapes ci-dessous sont dérivées de la conception du POC, pas d'un incident réel ni d'un exercice.

Principe

L'analytics et l'observabilité sont des systèmes secondaires : leur indisponibilité ne doit jamais dégrader la vitrine. C'est vérifié côté application — l'échec d'un fournisseur est isolé, mis en file puis abandonné, sans exception remontée ni requête métier affectée. Le test de fumée le contrôle.

Conséquence pratique : en cas d'incident, rétablir le site d'abord, la mesure ensuite.

Fournisseur d'analytics injoignable

Rien à faire dans l'urgence. La file applicative accumule jusqu'à 500 événements, réessaie à délai croissant, puis abandonne et compte les pertes. Les événements de cette période sont perdus : c'est une livraison « au mieux », assumée.

À surveiller : droppedExhausted dans AnalyticsClient.getStats().

OpenObserve injoignable

Le collecteur met en tampon puis rejette. L'application n'est pas affectée. Les compteurs Prometheus existants (ops/observability/) continuent de fonctionner : c'est un avantage concret d'avoir gardé les deux piles séparées pendant la comparaison.

Disque plein

Le risque le plus probable, et déjà rencontré sur cette machine dans un autre contexte. Ordre d'action :

  1. Identifier le poste réel — du sans droits root ne voit pas /var/lib/docker.
  2. Réduire la rétention du service le plus volumineux plutôt que supprimer des volumes.
  3. ClickHouse est le plus gros consommateur de la pile.

Perte totale d'un service

  1. Restaurer le volume depuis la sauvegarde (voir backups.md — non mis en place).
  2. Redémarrer le profil correspondant.
  3. Relancer le script de provisionnement : ils sont idempotents et réutilisent l'existant.
  4. Vérifier par pnpm telemetry:test, qui interroge les données.

Perte des identifiants

infra/analytics/compose/.env n'est pas versionné. Sans lui et sans sauvegarde, les jetons sont perdus mais recréables : les scripts de provisionnement régénèrent site, clé et jeton. Les données déjà stockées ne sont pas perdues pour autant.

Ce qu'il reste à faire

Définir RPO et RTO, mettre en place les sauvegardes, et mener un exercice de restauration complet. Tant que cet exercice n'a pas eu lieu, cette page reste une intention.