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 fort | Dé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 |
| MetricsQL | Sur-ensemble de PromQL avec des fonctions supplémentaires |
| Écosystème | vmagent, 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 #
| Composant | Port | Rôle |
|---|---|---|
| victoria-metrics (single-node) | 8428 | Ingestion, stockage et requêtes dans un seul processus |
| vmagent | 8429 | Collecte (scrape), relabeling, tampon disque, remote write vers un ou plusieurs stockages |
| vmalert | 8880 | Règles d'enregistrement et d'alerte, envoi à Alertmanager |
| vminsert / vmselect / vmstorage | 8480 / 8481 / 8482 | Version cluster : écriture, lecture et stockage séparés |
| vmbackup / vmrestore | - | Sauvegardes incrémentales vers un stockage objet |
| vmui | /vmui | Interface intégrée d'exploration et d'analyse de cardinalité |
3. Single-node ou cluster ? #
Le nœud unique va loin.
Choisir #
| Critère | Single-node | Cluster |
|---|---|---|
| Volume | Jusqu'à plusieurs millions de séries actives | Au-delà, mise à l'échelle horizontale |
| Disponibilité | Une instance (deux instances en parallèle pour la HA) | Réplication des données |
| Multi-tenant | Non | Oui (identifiant de compte dans l'URL) |
| Exploitation | Très simple | Trois 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é,-retentionPeriods'exprime en mois (-retentionPeriod=12) ; on peut aussi écrire90d,1y. Grafana se connecte avec une source Prometheus pointant vershttp://vm:8428.
