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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

इस आलेख श्रृंखला के पहले भाग में, हमने DigitalOcean के ऐप प्लेटफॉर्म पर एक सरल Ruby on Rails एप्लिकेशन तैनात किया। हमने एक Rails ऐप को AppSignal से भी जोड़ा, यह देखते हुए कि सरल त्रुटियों को AppSignal के Errors डैशबोर्ड में कैसे ट्रैक और प्रदर्शित किया जाता है।

इस श्रृंखला के इस भाग में, हम आपके Ruby on Rails एप्लिकेशन के लिए AppSignal का उपयोग करके निम्नलिखित सेट अप करने में गोता लगाएंगे:

  • प्रदर्शन निगरानी
  • Rails बैकग्राउंड जॉब्स निगरानी, जिसमें सरल API कॉल्स की निगरानी कैसे करें शामिल है
  • लॉगिंग
  • सूचना अलर्ट

आइए इसमें गोता लगाएं!

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

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

यह एक बहुत महत्वपूर्ण मामला है जब आप मानते हैं कि धीमी गति से लोड होने वाले वेब पेज और कम विजिटर रूपांतरण दर के बीच एक संबंध है। संक्षेप में, यदि अनियंत्रित छोड़ दिया जाए तो वे धीमी चलने वाली प्रक्रियाएं आपको बहुत खर्च करेंगी। लेकिन Ruby on Rails ऐप में इतने सारे चलते हुए हिस्सों के साथ, महत्वपूर्ण प्रश्न हैं: आपको क्या देखना चाहिए, और कहां?

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

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

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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

इस दृश्य पर रहते हुए, Event groups ग्राफ को देखना भी महत्वपूर्ण है, जो Response time और Throughput ग्राफ के नीचे स्थित है:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

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

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

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

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



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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

खर्च कंट्रोलर की इंडेक्स मेथड में एक N+1 क्वेरी को हाइलाइट किया गया है।

यदि हम इश्यू लिंक पर क्लिक करके आगे खोदते हैं, तो हमें इस तरह एक Issue details स्क्रीन मिलती है:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

आइए आगे बढ़ें और जानें कि AppSignal बैकग्राउंड जॉब्स के साथ आपकी कैसे मदद करता है।

AppSignal के साथ Rails बैकग्राउंड जॉब्स पर नज़र रखना

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

AppSignal Sidekiq, Que, Delayed Job, Resque, और अन्य सहित विभिन्न बैकग्राउंड जॉब प्रोसेसिंग लाइब्रेरीज़ को ट्रैक और मॉनिटर करने का समर्थन करता है।

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

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

खर्च ट्रैकर ऐप में हम जिस बैकग्राउंड प्रोसेसिंग जेम का उपयोग करेंगे वह GoodJob है, लेकिन आप जो चाहें उपयोग करने के लिए स्वतंत्र हैं।

दरें लाने के लिए एक बैकग्राउंड जॉब बनाएं:



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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

बहुत अधिक टूलिंग के बिना, AppSignal API कॉल्स का भी पता लगाएगा और किसी भी मुद्दे पर नज़र रखेगा:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

अपटाइम निगरानी

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

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

इसे सेट अप करना बहुत आसान है। बाएं साइड मेनू में Uptime monitoring लिंक पर क्लिक करके शुरू करें।

फिर, जब आप create uptime monitor बटन पर क्लिक करते हैं, तो आपको नीचे दिखाए गए के समान एक डायलॉग मिलना चाहिए:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

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

इसे पूरा करने के साथ, आगे बढ़ें और मॉनिटर बनाएं!

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

अपटाइम निगरानी परत को पूरा करने के लिए एक और महत्वपूर्ण सुविधा पर जाने से पहले: फ्री पब्लिक स्टेटस पेज।

creating a public status page लिंक पर क्लिक करें जैसा कि नीचे दिखाया गया है:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

फिर New status page बटन पर क्लिक करें, जो आपको यहां लाता है:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

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

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

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



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



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

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

आप यहां AppSignal के Ruby के लिए लॉगिंग डॉक्यूमेंटेशन देख सकते हैं।

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

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

असामान्यता पहचान

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

Anomaly detection लिंक पर जाएं और एक नया ट्रिगर बनाएं, फिर इसे कॉन्फिगर करें:

AppSignal के साथ अपने Ruby on Rails ऐप के प्रदर्शन को कुशलतापूर्वक मॉनिटर करें

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

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

AppSignal आपको कस्टम मेट्रिक्स को कैप्चर और विज़ुअलाइज़ करने के उपकरण भी देता है। यह सुविधा अकेले एक पूरे आलेख की हकदार है। आप इसके बारे में How to Monitor Custom Metrics with AppSignal में सब कुछ पढ़ सकते हैं और AppSignal के डॉक्स भी देख सकते हैं।

समापन

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

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

AppSignal में इससे कहीं अधिक है जिसे इस आलेख श्रृंखला द्वारा प्रभावी ढंग से कवर किया जा सकता है। मैं आपको अपने Rails ऐप के लिए इसे देखने के लिए अत्यधिक प्रोत्साहित करता हूं।

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

P.S. यदि आप Ruby Magic पोस्ट पढ़ना चाहते हैं जैसे ही वे प्रेस से निकलते हैं, तो हमारे Ruby Magic न्यूज़लेटर की सदस्यता लें और कभी भी एक भी पोस्ट मिस न करें!

  1. Django में मॉडल्स में डेटा इम्पोर्ट करना Django में मॉडल्स में डेटा इम्पोर्ट करना

    इस लेख में, हम देखेंगे कि JSON फॉर्मेट से मॉडल में डेटा कैसे इम्पोर्ट किया जाए। हम JSON, CSV, XLSX, YML आदि से मॉडल में डेटा इम्पोर्ट कर सकते हैं। सबसे पहले, एक Django प्रोजेक्ट और एक ऐप बनाएं। urls सेट करें और INSTALLED_APPS में ऐप जोड़ने जैसे कुछ बुनियादी काम करें। एक मॉडल बनाएं। यहां, हमें views

  1. HTML draggable एट्रिब्यूट HTML draggable एट्रिब्यूट

    HTML draggable एट्रिब्यूट HTML DOM draggable एट्रिब्यूट एक बूलियन मान लौटाती/सेट करती है जो निर्दिष्ट करती है कि कोई एलिमेंट ड्रैगेबल है या नहीं। नोट: लिंक्स और इमेजेस डिफ़ॉल्ट रूप से ड्रैगेबल होते हैं। उदाहरण आइए HTML draggable एट्रिब्यूट का एक उदाहरण देखें: <!DOCTYPE html> <html> &

  1. Redis Developer Hub ने DevOps टीमों के लिए विस्तारित संसाधनों के साथ समर्थन बढ़ाया Redis Developer Hub ने DevOps टीमों के लिए विस्तारित संसाधनों के साथ समर्थन बढ़ाया

    Redis Developer Hub हमेशा Redis के साथ निर्माण करने वाले डेवलपर्स के लिए एक बेहतरीन संसाधन रहा है। 200+ मुफ्त ट्यूटोरियल के साथ, जिन्हें पिछले वर्ष लाखों डेवलपर्स द्वारा एक्सेस किया गया, यह बनाने, विकसित करने, और एक्सप्लोर करने के इच्छुक डेवलपर्स के लिए अमूल्य प्रशिक्षण और निर्देश प्रदान करता है।