1. Store Gateway #
Lire l'historique dans le stockage objet.
Lancer le store #
thanos store \
--data-dir=/var/thanos/store \
--objstore.config-file=/etc/thanos/bucket.yml \
--grpc-address=0.0.0.0:10901 \
--http-address=0.0.0.0:10902 \
--index-cache-size=2GB \
--chunk-pool-size=2GB \
--store.limits.request-series=500000 \
--min-time=-90d # ne servir que les 90 derniers jours (partitionnement temporel)# Docker Compose (extrait)
store:
image: quay.io/thanos/thanos:latest
command:
- store
- --data-dir=/var/thanos/store
- --objstore.config-file=/etc/thanos/bucket.yml
- --grpc-address=0.0.0.0:10901
- --http-address=0.0.0.0:10902
volumes: ["./bucket.yml:/etc/thanos/bucket.yml", "store-data:/var/thanos/store"]À savoir : Le Store Gateway ne conserve que l'index léger et les en-têtes sur disque : les données sont lues à la demande dans le stockage objet. Prévoyez un volume persistant pour éviter de tout retélécharger à chaque redémarrage.
2. Compactor #
Compacter, downsampler, supprimer.
Les trois missions #
- Compaction : fusionne les petits blocs de 2 h en blocs plus gros (jusqu'à 14 jours) et déduplique les réplicas verticalement.
- Downsampling : crée des blocs à 5 min puis 1 h (agrégats min, max, sum, count, counter).
- Rétention : supprime les blocs plus anciens que la durée configurée, par résolution.
thanos compact \
--data-dir=/var/thanos/compact \
--objstore.config-file=/etc/thanos/bucket.yml \
--http-address=0.0.0.0:10902 \
--retention.resolution-raw=30d \
--retention.resolution-5m=180d \
--retention.resolution-1h=730d \
--compact.concurrency=2 \
--downsample.concurrency=2 \
--delete-delay=48h \
--wait # tourne en continu (sinon une passe puis arrêt)Erreur Courante : Une seule instance de compactor doit écrire dans un même bucket. Deux compactors simultanés corrompent les blocs. Surveillez thanos_compact_halted : à 1, le compactor s'est arrêté sur une erreur critique.3. Les outils de bucket #
Inspecter et réparer.
thanos tools bucket #
thanos tools bucket ls --objstore.config-file=bucket.yml # lister les blocs
thanos tools bucket inspect --objstore.config-file=bucket.yml # tableau : ULID, plage, résolution, séries, taille
thanos tools bucket verify --objstore.config-file=bucket.yml # vérifier l'intégrité
thanos tools bucket web --objstore.config-file=bucket.yml # interface web des blocs
thanos tools bucket downsample --objstore.config-file=bucket.yml # forcer un downsampling
thanos tools bucket mark --id=<ULID> --marker=deletion-mark.json --details="bloc corrompu" --objstore.config-file=bucket.yml4. Vérifier le résultat #
Que contient le bucket ?
Exemple de sortie #
# Métriques utiles
thanos_compact_group_compactions_total
thanos_compact_downsample_total
thanos_compact_todo_compactions
thanos_blocks_meta_synced{state="loaded"}