- 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よりもログ変換が容易で、宣言的な管理が可能なという利点があります。
- しかし、公式ドキュメントの最新化不足と関連資料の不足により、使用に苦労する可能性があり、Helmベースのデプロイでは、customConfigの設定、マルチラインログの処理、data_dirの設定、エスケープ処理などの追加設定が必要です。
- 特にHelmを使用する場合は、エスケープ処理に注意する必要があり、アーキテクチャに関する検討は、公式ドキュメントのTopology関連の内容を参照することをお勧めします。
今日は、Vectorというツールを紹介する予定です。
それはDataDogが出している製品です。
私たちが知っているpromtailやotelなどが担っている役割を担っています。
ログの収集と集計、変換をサポートします。
特徴は以下の通りです。
1. Go言語ではなくRustで記述されている。
2. otelと比べて、ログ変換コードを書きやすい。
3. 宣言的に管理可能。
4. よく書かれた公式ドキュメント。
公式ウェブサイトに行くと、以下のような点を長所として挙げていますが
ほとんどの長所は、他のツールも主張している点ではないかと考え、上記では除外しました。
そして、使用してみて感じた短所を話すとすると
1. 最新情報が反映されていない公式ドキュメント。
2. 関連資料を見つけるのが難しい。
このくらいでしょうか。
使用していて大きく不便な点はなかったのですが、関連資料が不足していたり、最新情報が反映されていないものが多く、残念でした。
私はHelmしか使用していないため、Helm基準で記述していることを予めお詫び申し上げます…。
次のようなシンプルなvalues.yamlを作成し
上記のコマンドで、k8sから出力されるログを簡単にLokiと統合することができました。
作成中にいくつかの問題が発生しました。
まず、customConfigを作成する際、デフォルトで適用されていたオプションはすべて無効になるため、source、transform、sinksをすべて自分で記述する必要があります。
2つ目に、k8sのログの特性上、行単位でログが入力されるため、エラートレースなどの複数行のログは結合する必要があります。
source.fileにはマルチラインに関するオプションがありますが、k8sには全くありません。
そして、Vectorチームの内部議論で、transform.reduceをサポートし、それを使ってくださいという結論に至りました。
3つ目に、root.data_dirだけでなく、custom_config内部のdata_dirも設定する必要があるようです…
内部にこのように値が埋め込まれており、設定されていない場合、ログ関連で権限不足エラーが頻繁に発生していました…ㅎ
4つ目に、私はHelmを使ってデプロイを行いましたが、そのため構文が重複する箇所があり、エスケープが必要な場合がありました。
そのため、ドキュメントには「{{ metadata }}」のように記述されているので、そのまま貼り付けたらエラーが発生しました…
そのため、Helmでは必ず「{{ {{ metadata }} }}」のようにエスケープ処理を行う必要があります!
さらに、アーキテクチャに関する悩みがある場合は、以下の記事を参照することをお勧めします。
https://vector.dev/docs/setup/deployment/topologies/