- 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 द्वारा सारांशित पोस्ट
- वेक्टर DataDog द्वारा जारी किया गया एक लॉग संग्रह और प्रसंस्करण उपकरण है, जो Rust पर आधारित है और OTel की तुलना में लॉग रूपांतरण के लिए आसान और घोषणात्मक प्रबंधन की सुविधा प्रदान करता है।
- हालांकि, आधिकारिक दस्तावेज़ के अपडेट की कमी और संबंधित सामग्रियों की अनुपस्थिति के कारण उपयोग में कठिनाई हो सकती है, और हेलम-आधारित परिनियोजन के लिए customConfig सेटिंग, बहु-पंक्ति लॉग प्रसंस्करण, data_dir सेटिंग, एस्केप प्रसंस्करण आदि जैसे अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है।
- विशेष रूप से, हेलम का उपयोग करते समय एस्केप प्रसंस्करण पर ध्यान देना चाहिए, और आर्किटेक्चर से संबंधित चिंताओं के लिए, आधिकारिक दस्तावेज़ में टोपोलॉजी से संबंधित सामग्री का संदर्भ लेना उचित है।
आज हम Vector नाम के टूल के बारे में बताने वाले हैं।
यह DataDog द्वारा बनाया गया उत्पाद है।
यह promtail, otel आदि जैसे टूल के समान कार्य करता है।
यह लॉग एकत्रित करने, संसाधित करने और परिवर्तित करने में मदद करता है।
इसकी कुछ खास बातें इस प्रकार हैं:
1. यह golang की बजाय rust में बनाया गया है।
2. otel की तुलना में लॉग परिवर्तन कोड लिखना आसान है।
3. इसे घोषणात्मक रूप से प्रबंधित किया जा सकता है।
4. इसका दस्तावेज़ बहुत अच्छा है।
हालांकि, आधिकारिक वेबसाइट पर नीचे दिए गए बिंदुओं को इसके फायदे के रूप में बताया गया है, लेकिन
मुझे लगता है कि ये फायदे अन्य टूल में भी मिलते हैं, इसलिए मैंने ऊपर इनका उल्लेख नहीं किया है।
इसका उपयोग करते समय मुझे कुछ कमियां भी नज़र आईं, जैसे कि:
1. आधिकारिक दस्तावेज़ अपडेट नहीं है।
2. इससे संबंधित जानकारी ढूंढना मुश्किल है।
लगभग इतनी ही कमियां मुझे नज़र आईं।
इसे इस्तेमाल करते समय मुझे कोई बड़ी परेशानी नहीं हुई, लेकिन जानकारी का अभाव और अपडेट न होना थोड़ा निराशाजनक था।
मैं केवल helm का उपयोग कर रहा हूँ, इसलिए मैं helm के आधार पर ही जानकारी दे रहा हूँ। इसके लिए क्षमा चाहता हूँ...
इसके बाद, हम values.yaml नाम की एक साधारण फ़ाइल बनाएँगे और
ऊपर दिए गए कमांड का उपयोग करके, हम k8s से आने वाले लॉग को आसानी से loki से जोड़ सकते हैं।
इसको बनाते समय, मुझे कुछ समस्याओं का सामना करना पड़ा।
पहली समस्या यह थी कि customConfig बनाते समय, पहले से लागू विकल्प निष्क्रिय हो जाते हैं, इसलिए आपको source, transform और sinks सभी को खुद से बनाना होगा।
दूसरी समस्या यह थी कि k8s लॉग की खासियत यह है कि लॉग लाइन के आधार पर आते हैं, इसलिए error trace जैसे मल्टीलाइन लॉग को मिलाना होगा।
source.file में मल्टीलाइन के लिए विकल्प है, लेकिन k8s में ऐसा कुछ नहीं है।
और Vector टीम के आंतरिक चर्चा के बाद, यह तय हुआ कि transform.reduce का उपयोग करके इसे हल किया जा सकता है।
तीसरी समस्या यह थी कि root.data_dir के साथ-साथ custom_config के अंदर data_dir भी सेट करना पड़ता है।
अगर यह सेट नहीं होगा तो लॉग से जुड़ी परमिशन की समस्या आएगी।
चौथी समस्या यह थी कि मैंने helm का उपयोग करके इसे deploy किया था, इसलिए कुछ syntax एक जैसे थे जिसके कारण escape की ज़रूरत पड़ी।
दस्तावेज़ में "{{ metadata }}" लिखा है, मैंने इसे ऐसे ही लगाया तो error आया...
इसलिए, helm में "{{ {{ metadata }} }}" इस तरह से escape करना होगा!
अगर आप आर्किटेक्चर से जुड़ी कोई समस्या का सामना कर रहे हैं, तो आप नीचे दिए गए लिंक को देख सकते हैं।
https://vector.dev/docs/setup/deployment/topologies/