- 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 ...
Tekst przetłumaczony przez AI.
Podsumowanie posta wygenerowane przez AI durumis
- Vector to narzędzie do zbierania i przetwarzania logów wydane przez DataDog, opracowane w języku Rust. Oferuje łatwiejszą niż OTel konwersję logów i możliwość deklaratywnego zarządzania.
- Jednakże niedostateczna aktualizacja dokumentacji oficjalnej i brak materiałów źródłowych mogą utrudnić korzystanie z narzędzia. Wdrożenie oparte na Helm wymaga dodatkowych konfiguracji, takich jak customConfig, obsługa logów wielo wierszowych, konfiguracja data_dir oraz obsługa znaków specjalnych.
- W szczególności podczas korzystania z Helm należy zwrócić uwagę na obsługę znaków specjalnych. W kwestii rozważań dotyczących architektury warto zapoznać się z sekcją Topology w dokumentacji oficjalnej.
Dzisiaj zamierzam przedstawić narzędzie o nazwie Vector.
To produkt pochodzący z firmy DataDog.
Pełni rolę podobną do znanych nam narzędzi takich jak promtail czy otel.
Wspiera zbieranie, agregację i transformację logów.
Cechy narzędzia są następujące:
1. Napisane w języku Rust, a nie Golang
2. Łatwiejsze pisanie kodu transformacji logów w porównaniu do otel
3. Możliwość deklaratywnego zarządzania
4. Dobrze napisana oficjalna dokumentacja
Oficjalna strona internetowa wymienia poniższe punkty jako zalety, jednak...
większość z nich jest również wymieniana przez inne narzędzia, dlatego pominąłem je powyżej.
Podczas korzystania z Vectora napotkałem następujące wady:
1. Nieaktualna oficjalna dokumentacja
2. Trudności w wyszukiwaniu powiązanych materiałów
Myślę, że to tyle.
Podczas użytkowania nie napotkałem większych problemów, ale brak odpowiednich materiałów i nieaktualność dokumentacji były dość frustrujące.
Używam wyłącznie Helma, więc przepraszam, że opisuję wszystko z perspektywy Helma 흑....
Następnie tworzymy prosty plik values.yaml i...
Powyższe polecenie pozwoliło mi łatwo zintegrować logi z klastra Kubernetes z Loki.
Podczas tworzenia konfiguracji napotkałem kilka problemów.
Po pierwsze, podczas definiowania customConfig, opcje domyślne są wyłączane, więc trzeba ręcznie zdefiniować źródła (source), transformacje (transform) i odbiorniki (sinks).
Po drugie, ze względu na specyfikę logów Kubernetes, które są zapisywane linijka po linijce, logi wielo-linijkowe (np. ślady błędów) muszą być łączone.
W źródle plików (source.file) dostępna jest opcja obsługi logów wielo-linijkowych, ale w przypadku Kubernetes nie ma takiej opcji.
Wewnętrzna dyskusja zespołu Vector doprowadziła do wniosku, że należy użyć transform.reduce, który to obsługuje.
Po trzecie, oprócz root.data_dir, należy również skonfigurować data_dir wewnątrz custom_config...
Wewnątrz jest umieszczona taka wartość. Jeśli nie zostanie ona skonfigurowana, często pojawiają się błędy braku uprawnień związane z logami... ㅎ
Po czwarte, używałem Helma do wdrożenia, co doprowadziło do nakładania się składni, a w niektórych przypadkach konieczne było użycie znaków specjalnych (escape).
W dokumentacji jest napisane "{{ metadata }}", więc skopiowałem to i wkleiłem, co spowodowało błąd...
Dlatego w Helmie należy koniecznie użyć "{{ {{ metadata }} }}" i zastosować znak specjalny (escape)!
Dodatkowo, jeśli zastanawiasz się nad architekturą, polecam zapoznać się z poniższym artykułem.
https://vector.dev/docs/setup/deployment/topologies/