RousselTMLEARNING

Article · Thanos : de la découverte à l'expertise

Exploiter Thanos

1. Superviser Thanos #

Les signaux indispensables.

Métriques et alertes clés #

ComposantMétriqueAlerte si...
Sidecarthanos_shipper_uploads_failed_totalEn augmentation
Sidecarthanos_sidecar_prometheus_up= 0
Querythanos_store_nodes_grpc_connectionsMoins de stores qu'attendu
Querygrpc_server_handled_total{grpc_code!="OK"}Taux d'erreurs élevé
Storethanos_bucket_store_series_blocks_queriedTrès élevé (requêtes coûteuses)
Compactorthanos_compact_halted= 1
Compactorthanos_compact_todo_compactionsCroissant sans fin
Rulerprometheus_rule_evaluation_failures_total> 0
# Dashboards et alertes officiels
git clone https://github.com/thanos-io/thanos && cd thanos/mixin
jb install && make build

# Alertes minimales
- alert: ThanosCompactHalted
  expr: thanos_compact_halted == 1
  for: 5m
  labels: { severity: critical }
- alert: ThanosSidecarNoUpload
  expr: increase(thanos_shipper_uploads_total[6h]) == 0
  for: 30m
  labels: { severity: warning }

2. Performances #

Requêtes rapides sur de longues périodes.

Downsampling et caches #

Points lus selon la résolution
Avec --query.auto-downsampling, Query choisit la résolution adaptée au pas du graphe.
# Query : résolution automatique + limites de protection
thanos query --query.auto-downsampling --query.max-concurrent=20 --query.timeout=2m \
  --store.response-timeout=30s --query.default-evaluation-interval=1m

# Store : caches
thanos store --index-cache.config-file=index-cache.yml --store.caching-bucket.config-file=caching-bucket.yml

# index-cache.yml
type: MEMCACHED
config:
  addresses: [memcached:11211]
  max_async_buffer_size: 10000
Bonne Pratique : Utilisez des recording rules pour les requêtes de dashboard lourdes : le Ruler ou Prometheus les précalcule, ce qui évite de lire de gros volumes historiques à chaque affichage.

3. Dépannage #

Les erreurs fréquentes.

Tableau de diagnostic #

SymptômeCause probableAction
Pas de blocs dans le bucketCompaction locale active ou sidecar sans accès au TSDBVérifier les flags de blocs 2 h et le volume partagé
Séries dupliquées dans GrafanaReplica label non configuréAjouter --query.replica-label
« expanding series: context deadline exceeded »Requête trop largeRéduire la plage, utiliser le downsampling, augmenter les timeouts
Données manquantes sur une périodeStore Gateway pas à jour ou --min-time trop récentVérifier thanos_blocks_meta_synced
Compactor arrêté (halted)Blocs qui se chevauchent / corrompusthanos tools bucket verify --repair après analyse
Utilisation mémoire élevée du storeTrop de séries retournéesLimiter --store.limits.request-series et ajouter du cache
thanos tools bucket verify --objstore.config-file=bucket.yml --issues=overlapped_blocks,index_known_issues
curl -s localhost:10902/-/healthy; curl -s localhost:10902/-/ready
journalctl -u thanos-compact -n 100 --no-pager | grep -i error

4. Thanos face aux alternatives #

Choisir en connaissance de cause.

Comparatif #

SolutionModèlePoints fortsPoints d'attention
ThanosComposants autour de Prometheus (sidecar / receive)Adoption progressive, simple, communauté CNCFPlusieurs composants à opérer
Grafana MimirTSDB distribuée multi-tenant (remote write)Très grande échelle, performances, simplicité d'usageRemplace le stockage local, plus de ressources
CortexAncêtre de MimirÉprouvéMimir est son successeur recommandé
VictoriaMetricsTSDB indépendante compatible PromQLTrès économe en ressourcesÉcosystème et licences différents
Bonne Pratique : Thanos est idéal si vous avez déjà des Prometheus à conserver et voulez ajouter rétention, HA et vue globale sans tout migrer. Pour une plateforme multi-tenant à très grande échelle, évaluez Mimir.

📄 Exploiter Thanos : supervision, performances, dépannage et alternatives →

Mon suivi

  • ⏱ Durée estimée : ≈ 6 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Articles recommandés

Comprendre la notion de score

Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...

Comprendre Elastic Common Schema(ECS)

Comme toujours dans nos missions de conseil, nous recommandons aux entreprises d'uniformiser, de ...

Grail : Dynatrace Data Lakehouse

Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...

C'est quoi l'observabilité

La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...

Les types de transactions dans les base de données

Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...

Différences entre Technologies et Services dans Dynatrace

Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...

Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions

Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...

Types de consommation de licence

Comprendre l'évolution de la facturation dans Dynatrace : la différence entre l'ancien modèle de ...

Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative

Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...