- 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 ...
AI 翻译的文章。
durumis AI 总结的文章
- Vector 是 DataDog 推出的日誌收集和處理工具,基於 Rust 開發,相較於 OTel,Vector 更易於進行日誌轉換,並且支援宣告式管理。
- 但官方文件更新不足,且相關資料缺乏,導致使用時可能遇到困難。此外,基於 Helm 部署時,需要進行 customConfig 設定、多行日誌處理、data_dir 設定、轉義處理等額外設定。
- 特別是在使用 Helm 時,需要注意轉義處理,而關於架構方面的考量,建議參考官方文件中的 Topology 相關內容。
今天要來介紹一個名為 Vector 的工具。
它是 DataDog 推出的產品。
它承擔著我們熟知的 promtail、otel 等工具的功能。
支援日誌收集、彙總和轉換。
其特點如下:
1. 使用 Rust 語言編寫,而非 Golang。
2. 與 otel 相比,編寫日誌轉換程式碼更加方便。
3. 可宣告式管理。
4. 文件撰寫良好。
雖然官方網站將以下列出的內容作為優勢,
但大多數優勢其他工具也都有,因此我在上面省略了這些內容。
此外,在使用過程中我遇到了一些缺點,例如:
1. 官方文件未及時更新。
2. 查找相關資料很困難。
大概就是這些了。
在使用的過程中,我沒有遇到什麼太大的不便,但相關資料的缺乏以及文件更新不及時,確實讓人感到遺憾。
由於我僅使用 helm,因此本文以 helm 為基準進行撰寫,在此先致歉….
然後撰寫以下簡單的 values.yaml 檔案,
透過上述指令,可以輕鬆地將 Kubernetes 中產生的日誌與 Loki 整合。
在撰寫過程中,我遇到了一些問題。
首先,在撰寫 customConfig 時,預設套用的選項都會被停用,因此您需要自行撰寫 source、transform 和 sinks。
其次,由於 Kubernetes 日誌的特性,日誌是以行作為單位輸入的,因此對於錯誤追蹤等多行日誌,需要進行合併。
source.file 中有處理多行日誌的選項,但 Kubernetes 沒有。
經過 Vector 團隊內部的討論,最終決定支援 transform.reduce 並透過它來解決這個問題。
第三,除了 root.data_dir 之外,custom_config 內部的 data_dir 也需要進行設定…
這些值會被儲存在內部,如果沒有設定,就會經常發生與日誌相關的權限不足錯誤… 哈哈。
第四,我使用 helm 進行部署,因此出現了語法重疊的情況,需要進行轉義。
文件上寫著 "{{ metadata }}",我直接照搬就出錯了…
因此,在使用 helm 時,務必將其轉義為 "{{ {{ metadata }} }}"!
此外,如果您對架構有疑問,建議您參考以下文章。
https://vector.dev/docs/setup/deployment/topologies/