Vector
Observability-as-Code
Wysokowydajny potok danych observability (logi, metryki, ślady) - deklaratywny, konfiguracja jako kod. Rust.
Vector to napisany w Rust, szybki i lekki potok danych obserwowalności: zbiera logi, metryki i zdarzenia ze źródeł, przetwarza je (parsowanie, filtrowanie, wzbogacanie, redakcja PII) i wysyła do dowolnych sink-ów. Potok opisujesz deklaratywnie (sources → transforms → sinks) w jednym pliku - więc cała logika przepływu telemetrii jest kodem: wersjonowana, testowalna (vector test) i odtwarzalna. Zastępuje cięższe agenty przy niższym zużyciu zasobów.
Kiedy używać
- Chcesz jednego, wydajnego agenta/potoku dla logów i metryk, z transformacjami jako kod.
- Potrzebujesz kontroli nad danymi zanim opuszczą Twoją infrastrukturę (redakcja, sampling, routing).
- Zależy Ci na małym zużyciu CPU/RAM i self-hostingu.
Przykład użycia
# vector.toml - potok jako kod
[sources.app]
type = "file"
include = ["/var/log/app/*.log"]
[transforms.parse]
type = "remap"
inputs = ["app"]
source = '. = parse_json!(.message)'
[sinks.loki]
type = "loki"
inputs = ["parse"]
endpoint = "http://loki:3100"
labels = { job = "web", env = "prod" }
Warto wiedzieć
- Uzupełnia lub zastępuje agenty; do pełnej standaryzacji telemetrii zob. OpenTelemetry Collector.
- Świetnie karmi Loki i inne backendy; transformacje testujesz w CI.
- MPL-2.0, self-hosting; dane redagujesz i kierujesz po swojej stronie (suwerenność, RODO).