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

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