- 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 ...
Dit is een door AI vertaalde tekst.
Samenvatting van de tekst door durumis AI
- Vector is een log-verzamel- en verwerkingshulpmiddel dat door DataDog is uitgebracht. Het is ontwikkeld in Rust en biedt, in vergelijking met OTel, een eenvoudigere logtransformatie en declaratieve beheerbaarheid.
- De officiële documentatie is echter niet altijd up-to-date en er zijn weinig gerelateerde bronnen beschikbaar, wat het gebruik ervan kan bemoeilijken. Bij implementatie met Helm zijn extra configuraties nodig, zoals customConfig-instellingen, multiline-logverwerking, data_dir-instellingen en escape-verwerking.
- Vooral bij het gebruik van Helm is het belangrijk om rekening te houden met escape-verwerking. Voor architectuurgerelateerde vragen is het raadzaam om de Topology-gerelateerde informatie in de officiële documentatie te raadplegen.
Vandaag ga ik de tool Vector introduceren.
Het is een product van DataDog.
Het vervult dezelfde rol als promtail, otel en andere tools die we kennen.
Het ondersteunt log verzameling, aggregatie en transformatie.
De kenmerken zijn als volgt:
1. Geschreven in Rust in plaats van Golang
2. Makkelijker om log transformatiecode te schrijven dan bij otel
3. Declaratief beheerbaar
4. Goed geschreven officiële documentatie
Op de officiële website worden de volgende punten als voordelen genoemd, maar...
Ik vind dat de meeste voordelen ook door andere tools worden genoemd, dus ik heb ze hierboven weggelaten.
En als ik de nadelen noem die ik tijdens het gebruik heb ondervonden, dan zijn dat:
1. Niet bijgewerkte officiële documentatie
2. Moeilijk om gerelateerde informatie te vinden
Dat denk ik.
Ik heb geen grote problemen ondervonden tijdens het gebruik, maar ik vond het jammer dat er weinig gerelateerde informatie beschikbaar was en de documentatie niet up-to-date was.
Ik gebruik alleen helm, dus ik schrijf alles vanuit helm-perspectief. Excuses daarvoor....
Maak vervolgens een eenvoudige values.yaml en...
Met bovenstaande commando's kon ik de logs van k8s eenvoudig integreren met Loki.
Tijdens het schrijven van bovenstaande heb ik een paar problemen ondervonden.
Ten eerste, wanneer u customConfig schrijft, worden alle standaardopties uitgeschakeld. U moet dus source, transform en sinks zelf schrijven.
Ten tweede, vanwege de eigenschappen van k8s-logs, komen de logs regel voor regel binnen. Daarom moeten multiline-logs, zoals error traces, worden samengevoegd.
Voor source.file is er een multiline-optie, maar voor k8s is er geen enkele.
Na interne discussie binnen het Vector-team bleek dat transform.reduce ondersteund wordt en dat we dat moeten gebruiken.
Ten derde, u moet niet alleen root.data_dir instellen, maar ook data_dir binnen custom_config...
Als de waarde hier niet is ingesteld, krijgt u vaak fouten over onvoldoende rechten met betrekking tot logs... ㅎ
Ten vierde, ik heb helm gebruikt voor de implementatie, en daardoor zijn er soms dubbele syntaxis, waardoor escape nodig is.
In de documentatie staat het bijvoorbeeld als "{{ metadata }}", maar als ik dat zo kopieer, krijg ik een foutmelding...
Dus bij helm moet u het altijd escapen als "{{ {{ metadata }} }}"!
Als u vragen heeft over de architectuur, raad ik u aan om het volgende artikel te lezen.
https://vector.dev/docs/setup/deployment/topologies/