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"}Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Questions sur cette leçon
Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.
Articles recommandés
Thanos : étendre Prometheus (haute disponibilité, vue globale et rétention longue)
Comprendre pourquoi et comment utiliser Thanos : limites de Prometheus, composants (Sidecar, Quer...
Bonnes pratiques Thanos : architecture, stockage, requêtes et exploitation
Bonnes pratiques Thanos : adopter les composants progressivement, labels externes, objstore, comp...
Mimir : le chemin de lecture (query-frontend, querier, store-gateway et caches)
Comment Mimir répond à une requête PromQL : découpage et cache du query-frontend, file d'attente,...
Mimir : compactor, rétention et stockage objet
Configurer le stockage objet de Mimir (S3, GCS, Azure, MinIO), comprendre la compaction et le spl...
Architecture et déploiement de Grafana Pyroscope
Les composants de Pyroscope (distributor, ingester, querier, store-gateway, compactor), le stocka...
Déployer Thanos sur Kubernetes (kube-prometheus-stack, Helm et Operator)
Installer Thanos sur Kubernetes : sidecar via kube-prometheus-stack, secret objstore, Bitnami/kub...
Thanos, Grafana Mimir ou VictoriaMetrics : quel stockage long terme pour Prometheus ?
Comparatif détaillé de trois solutions de stockage long terme pour Prometheus : architecture, sto...
Loki : stockage, index TSDB, rétention et stockage objet
Configurer le stockage de Loki : chunks, index TSDB, schéma v13, S3/MinIO/GCS, compactor, rétenti...
Thanos Query et Query Frontend : une vue globale et dédupliquée
Configurer Thanos Query : endpoints StoreAPI, déduplication par replica label, partial response, ...