Explosion des coûts S3 Thanos Compactor

jgimenez 19/05/2024
RÉSOLU
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

salut tout le monde. on est sur Thanos pour l'observabilité et la facture S3 explose littéralement ce mois-ci. j'ai l'impression que le thanos compactor fait n'importe quoi et stocke une tonne de petits objets ou fait trop d'opérations. vous avez déjà eu ce genre de blague?

19/05/2024 à 22:31

18 commentaires

adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

hello! ouais c'est un classique. la plupart du temps c'est lié à ton block-duration dans la config du thanos ruler ou thanos sidecar. il est à combien chez toi?

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

alors... il est à 2h. c'est la config par défaut que j'ai laissée.

21/05/2024 à 14:06
julien93
Membre Actif
Avatar de julien93
julien93
Membre Actif

2h c'est trop court pour des grosses infras et des coûts S3 bas. chaque block c'est un objet S3. plus tu as de blocks, plus tu as d'objets, plus le compactor doit faire d'ops S3 pour les compacter/downsampler. passe à 24h ou 48h.

22/05/2024 à 11:23
adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

exact. moins de blocks = moins de requêtes S3, moins de coûts. et ça réduit aussi la charge CPU/RAM du compactor.

23/05/2024 à 09:19
menard-noemi
Membre Secouriste
Avatar de menard-noemi
menard-noemi
Membre Secouriste

vérifie aussi tes politiques de rétention. si tu gardes trop longtemps les données raw (haute résolution), ça va vite. t'as quoi pour retention.resolution-raw et retention.resolution-5m?

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

retention.resolution-raw est à 7j et retention.resolution-5m à 30j.

Modifié le 23/05/2026 à 16:20
julien93
Membre Actif
Avatar de julien93
julien93
Membre Actif

7j de raw c'est potentiellement trop si t'as une grosse ingeste de metrics. essaie de réduire ça à 2j ou 3j si c'est pas absolument critique pour tes analyses court terme.

Modifié le 23/05/2026 à 16:20
adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

et t'as pas downsampling.disable activé dans ta config par hasard? ça empêche le compactor de créer les agrégats et ça peut aussi influer sur le volume des blocs.

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

non il n'est pas activé. j'ai bien les résolutions différentes.

27/05/2024 à 15:59
julien93
Membre Actif
Avatar de julien93
julien93
Membre Actif

un autre classique qui tue les coûts: la cardinalité. tu as des metrics avec des labels qui changent tout le temps? genre request_id ou des timestamps en label?

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

oh putain... oui on a un service mesh qui met des request_id sur certaines metrics pour du tracing. c'est horrible je sais mais c'est l'équipe dev qui a demandé.

Modifié le 23/05/2026 à 16:20
adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

BOUM! Trouvé! request_id en label c'est un tueur absolu de perf et de coûts. Chaque valeur unique de ce label crée une nouvelle timeseries. Ça génère une explosion de blocks et de métadonnées. C'est la priorité numéro 1 à virer. utilise metric_relabel_configs dans Prometheus pour supprimer ce label avant l'ingestion.

Modifié le 23/05/2026 à 16:20
menard-noemi
Membre Secouriste
Avatar de menard-noemi
menard-noemi
Membre Secouriste

oui le request_id en label c'est la pire chose que tu puisses faire pour Thanos et Prometheus. c'est le truc le plus impactant pour le FinOps.

Modifié le 23/05/2026 à 16:20
julien93
Membre Actif
Avatar de julien93
julien93
Membre Actif

une fois que tu auras viré ce label et augmenté la block-duration, le compactor va commencer à fusionner les petits blocks en plus gros. ça prendra du temps et un peu de ressources, mais la facture S3 diminuera.

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

ok d'acc. je vais faire ça: changer le block-duration à 24h, réduire la retention raw à 2j et surtout, je vais intégrer une metric_relabel_config pour virer ce request_id pourri de nos labels. c'est bon je pense.

Modifié le 23/05/2026 à 16:20
adele-dupre
Membre Actif
Avatar de adele-dupre
adele-dupre
Membre Actif

parfait. une fois les changements appliqués, le compactor va faire son boulot. ça peut prendre plusieurs jours avant de voir un impact significatif sur tes coûts S3 car il doit traiter tout l'historique.

02/06/2024 à 22:09
menard-noemi
Membre Secouriste
Avatar de menard-noemi
menard-noemi
Membre Secouriste

et si t'es sur AWS, pense aux Lifecycle Policies S3 pour transitionner les blocks les plus anciens vers des tiers de stockage moins chers comme Standard-IA ou Glacier Deep Archive après quelques mois. ça peut aider sur la rétention long terme.

Modifié le 23/05/2026 à 16:20
jgimenez
Auteur Actif Rédacteur
Avatar de jgimenez
jgimenez
Auteur Actif Rédacteur

d'acc. je vais surveiller ça de près et mettre en place les policies s3. gros merci les gars pour toutes ces infos super utiles!

04/06/2024 à 17:25

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire