c'est classique avec thanos si t'as pas optimisé tes compactions ou tes retentions. t'as configuré le downsampling sur les store gateway
et tes index. si ton index store est lent ou pas assez dimensionné c'est la cata pour thanos query
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
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
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
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
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
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
et regarde les logs du query-frontend. t'as des query evaluation took too long ou exceeded max series limit
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
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
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
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
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
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
omarechal
Membre depuis le 03/09/2019actif
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.