thanos query slowness high cardinality metrics

Posté par omarechal le 23/10/2025
RÉSOLU

omarechal

Membre depuis le 03/09/2019

actif

hello tout le monde. notre thanos query frontend galere un peu depuis qu'on a plein de nouveaux services. les dashboards prometheus sont super lents surtout ceux avec des metrics high cardinality. on a pourtant 4 replicas du query-frontend et pas mal de ressources.

Commentaires

stephane-guilbert

Membre depuis le 14/03/2019

actif

c'est classique avec thanos si t'as pas optimisé tes compactions ou tes retentions. t'as configuré le downsampling sur les store gateway

merle-diane

Membre depuis le 20/01/2020

actif

et tes index. si ton index store est lent ou pas assez dimensionné c'est la cata pour thanos query

omarechal

Membre depuis le 03/09/2019

actif

on a du downsampling 5m/1h et les compactions marchent. les store gateway sont ok. c'est surtout quand on fait des requetes sur des labels avec beaucoup de valeurs genre instance_id ou pod_name

victor04

Membre depuis le 27/08/2019

actif secouriste

les high cardinality labels c'est le cancer. thanos doit charger trop de series. t'as essayé de faire du relabeling au scrape pour virer les labels inutiles

stephane-guilbert

Membre depuis le 14/03/2019

actif

ouais relabeling c'est la premiere defense. virer les pod_name container_id etc si pas necessaire pour les dashboards globaux. tu gardes juste app, namespace

ncharrier

Membre depuis le 15/12/2024

et regarde la taille de tes blocs sur s3. trop de petits blocs ou trop de gros peuvent impacter les store gateway. t'es sur s3 pour le bucket

omarechal

Membre depuis le 03/09/2019

actif

oui s3. les blocs sont plutot de taille correcte entre 2h et 6h de données. on voit que les queries qui tapent sur des longues periodes avec des range selectors sont les pires

merle-diane

Membre depuis le 20/01/2020

actif

longues periodes + high card c'est le pire combo. thanos query va devoir merge des milliers de series de plein de blocs differents. t'as activé le query-frontend cache pour les responses

stephane-guilbert

Membre depuis le 14/03/2019

actif

et regarde les logs du query-frontend. t'as des query evaluation took too long ou exceeded max series limit

omarechal

Membre depuis le 03/09/2019

actif

on a bien le cache activé. pas de max series limit mais des query evaluation took too long partout. ptete un souci de parallelisation des requetes vers les store/compactors

victor04

Membre depuis le 27/08/2019

actif secouriste

le query-frontend peut split les requetes sur le temps ou par store pour paralleliser mais si les backends sont eux-memes lents ça aide pas. t'as des metrics de latence sur tes store gateways

stephane-guilbert

Membre depuis le 14/03/2019

actif

essaie de profiler une requete lente avec la thanos UI. tu verras ou le temps est passé. ça te donnera des indices. et check tes ressources cpu/mem sur query-frontend et store-gateways pendant les slow queries

roger-constance

Membre depuis le 24/09/2024

pense aussi au Thanos Ruler si t'as des alertes ou des recordings rules qui tournent. si elles sont mal gaulées ça peut aussi creer du churn inutile et impacter les queries

omarechal

Membre depuis le 03/09/2019

actif

ok j'ai profilé une requete c'est bien la phase "fetch series" qui est le goulot d'etranglement. on va revoir le relabeling plus aggressivement et aussi les options de parallelisation du query-frontend. thx pour les pistes

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