RousselTMLEARNING

Observabilité

Thanos : étendre Prometheus (haute disponibilité, vue globale et rétention longue)

Comprendre pourquoi et comment utiliser Thanos : limites de Prometheus, composants (Sidecar, Query, Store Gateway, Compactor, Ruler, Receive), architecture et choix du modèle.

1. Les limites de Prometheus #

Ce que Thanos résout.

Trois besoins #

Limites d'un Prometheus seul
Prometheus est excellent localement ; Thanos le rend global et durable.
BesoinPrometheus seulAvec Thanos
Rétention longueDisque local, quelques semaines/moisAnnées, dans un stockage objet bon marché
Haute disponibilitéDeux instances identiques mais deux jeux de donnéesDéduplication à la lecture : une seule vue
Vue globaleUne requête = un serveurUne requête PromQL sur tous les clusters
CoûtSSD, croît avec la rétentionObjet + downsampling

2. Les composants #

Une boîte à outils modulaire.

Rôles #

Architecture de Thanos
On adopte les composants un par un selon les besoins.
ComposantRôleCommande
SidecarAccolé à Prometheus : expose ses données et téléverse les blocsthanos sidecar
QueryReçoit le PromQL, interroge les StoreAPI, dédupliquethanos query
Query FrontendDécoupe et met en cache les requêtes de plagethanos query-frontend
Store GatewaySert les blocs historiques du stockage objetthanos store
CompactorCompacte, downsample, applique la rétentionthanos compact
RulerÉvalue règles et alertes sur la vue globalethanos rule
ReceiveReçoit du remote write (alternative au sidecar)thanos receive

3. Sidecar ou Receive ? #

Deux façons d'alimenter Thanos.

Choisir son modèle #

CritèreSidecarReceive
PrincipePull : Thanos lit les blocs locaux de PrometheusPush : Prometheus envoie en remote write
RéseauAccès gRPC vers chaque PrometheusUn seul point d'entrée ; clusters isolés
Latence de données récentesDirecte via StoreAPIAprès réception et réplication
Multi-tenantNonOui (en-tête de tenant)
ComplexitéFaiblePlus élevée (hashring, réplication)
Bonne Pratique : Commencez par Sidecar + Query + Store + Compactor : c'est le modèle le plus simple, éprouvé, qui couvre la rétention, la HA et la vue globale.

Premier aperçu en ligne de commande #

thanos --version
thanos --help                      # liste des sous-commandes
thanos sidecar --help | head -30
# Chaque composant expose /-/healthy, /-/ready et /metrics sur son port HTTP (10902 par défaut)

Articles liés

Thanos Sidecar : accoler Thanos à Prometheus et téléverser vers le stockage objet

Mettre en place Thanos Sidecar : réglages Prometheus (external labels, blocs de 2 h), configuration objstore,…

Thanos Query et Query Frontend : une vue globale et dédupliquée

Configurer Thanos Query : endpoints StoreAPI, déduplication par replica label, partial response, interface we…

Thanos Store Gateway et Compactor : historique, downsampling et rétention

Servir l'historique avec le Store Gateway et optimiser le stockage avec le Compactor : compaction, downsampli…

Pour aller plus loin