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

ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> इस लेख श्रृंखला के पहले भाग में, हमने DigitalOcean के ऐप प्लेटफ़ॉर्म पर एक सरल रूबी ऑन रेल्स एप्लिकेशन को तैनात किया। हमने एक रेल ऐप को ऐपसिग्नल से भी जोड़ा, यह देखते हुए कि कैसे सरल त्रुटियों को ट्रैक किया जाता है और ऐपसिग्नल के त्रुटि डैशबोर्ड में प्रदर्शित किया जाता है।

<पी> श्रृंखला के इस भाग में, हम AppSignal का उपयोग करके आपके रूबी ऑन रेल्स एप्लिकेशन के लिए निम्नलिखित को कैसे सेट अप करें, इस पर विस्तार से चर्चा करेंगे:

  • प्रदर्शन निगरानी
  • रेल पृष्ठभूमि नौकरियों की निगरानी, जिसमें सरल एपीआई कॉल की निगरानी करना शामिल है
  • लॉगिंग
  • अधिसूचना अलर्ट
<पी> आइए इसमें शामिल हों!

AppSignal का उपयोग करके रेल ऐप के प्रदर्शन की निगरानी करना

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

<पी> यह एक बहुत ही महत्वपूर्ण मामला है जब आप मानते हैं कि धीमी गति से लोड होने वाले वेब पेज और कम विज़िटर रूपांतरण दर के बीच एक संबंध है। संक्षेप में, धीमी गति से चलने वाली उन प्रक्रियाओं पर अगर ध्यान नहीं दिया गया तो आपको बहुत अधिक कीमत चुकानी पड़ेगी। लेकिन रूबी ऑन रेल्स ऐप में इतने सारे चलते-फिरते हिस्सों के साथ, महत्वपूर्ण प्रश्न हैं:आपको क्या देखना चाहिए, और कहाँ?

<पी> यहीं पर AppSignal काम आता है। आइए देखें कि आप अपने रेल ऐप के प्रदर्शन पर नज़र रखने के लिए ऐपसिग्नल का उपयोग कैसे कर सकते हैं।

प्रतिक्रिया समय को ट्रैक करना

<पी> डिफ़ॉल्ट डैशबोर्ड से, ऐपसिग्नल दो ग्राफ़ प्रदान करता है जो आपको त्वरित अवलोकन दे सकता है कि आपका रेल ऐप कितना धीमा (या तेज़) चल रहा है:थ्रूपुट और प्रतिक्रिया समय ग्राफ.

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

  • थ्रूपुट - यह मूल रूप से मापता है कि आपका ऐप वर्तमान में प्रति सेकंड कितने अनुरोधों को संसाधित कर रहा है (इससे भ्रमित न हों कि आपका ऐप कुल मिलाकर प्रति सेकंड कितने अनुरोधों को संभाल सकता है)। मूल नियम यह है:प्रति सेकंड जितने अधिक अनुरोध, उतना बेहतर। हालाँकि, यदि आपका ऐप सर्वर प्रति सेकंड बहुत अधिक अनुरोधों को संभालता है, तो इसे संभालने के लिए अपने सर्वर संसाधनों को बढ़ाने का समय हो सकता है।
  • प्रतिक्रिया समय - ब्राउज़र प्रतिक्रिया में लगने वाला औसत समय मिलीसेकंड में। प्रतिक्रिया में जितना अधिक समय लगेगा, आपका ऐप उतना ही खराब चल रहा होगा। यहां एक अच्छा नियम यह है कि यदि आपके रेल वेब ऐप में 100 एमएस से कम प्रतिक्रिया समय है, तो आप इसे तेज़ मान सकते हैं, जबकि 300 एमएस+ प्रतिक्रिया समय को धीमा माना जा सकता है।
<पी> अब, मान लें कि हम सात दिनों की विंडो में अपने ऐप के प्रतिक्रिया समय और थ्रूपुट को ट्रैक करना चाहते हैं। ऐसा करना बहुत आसान है - बस ग्राफ़ पर जाएँ प्रदर्शन के अंतर्गत उप-मेनू बाईं ओर के मेनू पर स्थित है, फिर ग्राफ़ के शीर्ष पर समय फ़िल्टर बटन का उपयोग करें, जैसा कि नीचे दिखाया गया है:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> इसके साथ, आप आसानी से देख सकते हैं कि आपका ऐप दूसरों की तुलना में कुछ दिनों में धीमा चलता है या नहीं।

<पी> इस दृश्य पर, इवेंट समूहों की जाँच करना भी महत्वपूर्ण है ग्राफ़, प्रतिक्रिया समय के नीचे स्थित है और थ्रूपुट ग्राफ़:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> यह ग्राफ़ आपको विवरण देता है कि आपका ऐप कंट्रोलर लेयर और व्यू लेयर में कितनी तेजी से या धीमी गति से चल रहा है। यहां से, आप पता लगा सकते हैं कि धीमी प्रतिक्रिया समय का कारण क्या है और तदनुसार समस्याओं को ठीक कर सकते हैं।

<पी> आइए अब AppSignal का उपयोग करके डेटाबेस क्वेरीज़ को ट्रैक करने के लिए गियर स्विच करें।

डेटाबेस क्वेरीज़ को ट्रैक करना

<पी> यह आम तौर पर सच है कि आप प्रतिक्रिया समय और थ्रूपुट को अनुकूलित करके अपने ऐप से बहुत अधिक गति प्राप्त कर सकते हैं। हालाँकि, जब सुस्त ऐप व्यवहार की बात आती है, तो अक्सर धीमी, अअनुकूलित डेटाबेस क्वेरीज़ सबसे खराब अपराधी होती हैं।

<पी> आइए कुख्यात N+1 क्वेरी का एक उदाहरण लें। भाग 1 में पेश किए गए व्यय ट्रैकर ऐप में, व्यय नियंत्रक में सूचकांक विधि इस तरह दिखती है:

 <पी> यह निर्दोष लग सकता है, लेकिन यदि आप मुद्दों पर नज़र डालें अपने ऐपसिग्नल डैशबोर्ड में सूची, आपको कुछ दिलचस्प दिखाई देगा:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> व्यय नियंत्रक की सूचकांक पद्धति में एक N+1 क्वेरी को हाइलाइट किया गया है।

<पी> यदि हम समस्या लिंक पर क्लिक करके आगे की खोज करते हैं, तो हमें एक समस्या विवरण मिलता है स्क्रीन इस तरह:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> ध्यान दें कि कैसे AppSignal समस्या का स्पष्टीकरण प्रदान करता है, जिसमें एक अधिक विस्तृत ब्लॉग पोस्ट का लिंक भी शामिल है जो आपको दिखाता है कि इससे कैसे निपटना है।

<पी> आइए आगे बढ़ें और जानें कि ऐपसिग्नल आपको पृष्ठभूमि की नौकरियों में कैसे मदद करता है।

AppSignal के साथ रेल बैकग्राउंड जॉब्स का ट्रैक रखना

<पी> कई उत्पादन रूबी ऑन रेल्स अनुप्रयोगों में बैकग्राउंड नौकरियां एक सामान्य विशेषता हैं, जिसमें आपके चुनने के लिए विभिन्न प्रकार की नौकरी कतार प्रसंस्करण रत्न और लाइब्रेरी हैं।

<पी> ऐपसिग्नल विभिन्न बैकग्राउंड जॉब प्रोसेसिंग लाइब्रेरीज़ को ट्रैक करने और मॉनिटर करने का समर्थन करता है, जिसमें साइडकीक, क्यू, डिलेड जॉब, रेसक्यू और अन्य शामिल हैं।

<पी> मान लीजिए कि हम एक ऐसी सुविधा चाहते हैं जहां उपयोगकर्ताओं को अपने डैशबोर्ड में दैनिक मुद्रा विनिमय दरें मिलें।

<पी> इसे काम करने के लिए, हमें ऐसी दरें प्रदान करने वाली सेवा के लिए एक एपीआई कॉल की आवश्यकता है (हम एक ऐसी सेवा का उपयोग करेंगे जिसके लिए मुद्रा दरें प्राप्त करने के लिए इस तरह बहुत अधिक अग्रिम कॉन्फ़िगरेशन या भुगतान की आवश्यकता नहीं होती है)। हमें नियमित अंतराल पर इस सेवा पर कॉल को कतारबद्ध करने के लिए एक पृष्ठभूमि कार्य की भी आवश्यकता है।

<पी> व्यय ट्रैकर ऐप में हम जिस बैकग्राउंड प्रोसेसिंग रत्न का उपयोग करेंगे वह गुडजॉब है, लेकिन आप जो भी आपको उपयुक्त लगे उसका उपयोग करने के लिए स्वतंत्र हैं।

<पी> आइए दरें प्राप्त करने के लिए एक पृष्ठभूमि कार्य बनाएं:

 <पी> और फिर गुडजॉब को इस कार्य के लिए हर कुछ मिनटों में एक क्रॉन चलाने के लिए सेट करें (या जो भी आप उचित समझें)। AppSignal स्वचालित रूप से पृष्ठभूमि सेवा की उपस्थिति का पता लगाता है और इसमें एक निफ्टी फ़िल्टर शामिल होता है ताकि आप इसे डिफ़ॉल्ट वेब डैशबोर्ड से अलग कर सकें:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> अग्रिम टूलिंग की आवश्यकता के बिना, ऐपसिग्नल एपीआई कॉल का भी पता लगाएगा और किसी भी समस्या पर नज़र रखेगा:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> यदि आप AppSignal के साथ रेल पृष्ठभूमि नौकरियों की निगरानी में गहराई से उतरना चाहते हैं, तो मेरा सुझाव है कि आप दस्तावेज़ देखें। अभी के लिए, आइए अपना ध्यान अपटाइम मॉनिटरिंग पर लगाएं।

अपटाइम मॉनिटरिंग

<पी> एक और मामला जो कई रेल डेवलपर्स को चिंतित करता है वह है अंतिम उपयोगकर्ताओं के लिए उनके एप्लिकेशन की निरंतर उपलब्धता। किसी भी डाउनटाइम का मतलब राजस्व की हानि और अन्य नकारात्मक परिणाम हो सकते हैं।

<पी> फिर भी, आप अपने ऐप की अपटाइम स्थिति का मैन्युअल रूप से सर्वेक्षण नहीं करना चाहेंगे। आप AppSignal का उपयोग करके अपटाइम मॉनिटरिंग सेट कर सकते हैं।

<पी> इसे सेट करना बहुत आसान है. अपटाइम मॉनिटरिंग पर क्लिक करके शुरुआत करें बाईं ओर के मेनू में लिंक।

<पी> फिर, जब आप क्रिएट अपटाइम मॉनिटर पर क्लिक करेंगे बटन, आपको नीचे दिखाए गए संवाद के समान एक संवाद मिलना चाहिए:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> सबसे महत्वपूर्ण सेटिंग्स जोड़कर अपना अपटाइम मॉनिटर पूरा करें:

  • नाम - अपने अपटाइम मॉनिटर को एक उचित नाम दें।
  • यूआरएल - अपटाइम रूट का पूरा यूआरएल प्रदान करें। रेल्स 7.1 से शुरुआत करते हुए, डिफ़ॉल्ट अपटाइम रूट https://your-app-domain/up है .
  • क्षेत्र - उन क्षेत्रों का चयन करें जहां आप अपटाइम की जांच करना चाहते हैं।
  • सूचना - अलर्ट प्राप्त करने के लिए अधिसूचना चैनल चुनें।
<पी> यह हो जाने पर, आगे बढ़ें और मॉनिटर बनाएं!

<पी> ऐपसिग्नल अपटाइम मॉनिटर के साथ ध्यान देने योग्य एक बात यह है कि चूंकि मतदान लगभग हर मिनट में होता है, इसलिए आपकी योजना की सीमा तक पहुंचना बहुत आसान है। लेकिन इसका एक बहुत अच्छा समाधान है जिसके बारे में आप उनके दस्तावेज़ों में अधिक पढ़ सकते हैं।

<पी> AppSignal लॉगिंग में कैसे मदद कर सकता है, इस पर आगे बढ़ने से पहले, अपटाइम मॉनिटरिंग परत को पूरा करने के लिए एक और महत्वपूर्ण सुविधा है:निःशुल्क सार्वजनिक स्थिति पृष्ठ।

<पी> सार्वजनिक स्थिति बनाना पर क्लिक करें पेज लिंक जैसा कि नीचे दिखाया गया है:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> फिर नया स्थिति पृष्ठ पर क्लिक करें बटन, आपको इस पर ला रहा है:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> आगे बढ़ें और सभी आवश्यक जानकारी भरें। ध्यान दें कि यदि आप एक कस्टम डोमेन का उपयोग करते हैं, तो आपको cname.appsignal-status.com की ओर इशारा करते हुए एक CNAME निर्देश जोड़ना होगा आपके कस्टम डोमेन की DNS सेटिंग्स में।

AppSignal के साथ लॉगिंग

<पी> ऐपसिग्नल में लॉगिंग एक अपेक्षाकृत नई सुविधा है, लेकिन यह समय पर और स्वागत योग्य है। AppSignal का उपयोग करके, आपको एप्लिकेशन मॉनिटरिंग और लॉगिंग को अलग-अलग सेवाओं के रूप में चलाने की आवश्यकता नहीं है।

<पी> लॉगिंग आरंभ करने के लिए, सुनिश्चित करें कि आप AppSignal रत्न का नवीनतम संस्करण चला रहे हैं। यदि आपके पास रत्न का पुराना संस्करण है, तो इसे इसके साथ अपडेट करें:

 <पी> फिर एक नया इनिशियलाइज़र बनाएं और इसे इस प्रकार संपादित करें:

 <पी> अब आप अपने ऐप के लॉग को इस प्रकार एक्सेस कर सकते हैं:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

<पी> ध्यान दें कि आपको लॉग रिकॉर्ड को गंभीरता के आधार पर फ़िल्टर करने के लिए एक अच्छा फ़िल्टर भी मिलता है, साथ ही लाइव लॉग तक पहुंच भी मिलती है।

<पी> आप यहां रूबी दस्तावेज़ के लिए ऐपसिग्नल की लॉगिंग देख सकते हैं।

अन्य उल्लेखनीय विशेषताएं

<पी> कुछ अन्य उल्लेखनीय विशेषताएं हैं जिनका उपयोग आप AppSignal में कर सकते हैं:विसंगति का पता लगाना और कस्टम मेट्रिक्स।

विसंगति का पता लगाना

<पी> मान लीजिए कि आप चिंतित हैं कि आपके ऐप की मेमोरी ख़त्म हो रही है। यदि आपके ऐप में उपलब्ध मेमोरी में उल्लेखनीय गिरावट है तो आप आसानी से एक ट्रिगर सेट कर सकते हैं जो एक ईमेल अधिसूचना भेजता है।

<पी> विसंगति का पता लगाना पर जाएं लिंक करें और एक नया ट्रिगर बनाएं, फिर उसे कॉन्फ़िगर करें:

<पी> ऐपसिग्नल के साथ अपने रूबी ऑन रेल्स ऐप के प्रदर्शन की कुशलता से निगरानी करें

  • मीट्रिक - मेरे मामले में, मुझे मेमोरी उपयोग में रुचि है, लेकिन आप कोई अन्य मीट्रिक चुन सकते हैं जो आपके उपयोग के मामले के लिए विशिष्ट है।
  • ट्रिगर विवरण - यहां, आप अपने ट्रिगर से संबंधित विवरण कॉन्फ़िगर करेंगे। मेरे मामले में, यदि होस्ट मेमोरी 200एमबी से नीचे चली जाती है तो ट्रिगर सक्रिय हो जाएगा।

कस्टम मेट्रिक्स

<पी> AppSignal आपको कस्टम मेट्रिक्स को कैप्चर करने और विज़ुअलाइज़ करने के लिए टूल भी देता है। यह सुविधा अकेले ही पूरे लेख की गारंटी देती है। आप AppSignal के साथ कस्टम मेट्रिक्स की निगरानी कैसे करें में इसके बारे में सब कुछ पढ़ सकते हैं और AppSignal के दस्तावेज़ भी देख सकते हैं।

समापन

<पी> इस लेख श्रृंखला के भाग एक में, हमने DigitalOcean पर होस्ट किया गया एक रेल ऐप स्थापित किया और AppSignal का उपयोग करके त्रुटियों के लिए इसकी निगरानी की।

<पी> इस दूसरे और अंतिम भाग में, हमने आपके रेल ऐप के लिए ऐपसिग्नल की कुछ बेहतरीन विशेषताओं को देखा, जिसमें प्रदर्शन निगरानी, ​​अपटाइम मॉनिटरिंग, लॉगिंग और बहुत कुछ शामिल है।

<पी> AppSignal में और भी बहुत कुछ है जिसे इस लेख श्रृंखला में प्रभावी ढंग से कवर किया जा सकता है। मैं आपको अपने रेल ऐप के लिए इसे जांचने के लिए अत्यधिक प्रोत्साहित करता हूं।

<पी> हैप्पी कोडिंग!

<पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें!
  1. विंडो का आकार बदलने पर टिंकर लिस्टबॉक्स विजेट का आकार बदलें विंडो का आकार बदलने पर टिंकर लिस्टबॉक्स विजेट का आकार बदलें

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

  1. HTML DOM इनपुट मंथ स्टेपअप () मेथड HTML DOM इनपुट मंथ स्टेपअप () मेथड

    HTML DOM इनपुट माह स्टेपअप () विधि एक निर्दिष्ट मान द्वारा इनपुट माह फ़ील्ड के मान को बढ़ा (वृद्धि) करती है। सिंटैक्स निम्नलिखित वाक्य रचना है - object.stepUp(number) यहां, अगर नंबर पैरामीटर को छोड़ दिया जाता है तो यह मान को 1 से बढ़ा देता है। उदाहरण आइए हम इनपुट माह स्टेपअप () विधि का एक उदाहरण

  1. जावास्क्रिप्ट में ऑब्जेक्ट सदस्यों को सेट करना जावास्क्रिप्ट में ऑब्जेक्ट सदस्यों को सेट करना

    जावास्क्रिप्ट में ऑब्जेक्ट सदस्यों को सेट करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&g