# Reprise après incident

:::caution
**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](/analytics/exploitation/backups) — 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.
