- 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 ...
Bài viết được dịch bởi AI.
Bài viết được tóm tắt bởi durumis AI
- Vector là một công cụ thu thập và xử lý nhật ký được phát hành bởi DataDog, được phát triển dựa trên Rust, mang đến ưu điểm dễ dàng chuyển đổi nhật ký hơn OTel và có thể quản lý theo kiểu khai báo.
- Tuy nhiên, việc cập nhật tài liệu chính thức chậm và thiếu tài liệu tham khảo có thể gây khó khăn cho người dùng. Khi triển khai dựa trên Helm, bạn cần cấu hình thêm customConfig, xử lý nhật ký đa dòng, cấu hình data_dir, xử lý thoát ký tự, v.v.
- Đặc biệt, khi sử dụng Helm, bạn cần lưu ý đến việc xử lý thoát ký tự. Đối với những vấn đề liên quan đến kiến trúc, bạn nên tham khảo nội dung liên quan đến Topology trong tài liệu chính thức.
Hôm nay, tôi sẽ giới thiệu về một công cụ có tên là Vector.
Đó là sản phẩm được phát hành bởi DataDog.
Nó đảm nhận vai trò tương tự như những gì promtail, otel và các công cụ khác mà chúng ta biết đang làm.
Cụ thể là hỗ trợ thu thập, tổng hợp và chuyển đổi log.
Các tính năng chính của nó như sau:
1. Được viết bằng rust thay vì golang
2. Viết mã chuyển đổi log dễ dàng hơn so với otel
3. Có thể quản lý một cách khai báo
4. Tài liệu hướng dẫn chính thức được viết rất tốt
Mặc dù trang web chính thức đưa ra những điểm mạnh như bên dưới,
nhưng tôi thấy rằng hầu hết những ưu điểm này cũng được các công cụ khác đưa ra, vì vậy tôi đã loại bỏ chúng ở phần trên.
Và khi sử dụng, tôi đã gặp phải một số nhược điểm sau:
1. Tài liệu chính thức chưa được cập nhật đầy đủ.
2. Khó tìm kiếm tài liệu liên quan.
Tôi nghĩ đó là những điểm cần lưu ý.
Trong quá trình sử dụng, tôi không gặp phải vấn đề gì quá nghiêm trọng, nhưng việc thiếu tài liệu liên quan và việc cập nhật chưa đầy đủ khiến tôi cảm thấy khá tiếc nuối.
Tôi xin lỗi vì chỉ sử dụng helm và viết dựa trên helm thôi... 흑....
Sau đó, hãy tạo một tệp values.yaml đơn giản như sau:
Thông qua lệnh trên, tôi đã có thể tích hợp log từ k8s với loki một cách đơn giản.
Trong quá trình thực hiện, tôi đã gặp phải một vài vấn đề.
Đầu tiên, khi cấu hình customConfig, các tùy chọn mặc định sẽ bị vô hiệu hóa, vì vậy bạn cần phải tự cấu hình source, transform và sinks.
Thứ hai, do đặc điểm của log k8s là dựa trên dòng, nên các log nhiều dòng (ví dụ như log theo dõi lỗi) cần được hợp nhất.
Đối với source.file, có tùy chọn multiline, nhưng đối với k8s thì không có.
Sau khi thảo luận nội bộ nhóm Vector, họ đã đưa ra kết luận rằng transform.reduce có thể hỗ trợ và khuyến nghị sử dụng nó.
Thứ ba, không chỉ root.data_dir mà custom_config cũng cần phải cài đặt data_dir...
Giá trị được ghi bên trong, nếu không được cấu hình, lỗi liên quan đến quyền truy cập log sẽ thường xuyên xảy ra... ㅎ
Thứ tư, tôi đã sử dụng helm để triển khai, vì vậy có một số cú pháp trùng lặp và cần phải thoát khỏi chúng.
Trong tài liệu, nó được viết là "{{ metadata }}", vì vậy tôi đã dán trực tiếp và gặp lỗi...
Vì vậy, khi sử dụng helm, bạn cần phải thoát khỏi nó như "{{ {{ metadata }} }}"!
Ngoài ra, nếu bạn đang phân vân về kiến trúc, tôi khuyên bạn nên tham khảo bài viết sau:
https://vector.dev/docs/setup/deployment/topologies/