- Remap inspired `reduce` transform to solve multiline merging · Issue #4258 · vectordotdev/vector
- This issue proposes an idea for a new reduce transform that borrows from the new remap transform. The intent is to solve event merging, as well as other reduce-like problems, through robust reduce ...
Testo tradotto dall'IA.
Riepilogo del post generato dall'IA di durumis
- Vector è uno strumento di raccolta ed elaborazione dei log rilasciato da DataDog, sviluppato in Rust. Offre il vantaggio di una facile trasformazione dei log rispetto a OTel e una gestione dichiarativa.
- Tuttavia, la mancanza di aggiornamenti nella documentazione ufficiale e la scarsità di risorse correlate possono rendere difficile l'utilizzo. Durante la distribuzione basata su Helm, sono necessarie configurazioni aggiuntive come la configurazione di customConfig, la gestione dei log multi-riga, la configurazione di data_dir e la gestione delle escape.
- In particolare, con Helm è necessario prestare attenzione alla gestione delle escape. Per quanto riguarda le considerazioni sull'architettura, è consigliabile consultare la sezione Topology della documentazione ufficiale.
Oggi presenterò lo strumento Vector.
È un prodotto sviluppato da DataDog.
Svolge lo stesso ruolo di altri strumenti che conosciamo, come promtail e otel.
Supporta la raccolta, l'aggregazione e la conversione dei log.
Le sue caratteristiche principali sono le seguenti:
1. Scritto in Rust, non in Golang
2. Più facile da scrivere il codice di conversione dei log rispetto a otel
3. Possibilità di gestione dichiarativa
4. Documentazione ufficiale ben scritta
Sebbene sul sito ufficiale vengano evidenziati i seguenti punti di forza...
Credo che la maggior parte di questi vantaggi siano condivisi anche da altri strumenti, quindi li ho esclusi dall'elenco precedente.
Parlando degli svantaggi riscontrati durante l'utilizzo, vorrei menzionare:
1. Documentazione ufficiale non aggiornata
2. Difficoltà nel reperire informazioni correlate
Credo che questi siano i principali aspetti.
Sebbene non abbia riscontrato particolari problemi durante l'utilizzo, ho trovato piuttosto frustrante la mancanza di risorse e la scarsa attenzione all'aggiornamento della documentazione.
Utilizzo solo Helm, quindi mi scuso in anticipo per aver scritto questo articolo focalizzandomi su Helm... 😓
Crea un semplice file values.yaml come quello mostrato di seguito e
Con questo comando, è possibile integrare facilmente i log di Kubernetes con Loki.
Durante la stesura di questo articolo, ho incontrato alcuni problemi.
Il primo problema è che, quando si configura customConfig, le opzioni predefinite vengono disabilitate, quindi è necessario specificare manualmente source, transform e sinks.
Il secondo problema è che, a causa della natura dei log di Kubernetes che vengono inviati riga per riga, i log multi-riga come quelli relativi al tracciamento degli errori devono essere uniti.
Per source.file è disponibile un'opzione relativa ai log multi-riga, ma non per Kubernetes.
Dopo una discussione interna al team di Vector, è emerso che transform.reduce è supportato e che è la soluzione consigliata.
Terzo, è necessario impostare non solo root.data_dir, ma anche data_dir all'interno di custom_config...
Se non viene impostato correttamente, si verifica spesso un errore di mancanza di autorizzazioni relative ai log... 😅
Quarto, ho distribuito l'applicazione utilizzando Helm, quindi ho riscontrato alcuni casi in cui era necessario utilizzare l'escape a causa della sovrapposizione della sintassi.
Nella documentazione, viene mostrato questo esempio "{{ metadata }}", ma applicandolo così com'è si è verificato un errore...
Pertanto, quando si utilizza Helm, è necessario utilizzare l'escape come "{{ {{ metadata }} }}"!
Se avete dubbi sull'architettura, vi consiglio di consultare il seguente articolo.
https://vector.dev/docs/setup/deployment/topologies/