RousselTMLEARNING

Observabilité

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

Ce qu'apporte VictoriaMetrics par rapport à Prometheus seul, ses composants (single-node, vmagent, vmalert, cluster vminsert/vmselect/vmstorage) et ses points forts : sobriété, compatibilité et simplicité.

1. Pourquoi VictoriaMetrics ? #

Une base de séries temporelles économe.

Les promesses #

VictoriaMetrics est une base de séries temporelles compatible Prometheus (ingestion par remote write, API de requête, PromQL), conçue pour consommer peu de mémoire, de CPU et de disque. Elle s'utilise comme stockage long terme de Prometheus ou comme remplaçant complet.

Point fortDétail
SobriétéCompression très efficace (souvent moins d'un octet par échantillon), faible mémoire par série active
SimplicitéUn binaire sans dépendance pour le mode single-node, stockage sur disque local
CompatibilitéPrometheus remote write, API Prometheus, Graphite, InfluxDB, OpenTSDB, OTLP, DataDog
MetricsQLSur-ensemble de PromQL avec des fonctions supplémentaires
Écosystèmevmagent, vmalert, vmbackup, opérateur Kubernetes, VictoriaLogs pour les logs
À savoir : VictoriaMetrics est open source (Apache 2.0). Une version entreprise ajoute notamment le downsampling, les filtres de rétention par série et des fonctions de sécurité.

2. Les composants #

Chacun son rôle.

Vue d'ensemble #

Composants de VictoriaMetrics
vmagent et vmalert fonctionnent aussi avec n'importe quel stockage compatible remote write.
ComposantPortRôle
victoria-metrics (single-node)8428Ingestion, stockage et requêtes dans un seul processus
vmagent8429Collecte (scrape), relabeling, tampon disque, remote write vers un ou plusieurs stockages
vmalert8880Règles d'enregistrement et d'alerte, envoi à Alertmanager
vminsert / vmselect / vmstorage8480 / 8481 / 8482Version cluster : écriture, lecture et stockage séparés
vmbackup / vmrestore-Sauvegardes incrémentales vers un stockage objet
vmui/vmuiInterface intégrée d'exploration et d'analyse de cardinalité

3. Single-node ou cluster ? #

Le nœud unique va loin.

Choisir #

CritèreSingle-nodeCluster
VolumeJusqu'à plusieurs millions de séries activesAu-delà, mise à l'échelle horizontale
DisponibilitéUne instance (deux instances en parallèle pour la HA)Réplication des données
Multi-tenantNonOui (identifiant de compte dans l'URL)
ExploitationTrès simpleTrois composants à dimensionner
Bonne Pratique : Commencez par le single-node : il couvre la grande majorité des besoins et se migre vers le cluster (vmctl) si nécessaire.

4. Démarrer #

Une commande.

Lancement #

docker run -d --name vm -p 8428:8428 -v vmdata:/victoria-metrics-data \
  victoriametrics/victoria-metrics:latest \
  -retentionPeriod=1y -storageDataPath=/victoria-metrics-data
curl -s localhost:8428/health
# Interface : http://localhost:8428/vmui
À savoir : Sans unité, -retentionPeriod s'exprime en mois (-retentionPeriod=12) ; on peut aussi écrire 90d, 1y. Grafana se connecte avec une source Prometheus pointant vers http://vm:8428.

Articles liés

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…

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éplicati…

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 !