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).
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_replicaErreur 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.
Mon suivi
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.
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, ...