paint-brush
लॉगिंग पर पुनर्विचार: कम लॉग करें, अधिक जानेंद्वारा@prefab
840 रीडिंग
840 रीडिंग

लॉगिंग पर पुनर्विचार: कम लॉग करें, अधिक जानें

द्वारा Prefab3m2023/09/16
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

जैसे-जैसे अनुप्रयोग बड़े होते हैं, वैसे-वैसे हमारी लॉगिंग को समाहित करने और संग्रहीत करने की लागत भी बढ़ती है। प्रीफ़ैब के साथ, आप तुरंत लॉग स्तर समायोजित कर सकते हैं। प्रीफ़ैब लॉग की मात्रा के आधार पर शुल्क नहीं लेता है, बल्कि केवल आपके सर्वर पर गतिशील कॉन्फ़िगरेशन की सेवा के आधार पर शुल्क लेता है। इस दृष्टिकोण से महत्वपूर्ण बचत हो सकती है, खासकर बड़े पैमाने के अनुप्रयोगों के लिए।
featured image - लॉगिंग पर पुनर्विचार: कम लॉग करें, अधिक जानें
Prefab HackerNoon profile picture

लॉगिंग दुविधा

जब चीजें गड़बड़ हो जाती हैं तो लॉग हमारी जीवन रेखा हो सकते हैं। किसी समस्या को हल करने के लिए, हमें समस्या को पुन: उत्पन्न करना होगा, और डिबग लॉगिंग अमूल्य हो सकती है। लेकिन एक दिक्कत है - लागत। जैसे-जैसे अनुप्रयोग बड़े होते हैं, वैसे-वैसे हमारी लॉगिंग को शामिल करने और संग्रहीत करने की लागत भी बढ़ती है, और यह हमें उपयोगी होने के लिए बहुत कम लॉगिंग या हमारे द्वारा उपयोग नहीं किए जा रहे लॉग के लिए भुगतान करने के बीच एक समझौते में मजबूर करता है।


थॉम शट ने एक बार केवल त्रुटियों को लॉग करने के लिए एक तर्क दिया था, जिसमें सुझाव दिया गया था कि चेतावनी, जानकारी और डीबग स्तरों को छोड़ दिया जाना चाहिए। उसका तर्क? उत्पादन में लॉग स्तर बदलने में कठिनाई:


स्तरों को दूर फेंकें - पिछली बार कब आपने इन्फो के अलावा किसी अन्य स्थान पर प्रोडक्शन चलाया था? क्या स्तर बदलना एक त्वरित प्रक्रिया है जिसे टीम में हर कोई जानता है कि इसे कैसे करना है?


और वास्तव में, हम में से अधिकांश लोग अक्सर लॉग स्तर नहीं बदलते हैं क्योंकि इसके लिए एक प्रतिबद्धता, एक निर्माण और एक तैनाती की आवश्यकता होती है। यदि लॉग स्तर बदलना एक कठिन प्रक्रिया है, तो ये अतिरिक्त लाइनें वास्तव में केवल शोर बन जाती हैं।

गतिशील विन्यास की शक्ति

गतिशील कॉन्फ़िगरेशन दर्ज करें. हालाँकि कई लोग इससे अपरिचित हो सकते हैं, लेकिन जिन्होंने इसे अपना लिया है वे इसके बिना जीवन की कल्पना नहीं कर सकते। स्थैतिक कॉन्फ़िगरेशन के विपरीत, जहां ऐप्स एक प्रॉपर्टी फ़ाइल या एक पर्यावरण चर पढ़ते हैं, डायनामिक कॉन्फ़िगरेशन, जैसा कि नाम से पता चलता है, गतिशील है।


यह यूआई के माध्यम से नए मान सेट करने की क्षमता प्रदान करता है, यह सुनिश्चित करते हुए कि प्रत्येक मूल्यांकन नवीनतम संस्करण को पुनः प्राप्त करता है।


यह तकनीक गतिशील लॉगिंग की रीढ़ है। हमारे कॉन्फ़िगरेशन सिस्टम में लॉगर -> लॉगलेवल मैपिंग को संग्रहीत करके और परिवर्तनों पर लॉगर को अपडेट करके, हम घंटों में नहीं, बल्कि मिलीसेकंड में चेतावनी से डिबग में स्थानांतरित कर सकते हैं।

प्रीफ़ैब का परिचय: लॉगिंग का भविष्य

प्रीफ़ैब हमारे लॉगिंग के तरीके में क्रांतिकारी बदलाव ला रहा है। प्रीफ़ैब के साथ, आप यह कर सकते हैं:

  • वास्तविक समय लॉग स्तर परिवर्तन : तुरंत लॉग स्तर समायोजित करें। सर्वर के पुनरारंभ होने तक प्रतीक्षा करने की आवश्यकता नहीं है. बदलें और आपका काम हो गया.


  • लक्षित लॉगिंग : प्रीफैब की लक्षित लॉगिंग आपको केवल एक उपयोगकर्ता, लेनदेन, या उपलब्धता क्षेत्र के लिए डिबग लॉग देखने देती है, जिससे सटीकता बढ़ती है और शोर कम होता है। प्रीफ़ैब आपको प्रासंगिक कोड, कार्य या यहां तक कि किसी विशिष्ट उपयोगकर्ता पर ध्यान केंद्रित करने की अनुमति देता है।


  • मौजूदा सिस्टम के साथ एकीकरण : प्रीफैब कोई अन्य लॉगिंग टूल नहीं है। यह आपके मौजूदा लॉगिंग प्रदाता के साथ सहजता से एकीकृत होता है, चाहे वह डेटाडॉग, सूमो लॉजिक या ईएलके स्टैक हो।

लॉगिंग पर पैसे की बचत

लॉगिंग की लागत बड़े पैमाने पर गंभीर हो जाती है, और सभी मात्रा से जुड़ी होती है। एग्रीगेटर्स इस खर्च को कम करने के लिए नए तरीके पेश कर रहे हैं, जैसे डेटाडॉग का लॉग विदाउट लिमिट्स , और क्रिबल मूल रूप से इस समस्या के लिए समर्पित एक पूरी कंपनी है।


लेकिन ये सभी समाधान उपयोग के आधार पर आपसे शुल्क लेते हैं। दिन के अंत में, आप अभी भी अपने द्वारा भेजे गए लॉग के लिए भुगतान कर रहे हैं।


चूँकि आपके लॉग प्रीफ़ैब से नहीं गुजरते हैं, इसलिए यह लॉग की मात्रा के आधार पर चार्ज नहीं करता है, बल्कि केवल आपके सर्वर पर डायनामिक कॉन्फ़िगरेशन की सेवा के आधार पर चार्ज करता है। प्रीफ़ैब बस फ़िल्टर के मानों को नियंत्रित करता है, यह सुनिश्चित करते हुए कि आप केवल वही लॉग करें जो आवश्यक है। इस दृष्टिकोण से महत्वपूर्ण बचत हो सकती है, खासकर बड़े पैमाने के अनुप्रयोगों के लिए।

लॉगिंग संस्कृति को पुनः परिभाषित करना

डायनेमिक लॉगिंग को अपनाना केवल एक नए टूल का उपयोग करने के बारे में नहीं है; यह एक सांस्कृतिक बदलाव है. प्रारंभ में, यह कठिन लग सकता है। लेकिन जैसे-जैसे टीमें लक्षित लॉगिंग की शक्ति की आदी हो जाती हैं, यह एक मजबूत परिचालन मानसिकता को बढ़ावा देती है। डेवलपर्स अब सोच सकते हैं, "अगर यह एकतरफा हो गया, तो मुझे कौन सी जानकारी चाहिए?" और उसके अनुसार तैयारी करें.


उदाहरण के लिए, इस कोड स्निपेट पर विचार करें:

 def charge(user, amount) balance = get_balance(user) min_balance = get_min_balance(user) do_charge = balance > min_balance logger.debug("charge decision", charge: do_charge, amount: amount, balance: balance, user_id: user.id, min_balance: min_balance) if do_charge charge_user(user, amount) else end

पहले, कई लोगों ने logger.debug लाइन को केवल विकास शोर के रूप में देखा होगा। लेकिन गतिशील लॉगिंग के साथ, ऐसी लाइनें अमूल्य उपकरण बन जाती हैं, जो जरूरत पड़ने पर सक्रिय होने के लिए तैयार होती हैं।

निष्कर्ष

लॉगिंग का परिदृश्य एक भूकंपीय बदलाव के दौर से गुजर रहा है। प्रीफैब जैसे टूल के साथ, डेवलपर्स को अब विस्तृत लॉग और लागत दक्षता के बीच चयन नहीं करना पड़ता है। डायनामिक लॉगिंग दोनों दुनियाओं में सर्वश्रेष्ठ प्रदान करती है, और संबंधित भारी कीमत टैग के बिना जरूरत पड़ने पर अंतर्दृष्टि प्रदान करती है।


हैप्पी डिबगिंग! 🚀