Aller au contenu

Vector - Guide du pipeline haute-performance de données observabilité

Vector - Guide du pipeline haute-performance de données observabilité

Vector (par Datadog, open-source) est un pipeline de données observabilité haute-performance écrit en Rust. Il collecte les logs, métriques, et traces depuis n’importe quelle source, les remet en forme via des transformations, et les livrent à n’importe quel sink — tout agnostique aux fournisseurs, pour que vous puissiez changer les backends sans ré-instrumenter. Il utilise typiquement une fraction du CPU et de la mémoire de Logstash ou Fluentd, ce qui importe quand un agent s’exécute sur chaque nœud.

Installation

MéthodeCommande
Script d’installation`curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.vector.dev
Debian/Ubuntu.deb depuis les releases Vector
macOS (Homebrew)brew install vectordotdev/brew/vector
Dockerdocker run -v $PWD/vector.yaml:/etc/vector/vector.yaml timberio/vector:latest-alpine
Vérifiervector --version

Le modèle : sources → transformations → sinks

# vector.yaml
sources:
  app_logs:
    type: file
    include: ["/var/log/app/*.log"]

transforms:
  parse:
    type: remap
    inputs: ["app_logs"]
    source: |
      . = parse_json!(.message)
      .env = "production"
      del(.password)

sinks:
  out:
    type: elasticsearch
    inputs: ["parse"]
    endpoints: ["http://es:9200"]
StageObjectif
sourcesD’où viennent les données
transformsParser, filtrer, enrichir, redact, agréger
sinksOù vont les données
inputsCâble les composants dans un DAG

Sources courantes

SourceCollecte
fileFichiers log (tailing)
journaldJournal systemd
kubernetes_logsLogs de pod avec métadonnées k8s
docker_logsLogs de conteneur
http_serverEndpoint de push
syslogSyslog sur TCP/UDP
prometheus_scrapeScraper les endpoints de métriques
opentelemetryIngestion OTLP

Sinks courants

SinkEnvoie à
elasticsearchElasticsearch/OpenSearch
lokiGrafana Loki
clickhouseClickHouse
aws_s3S3 (archival)
prometheus_exporterExposer les métriques pour le scraping
datadog_logs / splunk_hecBackends fournisseurs
consolestdout (débogage)
blackholeDiscarder (tests)

VRL (Vector Remap Language)

La transformation remap est où se passe la plupart du travail.

# Parser, enrichir, redact, et jeter le bruit
. = parse_json!(.message)
.timestamp = parse_timestamp!(.ts, "%+")
.service = "checkout"
del(.credit_card)
if .level == "debug" { abort }
Fonction VRLObjectif
parse_json!, parse_regex!, parse_grok!Structurer le texte brut
del(.field)Supprimer un champ (redaction PII)
to_int!, to_float!Coercion de type
abortJeter l’événement
merge, flattenRemodeler les objets

Transformations utiles

TransformationFait
remapRemodelage basé sur VRL (le cheval de trait)
filterGarder les événements correspondant une condition
routeDiviser un flux en branches nommées
aggregateRoll up des métriques sur un intervalle
throttleRate-limiter les événements bruyants
dedupeJeter les duplicatas
sampleGarder un pourcentage des événements

Opérer Vector

CommandeDescription
vector --config vector.yamlExécuter avec une config
vector validateVérifier la config avant le déploiement
vector testExécuter les tests unitaires définis dans la config
vector topTUI live du throughput par composant
vector tap <component>Flux des événements circulant via un composant
--watch-configHot-reload sur changement de config
# Déboguer ce qu'une transformation émèt réellement
vector tap parse

Fiabilité

FeatureNote
Disk buffersSurvivre aux redémarrages/backpressure (buffer.type: disk)
AcknowledgementsGaranties de livraison end-to-end
Adaptive concurrencyTaux de requête sink auto-tuné
Health checksÉchouer vite sur les sinks inaccessibles

Vector vs alternatives

AspectVectorFluent BitLogstash
LangageRustCJRuby/JVM
Utilisation de ressourcesTrès basseTrès basseHaute
Langage de transformationVRL (riche)Lua/filtersRuby/grok
Types de donnéesLogs, métriques, tracesLogs, métriquesLogs
Idéal pourPipelines agnostiques aux fournisseursUltra-light edge agentStacks ELK hérités

Alimenter les sinks comme OpenObserve, Loki, et Elasticsearch ; comparer avec Fluentd.

Ressources