RousselTMLEARNING

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

Thanos Receive

1. Quand utiliser Receive ? #

Push plutôt que pull.

Cas d'usage #

  • Clusters isolés ou derrière un pare-feu : impossible pour Thanos d'atteindre chaque sidecar.
  • Prometheus en mode agent (--agent) sans stockage local.
  • Multi-tenant : séparer les données de plusieurs équipes ou clients.
  • Intégration avec des sources remote write (OpenTelemetry Collector, Grafana Alloy).
Architecture avec Thanos Receive
La réplication garantit la disponibilité malgré la perte d'un nœud.

2. Déployer Receive #

Un hashring de trois nœuds.

Commande et hashring #

thanos receive \
  --grpc-address=0.0.0.0:10901 \
  --http-address=0.0.0.0:10902 \
  --remote-write.address=0.0.0.0:19291 \
  --tsdb.path=/var/thanos/receive \
  --tsdb.retention=6h \
  --label='receive_replica="0"' \
  --label='receive="true"' \
  --receive.local-endpoint=receive-0:10901 \
  --receive.hashrings-file=/etc/thanos/hashrings.json \
  --receive.replication-factor=2 \
  --objstore.config-file=/etc/thanos/bucket.yml
// hashrings.json
[
  {
    "hashring": "default",
    "tenants": [],
    "endpoints": ["receive-0:10901", "receive-1:10901", "receive-2:10901"]
  }
]

3. Envoyer depuis Prometheus et Alloy #

Remote write et tenants.

Côté producteurs #

# prometheus.yml
remote_write:
  - url: http://receive-0:19291/api/v1/receive
    headers:
      THANOS-TENANT: equipe-a
    queue_config: { max_samples_per_send: 5000, capacity: 20000 }
global:
  external_labels: { cluster: prod-eu }
// Grafana Alloy
prometheus.remote_write "thanos" {
  endpoint {
    url     = "http://receive-0:19291/api/v1/receive"
    headers = { "THANOS-TENANT" = "equipe-a" }
  }
}
# Query doit connaître les Receive
thanos query --endpoint=receive-0:10901 --endpoint=receive-1:10901 --endpoint=receive-2:10901 --query.replica-label=receive_replica
Erreur Courante : Le hashring répartit les séries par hash : toute modification de la liste d'endpoints déplace des séries. Faites évoluer le hashring progressivement et vérifiez la réplication avant de retirer un nœud.

📄 Thanos Receive : ingérer du remote write et gérer le multi-tenant →

Mon suivi

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

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

💬 Questions sur cette leçon

Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.

Poser une question sur cette leçon →

Articles recommandés

Thanos, Grafana Mimir ou VictoriaMetrics : quel stockage long terme pour Prometheus ?

Comparatif détaillé de trois solutions de stockage long terme pour Prometheus : architecture, sto...

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

Comprendre pourquoi et comment utiliser Thanos : limites de Prometheus, composants (Sidecar, Quer...

Thanos Ruler : règles et alertes sur la vue globale

Évaluer des règles d'enregistrement et d'alerte sur l'ensemble des clusters avec Thanos Ruler : c...

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), configurati...

Déployer Thanos sur Kubernetes (kube-prometheus-stack, Helm et Operator)

Installer Thanos sur Kubernetes : sidecar via kube-prometheus-stack, secret objstore, Bitnami/kub...

Bonnes pratiques Thanos : architecture, stockage, requêtes et exploitation

Bonnes pratiques Thanos : adopter les composants progressivement, labels externes, objstore, comp...

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...

Ingérer des métriques dans VictoriaMetrics : scraping, vmagent et remote write

Toutes les façons d'alimenter VictoriaMetrics : remote write depuis Prometheus, scraping intégré,...

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

Configurer Thanos Query : endpoints StoreAPI, déduplication par replica label, partial response, ...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !