RousselTMLEARNING

Observabilité

VictoriaMetrics en cluster : vminsert, vmselect, vmstorage et multi-tenant

L'architecture cluster de VictoriaMetrics : rôle de vminsert, vmselect et vmstorage, répartition et réplication des données, URL multi-tenant, dimensionnement et haute disponibilité.

1. Architecture #

Trois composants, un seul avec état.

Rôles #

Cluster VictoriaMetrics
Les vmstorage ne se parlent pas entre eux : l'architecture est volontairement simple.
ComposantÉtatRôle
vminsertSans étatReçoit les écritures et répartit les séries entre les vmstorage (hachage cohérent)
vmstorageAvec état (disque)Stocke les données ; ne connaît pas les autres vmstorage
vmselectSans état (cache)Interroge tous les vmstorage et fusionne les résultats
vmstorage -storageDataPath=/data -retentionPeriod=1y
vminsert  -storageNode=vmstorage-1:8400,vmstorage-2:8400,vmstorage-3:8400
vmselect  -storageNode=vmstorage-1:8401,vmstorage-2:8401,vmstorage-3:8401

2. Multi-tenant #

Le tenant est dans l'URL.

URL #

UsageURL
Écriturehttp://vminsert:8480/insert/<accountID>/prometheus/api/v1/write
Lecture (source Grafana)http://vmselect:8481/select/<accountID>/prometheus
Tenant et projet<accountID>:<projectID>, par exemple 42:1

Les tenants sont créés implicitement à la première écriture. Comme pour Mimir, l'authentification est déléguée à une passerelle (vmauth dans l'écosystème VictoriaMetrics) qui associe chaque utilisateur à son URL.

# vmauth : routage authentifié vers les tenants
users:
  - username: equipe-web
    password: secret-web
    url_prefix: http://vmselect:8481/select/1/prometheus
  - username: equipe-data
    password: secret-data
    url_prefix: http://vmselect:8481/select/2/prometheus

3. Réplication et disponibilité #

Survivre à la perte d'un nœud.

Réglages #

vminsert -replicationFactor=2 -storageNode=...      # chaque échantillon sur 2 vmstorage
vmselect -replicationFactor=2 -dedup.minScrapeInterval=1ms -storageNode=...
SituationComportement
Un vmstorage indisponible, sans réplicationLes écritures sont redirigées vers les autres ; les lectures renvoient des résultats partiels (signalés)
Un vmstorage indisponible, réplication 2Lectures complètes
vminsert ou vmselect indisponibleAucun impact s'il y a plusieurs instances derrière un répartiteur
Bonne Pratique : La réplication double le disque nécessaire. Pour beaucoup d'équipes, deux clusters indépendants alimentés par vmagent (deux -remoteWrite.url) offrent une meilleure résilience pour un coût comparable.

Articles liés

VictoriaMetrics : pourquoi et comment, du nœud unique au cluster

Ce qu'apporte VictoriaMetrics par rapport à Prometheus seul, ses composants (single-node, vmagent, vmalert, c…

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é, vmagent et …

MetricsQL : PromQL avec des super-pouvoirs

Les différences entre MetricsQL et PromQL : fenêtres implicites, fonctions supplémentaires (range, rollup, la…

Pour aller plus loin

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 !