Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी की निगरानी का सबसे आसान तरीका:स्वचालित इंस्ट्रुमेंटेशन

अपने आवेदन के प्रदर्शन पर एक उचित निगरानी सिंहावलोकन स्थापित करना एक जटिल कार्य है। आम तौर पर, आपको पहले यह पता लगाना होगा कि आपको किस चीज़ पर नज़र रखने की ज़रूरत है, फिर अपने कोड को लिखिए, और अंत में उत्सर्जित किए गए सभी डेटा को समझिए।

हालांकि, कुछ चीजों के साथ, और एक एपीएम जो मूल रूप से रूबी का समर्थन करता है, यह कदम उठाना पहले से कहीं ज्यादा आसान है। इस पोस्ट में, हम आपको दिखाएंगे कि आप इसे कैसे कर सकते हैं।

स्वचालित इंस्ट्रुमेंटेशन - हैंड्सफ़्री एपीएम सेटअप

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

ऐपसिग्नल के स्वचालित इंस्ट्रूमेंटेशन के साथ, हम जितना हो सके उतना मैन्युअल काम निकाल लेते हैं। सीएलआई के माध्यम से बस कुछ कमांड चलाएँ, और आप सेट हो जाएंगे।

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

इसका मतलब है कि उदाहरण के लिए रूबी के लिए ग्राफ़िकल रत्न के लिए, ऐपसिग्नल आने वाले प्रत्येक ग्राफ़क्यूएल अनुरोध का साधन होगा, जिसका अर्थ है कि यह अनुरोध में सभी घटनाओं का टूटना प्रदान करेगा।

आउट-ऑफ़-द-बॉक्स इंस्ट्रुमेंटेशन

हमने ऐपसिग्नल सपोर्ट करने वाले सभी टूल्स की एक सूची बनाई है। यह काफी विस्तृत है:

टाइप करें टूल
ढांचा रेल
रेल सुविधाएं एक्शन मेलर
रेल सुविधाएं एक्शन केबल
रेल सुविधाएं सक्रिय रिकॉर्ड
रेल सुविधाएं सक्रिय कार्य
रेल सुविधाएं कैशिंग
ActiveRecord के माध्यम से समर्थित PostgreSQL, MySQL, SQLite, आदि।
हेरोकू एकीकरण Heroku PostgreSQL
ढांचा पैड्रिनो
ढांचा सिनात्रा
रत्न रैक
रत्न वेबमशीन
वेब सर्वर प्यूमा
वेब सर्वर गेंडा
ORM डेटामैपर
ORM अगली कड़ी
ORM MongoDB
एपीआई अंगूर
एपीआई ग्राफक्यूएल
मानक पुस्तकालय नेट::HTTP
पृष्ठभूमि कार्य क्यू
पृष्ठभूमि कार्य साइडकीक
पृष्ठभूमि कार्य विलंबित कार्य
पृष्ठभूमि कार्य अनुरोध
पृष्ठभूमि कार्य शोर्युकेन
रत्न रेक

जैसा कि मैंने कहा है, सूची काफी लंबी है, इसलिए हम इस पोस्ट के प्रत्येक टूल में नहीं जाएंगे।

वेब फ्रेमवर्क और एपीआई

AppSignal रूबी ऑन रेल्स, पैडरिनो, और सिनात्रा में आउट-ऑफ-द-बॉक्स वेब अनुरोधों के इंस्ट्रुमेंटेशन का समर्थन करता है। ग्रेप या ग्राफक्यूएल रत्न का उपयोग करने वाले एपीआई भी समर्थित हैं।

रूबी ऑन रेल्स

रेल के लिए ऐपसिग्नल एकीकरण अनुरोधों में अपवादों और प्रदर्शन को ट्रैक करके काम करता है। जब अनुरोध के दौरान नियंत्रक में कोई त्रुटि होती है तो AppSignal इसकी रिपोर्ट करेगा। प्रदर्शन के मुद्दे अनुरोध की अवधि पर आधारित होंगे और घटनाओं की एक समयरेखा तैयार करेंगे जिसमें विवरण दिया जाएगा कि आवेदन के किन हिस्सों में सबसे अधिक समय लगा।

यह ट्रैक करना भी संभव है कि वेब सर्वर के लोडबैलेंसर के माध्यम से HTTP अनुरोधों को रेल ऐप पर पहुंचने में कितना समय लगा। यदि यह डिफ़ॉल्ट रूप से चालू नहीं है, तो अनुरोध कतार समय ट्रैकिंग शीर्षलेख सेट करें और AppSignal स्वचालित रूप से कतार समय को ग्राफ़ करेगा।

ग्राफक्यूएल

AppSignal रूबी के लिए ग्राफ़िकल रत्न का समर्थन करता है। यह आने वाले प्रत्येक GraphQL अनुरोध का साधन होगा और अनुरोध में सभी घटनाओं का टूटना प्रदान करेगा। आप यह देख पाएंगे कि आपके समाधानकर्ताओं को पार्स करने, सत्यापित करने और निष्पादित करने में कितना समय लगा। इस विश्लेषण में निश्चित रूप से ऐप के वेब फ्रेमवर्क और डेटाबेस कॉल के ईवेंट शामिल हैं।

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

सिनात्रा, पैडरिनो और अंगूर

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

एक बार सिनात्रा, पैडरिनो, अंगूर के अनुरोध स्थापित हो जाने के बाद, सभी का उपयोग किया जाता है:जब ट्रैफ़िक एपीआई से टकराता है तो त्रुटियों और प्रदर्शन माप की सूचना दी जाती है। प्रत्येक (एपीआई) एंडपॉइंट ऐपसिग्नल में अपनी स्वयं की क्रिया है जिससे आसानी से पता चल सके कि कौन सा एंडपॉइंट किस त्रुटि का सामना करता है। जैसा कि Rails ऐप्स के साथ होता है, प्रदर्शन ब्रेकडाउन इस बात की जानकारी प्रदान करता है कि कौन से डेटाबेस क्वेरी या अन्य भाग या ऐप दूसरों की तुलना में धीमे थे।

डेटाबेस

सक्रिय रिकॉर्ड और अन्य ORM

यह देखने के लिए कि किसी अनुरोध ने डेटाबेस को क्वेरी करने में कितना समय लिया, एक घटना विवरण पृष्ठ खोलें। पृष्ठ के शीर्ष पर अनुरोध में दर्ज की गई घटनाओं के प्रकार प्रति समूह टूट जाते हैं। यहां आप देख सकते हैं कि किस प्रकार के ऑपरेशन पर कुल कितना समय खर्च किया गया।

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

एकीकरण आपको डेटाबेस कॉल के लिए ट्रेसिंग दिखाता है, ताकि आप देख सकें कि आपकी बुराई (या प्रतिभा) की जड़ कौन सी क्वेरी है

N+1 क्वेरी

चिंतित हैं कि अनुरोध में एन + 1 प्रश्न हो सकते हैं और यही इसे धीमा कर रहा है? अगर हमें N+1 क्वेरी का पता चलता है, तो उन इवेंट के लिए इवेंट टाइमलाइन में एक चेतावनी दिखाई देगी, जिनका पता चला था।

रेडिस

Redis एकीकरण के साथ, आप देखेंगे कि Redis को किए गए आपके कॉल इवेंट टाइमलाइन में दिखाई देंगे:

आप रेडिस को भेजे गए कमांड का नाम और रेडिस इंस्टेंस का पता भी देख पाएंगे, जिसके लिए क्वेरी की गई थी:

यह उन लोगों के लिए बहुत अच्छी खबर है जो लंबे समय तक चलने वाली कॉल को रेडिस कैश में डीबग करना चाहते हैं। आप बहुत लंबे समय तक चलने वाले अनुरोधों पर अलर्ट भेजने के लिए एक विसंगति ट्रिगर भी सेट कर सकते हैं!

पृष्ठभूमि नौकरियां

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

एक्शन मेलर के साथ ईमेल भेजना

यदि एक्शन मेलर का उपयोग करने वाले रेल मेलर्स को deliver_later . पर सेट किया गया है उन्हें सक्रिय नौकरी के माध्यम से भी भेजा जाएगा और वे उसी स्तर के उपकरण पर भरोसा कर सकते हैं।

वेबसोकेट

अपने रेल ऐप में एक्शन केबल का उपयोग करना? AppSignal स्वचालित रूप से संदेशों और सदस्यताओं के लिए त्रुटियों और प्रदर्शन माप की रिपोर्ट करता है। प्रत्येक संदेश को अलग से यंत्रीकृत किया जाता है इसलिए लंबे समय तक चलने वाले चैनल भी सभी गतिविधियों की रिपोर्ट करेंगे। प्रत्येक व्यक्तिगत क्रिया कैसा प्रदर्शन कर रही है, इसका स्पष्ट अवलोकन देते हुए उन्हें प्रति क्रिया समूहीकृत किया जाता है।

<ब्लॉककोट>

अगर आपको यह पसंद आया, तो हमारी रूबी प्रदर्शन निगरानी चेकलिस्ट में अन्य रूबी (ऑन रेल्स) प्रदर्शन लेखों पर एक नज़र डालें।

AppSignal आज़माएं:मॉनिटरिंग मेड इज़ी एंड स्वीट

पिछले 7 वर्षों में, हमने हजारों डेवलपर्स को अपने कोड को स्वचालित रूप से दर्ज करने में मदद की है, और हम चाहेंगे कि आप हमें भी आजमाएं। जब आप ऐसा करेंगे, तो बेझिझक संपर्क करें, हम आपको स्ट्रूपवाफल्स का एक निःशुल्क बॉक्स भी भेजेंगे।

पीएस। यदि आप एक महान ओएसएस परियोजना के साथ दुनिया की मदद कर रहे हैं, तो हम आपको एक मुफ्त ऐपसिग्नल खाते के साथ वापस मदद करते हैं। उन अनुरक्षकों तक अपनी बात पहुंचाएं जिन्हें आप महत्व देते हैं!


  1. स्वचालित वर्डप्रेस अपडेट प्रबंधित करने का सबसे अच्छा तरीका

    यदि आप एक वर्डप्रेस साइट का प्रबंधन करते हैं, तो आप जानते हैं कि अपडेट करना आपकी वर्डप्रेस साइट की सुरक्षा और स्थिरता बनाए रखने के सबसे महत्वपूर्ण भागों में से एक है। जबकि वर्डप्रेस का नवीनतम संस्करण स्वचालित रूप से खुद को अपडेट करने की क्षमता के साथ आता है - कम से कम मामूली और सुरक्षा रिलीज के लिए,

  1. विंडोज 10 को साफ करने का सबसे आसान तरीका

    अब तक, यदि आप अपने विंडोज 10 पीसी के साथ नए सिरे से शुरुआत करना चाहते थे, तो आपके पास दो विकल्पों में से एक था:अपने पीसी को रीसेट करें या विंडोज 10 आईएसओ डाउनलोड करें और ऑपरेटिंग सिस्टम को मैन्युअल रूप से पुनर्स्थापित करें। पिछली पोस्ट में, मैंने लिखा था कि आप विंडोज़ को फ़ैक्टरी सेटिंग्स पर कैसे पु

  1. यूआरएल का उपयोग करके पॉडकास्ट जोड़ने का सबसे आसान तरीका

    पॉडकास्ट खुद का मनोरंजन करने का एक लोकप्रिय तरीका है। बहुत सारे पॉडकास्ट ऐप उपलब्ध हैं जो शानदार सामग्री प्रदान करते हैं और आपके डिवाइस को हॉग नहीं करते हैं। अगर आपके पास आईफोन है, तो देशी पॉडकास्ट डिवाइस काम कर सकता है। Apple पॉडकास्ट ब्राउज सेक्शन के साथ आता है जो सिफारिशें प्रदान करता है, जो आपके