Pular para o conteúdo

Vector - Pipeline de Dados de Observabilidade de Alto Desempenho - Guia de Referência

Vector - Pipeline de Dados de Observabilidade de Alto Desempenho - Guia de Referência

Vector (por Datadog, código aberto) é um pipeline de dados de observabilidade de alto desempenho escrito em Rust. Ele coleta logs, métricas e traces de qualquer origem, os reformula através de transformações e os entrega a qualquer destino — tudo agnóstico de fornecedor, então você pode trocar backends sem re-instrumentar. Tipicamente usa uma fração do CPU e memória de Logstash ou Fluentd, o que importa quando um agente roda em todo nó.

Instalação

MétodoComando
Script de instalação`curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.vector.dev
Debian/Ubuntu.deb de releases Vector
macOS (Homebrew)brew install vectordotdev/brew/vector
Dockerdocker run -v $PWD/vector.yaml:/etc/vector/vector.yaml timberio/vector:latest-alpine
Verificarvector --version

O Modelo: Origens → Transformações → Destinos

# 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"]
EstágioPropósito
sourcesDe onde dados vêm
transformsParse, filtro, enriquecimento, redação, agregação
sinksPara onde dados vão
inputsFios de componentes em um DAG

Origens Comuns

OrigemColeta
fileArquivos de log (tailing)
journaldDiário systemd
kubernetes_logsLogs de pod com metadados k8s
docker_logsLogs de container
http_serverEndpoint de push
syslogSyslog sobre TCP/UDP
prometheus_scrapeScrape de endpoints de métricas
opentelemetryIngestão OTLP

Destinos Comuns

DestinoEnvia para
elasticsearchElasticsearch/OpenSearch
lokiGrafana Loki
clickhouseClickHouse
aws_s3S3 (arquivamento)
prometheus_exporterExpor métricas para scrape
datadog_logs / splunk_hecBackends de fornecedor
consolestdout (debug)
blackholeDescartar (testes)

VRL (Vector Remap Language)

A transformação remap é onde a maioria do trabalho acontece.

# Parse, enriquecimento, redação e drop de ruído
. = parse_json!(.message)
.timestamp = parse_timestamp!(.ts, "%+")
.service = "checkout"
del(.credit_card)
if .level == "debug" { abort }
Função VRLPropósito
parse_json!, parse_regex!, parse_grok!Estruturar texto bruto
del(.field)Remover um campo (redação de PII)
to_int!, to_float!Coerção de tipo
abortDescartar o evento
merge, flattenReformatar objetos

Transformações Úteis

TransformaçãoFaz
remapReformulação baseada em VRL (a workhorse)
filterManter eventos correspondendo a uma condição
routeDividir um stream em ramos nomeados
aggregateAgregar métricas ao longo de um intervalo
throttleTaxa-limite de eventos ruidosos
dedupeDescartar duplicados
sampleManter uma porcentagem de eventos

Operando Vector

ComandoDescrição
vector --config vector.yamlExecutar com uma config
vector validateVerificar config antes de implantar
vector testExecutar testes unitários definidos na config
vector topTUI ao vivo de throughput por componente
vector tap <component>Stream de eventos fluindo através de um componente
--watch-configHot-reload em mudança de config
# Debug o que uma transformação realmente está emitindo
vector tap parse

Confiabilidade

RecursoNota
Buffers de discoSobreviver restarts/backpressure (buffer.type: disk)
ConfirmaçõesGarantias de entrega fim-a-fim
Concorrência adaptativaAuto-tune da taxa de requisição de sink
Verificações de saúdeFalhar rápido em sinks inalcançáveis

Vector vs Alternativas

AspectoVectorFluent BitLogstash
LinguagemRustCJRuby/JVM
Uso de recursoMuito baixoMuito baixoAlto
Linguagem de transformaçãoVRL (rico)Lua/filtrosRuby/grok
Tipos de dadosLogs, métricas, tracesLogs, métricasLogs
Melhor paraPipelines agnósticos de fornecedorAgente ultra-leve edgeStacks ELK legadas

Alimenta destinos como OpenObserve, Loki e Elasticsearch; compare com Fluentd.

Recursos