RousselTMLEARNING

Observabilité

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 son tampon disque, relabeling, agrégation en flux, et autres protocoles (InfluxDB, OTLP, Graphite).

1. Depuis Prometheus #

Le stockage long terme en une ligne.

remote_write #

# prometheus.yml
remote_write:
  - url: http://vm:8428/api/v1/write
    queue_config: { max_samples_per_send: 10000, capacity: 20000, max_shards: 30 }

Prometheus garde une rétention courte pour ses alertes locales ; VictoriaMetrics conserve l'historique.

2. Scraper directement #

Sans Prometheus.

promscrape #

VictoriaMetrics et vmagent comprennent le fichier de configuration de Prometheus (scrape_configs, découvertes de services, relabeling) :

victoria-metrics -promscrape.config=/etc/prometheus/prometheus.yml -storageDataPath=/data
# ou, plus courant, avec vmagent
vmagent -promscrape.config=/etc/prometheus/prometheus.yml \
        -remoteWrite.url=http://vm:8428/api/v1/write

Les cibles et leur état s'affichent sur /targets ; /service-discovery montre les labels avant et après relabeling.

3. vmagent #

Un collecteur robuste.

Fonctions #

FonctionOption
Tampon disque si la destination est indisponible-remoteWrite.tmpDataPath, -remoteWrite.maxDiskUsagePerURL
Plusieurs destinations (réplication)plusieurs -remoteWrite.url
Relabeling avant envoi-remoteWrite.urlRelabelConfig
Agrégation en flux-streamAggr.config (réduire la cardinalité avant stockage)
Collecte répartie-promscrape.cluster.membersCount, -promscrape.cluster.memberNum
Réception de protocolesInfluxDB, Graphite, OpenTSDB, OTLP
vmagent \
  -promscrape.config=/etc/vmagent/scrape.yml \
  -remoteWrite.url=http://vm-eu:8428/api/v1/write \
  -remoteWrite.url=http://vm-us:8428/api/v1/write \
  -remoteWrite.tmpDataPath=/var/lib/vmagent \
  -remoteWrite.maxDiskUsagePerURL=10GB
Bonne Pratique : vmagent remplace souvent Prometheus en mode agent : moins de mémoire, tampon disque persistant et réplication native vers plusieurs stockages.

Agrégation en flux #

# stream-aggr.yml : remplacer les séries par instance par un total par service
- match: 'http_requests_total'
  interval: 1m
  by: [service, code]
  outputs: [total]

Le résultat (http_requests_total:1m_by_code_service_total) est envoyé à la place ou en plus des séries brutes : utile pour des métriques à très forte cardinalité dont seul l'agrégat est consulté.

4. Autres protocoles #

Une porte d'entrée universelle.

Exemples #

# InfluxDB line protocol
curl -d 'cpu,host=web-1 usage=42.5' http://vm:8428/write
# Import au format Prometheus texte
curl -d 'temperature{salle="serveur"} 21.5' http://vm:8428/api/v1/import/prometheus
# OpenTelemetry (OTLP HTTP, métriques)
#   http://vm:8428/opentelemetry/v1/metrics
# Export pour sauvegarde ou migration
curl -s 'http://vm:8428/api/v1/export?match[]={__name__="temperature"}'

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…

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 !