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

मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> एप्लिकेशन टीमों को यह समझना चाहिए कि उनका ग्राहक अनुभव कैसा है। यह न केवल सामान्य दृष्टिकोण से (प्रयोज्यता और प्रतिक्रिया के संदर्भ में) सच है, बल्कि दिन-प्रतिदिन, मिनट-दर-मिनट आधार पर भी सच है।

<पी> विशेष रूप से, जब आप वितरित सिस्टम के साथ काम करते हैं, तो त्रुटियाँ अपरिहार्य हैं। साइट ट्रैफ़िक में पूरे दिन उतार-चढ़ाव होता रहता है, और सिस्टम की किसी भी निर्भरता में किसी भी समय समस्या आ सकती है।

<पी> इस लेख में, हम रूबी ऑन रेल्स एप्लिकेशन के भीतर प्रदर्शन समस्याओं की निगरानी और समाधान करने में मदद के लिए जादुई डैशबोर्ड का उपयोग करेंगे।

<पी> लेकिन इससे पहले कि हम जादुई डैशबोर्ड में उतरें, आइए देखें कि हमें अपने ऐप्स डिज़ाइन करते समय किन बातों का ध्यान रखना चाहिए।

रूबी ऐप बनाते समय ध्यान देने योग्य बातें

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

<पी> कुछ प्रमुख एप्लिकेशन प्रश्न हैं जिनका उत्तर आपको किसी भी समय देना होगा:

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

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

<पी> सुरक्षा परीक्षण के लिए भी यही सच है। यदि आप इसे बहुत जल्दी संचालित करते हैं, तो परीक्षण के बाद भी, लेकिन उत्पाद के उत्पादन में जाने से पहले एक भेद्यता पेश की जा सकती है।

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

ऐपसिग्नल में जादुई डैशबोर्ड

<पी> ऐपसिग्नल मेट्रिक्स, डैशबोर्ड और आपके ऐप के प्रदर्शन के महत्व को समझता है - लेकिन यह भी कि इंजीनियरों के पास लॉन्च से पहले इन पर काम करने के लिए न्यूनतम समय होता है।

<पी> हमारे मैजिक डैशबोर्ड को "मैजिक" कहा जाता है क्योंकि मेट्रिक्स संग्रह और संबंधित डैशबोर्ड आपके लिए स्वचालित रूप से बनाए जाते हैं, बस जब आप अपने ऐप और एकीकृत घटकों को कनेक्ट करते हैं।

मैजिक डैशबोर्ड:रूबी ऑन रेल्स ऐप का एक उदाहरण

<पी> आइए जानें कि हम मैजिक डैशबोर्ड का उपयोग करके रूबी ऑन रेल्स ऐप के भीतर प्रदर्शन संबंधी समस्याओं की निगरानी और समाधान कैसे कर सकते हैं।

<पी> हमारा एप्लिकेशन क्रिप्टोकरेंसी मूल्य पूर्वानुमान के लिए एक सरल मशीन लर्निंग (एमएल) मॉडल का उपयोग करता है। एक एसिंक्रोनस जॉब नवीनतम मूल्य डेटा के साथ मॉडल को प्रतिदिन अपडेट करता है और समय के साथ सटीकता में सुधार करता है। इस रेल्स ऐप में वेब पेज और REST API दोनों हैं, जैसा कि नीचे आर्किटेक्चर आरेख में दिखाया गया है।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> हमारे रेल्स ऐप को तैनात करने के बाद, रेल्स प्यूमा वेब सर्वर और साइडकीक एसिंक्रोनस नौकरियों के लिए मैजिक डैशबोर्ड स्वचालित रूप से बनाए जाते हैं। मैजिक डैशबोर्ड के लिए अन्य समर्थित एकीकरणों में MongoDB और Erlang VM शामिल हैं।

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

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

कस्टम सूक्ष्म जांच का एक उदाहरण

<पी> साइडकीक एकीकरण पहले से ही अंतर्निहित है, लेकिन कल्पना करें कि आप एक मालिकाना पृष्ठभूमि कार्य तंत्र की निगरानी करना चाहते हैं। आप निम्न वर्ग उदाहरण का उपयोग कर सकते हैं। जांच वर्ग एक कनेक्शन प्राप्त करता है जिसका उपयोग वांछित मेट्रिक्स प्राप्त करने के लिए प्रत्येक कॉल पर किया जाता है।

 <पी> Appsignal::Minutely.probes.register पर कॉल दो पैरामीटर लेता है - जांच और उसके कार्यान्वयन के लिए एक नाम, जो या तो एक लैम्ब्डा या एक वर्ग हो सकता है जो कॉल विधि को लागू करता है।

AppSignal के लिए कॉन्फ़िगरेशन और सिस्टम आवश्यकताएँ

<पी> जादुई डैशबोर्ड प्राप्त करने के लिए बस अपने रेल एप्लिकेशन के साथ AppSignal का उपयोग करें। यदि आपने पहले से AppSignal इंस्टॉल नहीं किया है, तो अपने Gemfile में AppSignal रत्न शामिल करें और एक बंडल इंस्टॉल चलाएँ।

 <पी> फिर appsignal install चलाएँ अपने वातावरण को कॉन्फ़िगर करने के लिए आदेश। यह कॉन्फ़िगरेशन एक कॉन्फ़िगरेशन फ़ाइल या पर्यावरण चर में संग्रहीत किया जा सकता है, और आपके एप्लिकेशन को आपके ऐपसिग्नल खाते और डैशबोर्ड से जोड़ता है।

 <पी> अपना सर्वर स्थापित करने और चलाने के बाद, आपको निम्नलिखित के समान कुछ ईमेल दिखाई देंगे।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> इस उदाहरण के लिए सिस्टम आवश्यकताएँ हैं:

  • ऐपसिग्नल रत्न 2.9.0 या उच्चतर, जिसमें सूक्ष्म जांच के लिए समर्थन शामिल है।
  • प्यूमा एकीकरण - संस्करण 3.11.4 या उच्चतर की आवश्यकता है।
  • साइडकीक एकीकरण - रेडिस जेम 3.3.5 या उच्चतर की आवश्यकता है। इस एकीकरण के लिए, AppSignal रत्न 2.9.5 या उच्चतर की अनुशंसा की जाती है।

हमारे मूल्य पूर्वानुमान एपीआई का प्रदर्शन परीक्षण

<पी> उपरोक्त उदाहरण एप्लिकेशन अगले दिन की बिटकॉइन कीमत की भविष्यवाणी करने के लिए रूबी FANN रत्न का उपयोग करके कार्यान्वित एक सरल तंत्रिका नेटवर्क का उपयोग करता है। पिछले दस दिनों में प्रतिशत मूल्य परिवर्तन का उपयोग मॉडल के इनपुट के रूप में किया जाता है।

<पी> REST API कोई पैरामीटर नहीं लेता है, क्योंकि यह वर्तमान में केवल कल के लिए कीमत की भविष्यवाणी करता है। आउटपुट एक सरल JSON दस्तावेज़ है, जैसा कि नीचे दिखाया गया है।

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

<पी> आप GitHub पर इस आलेख से सभी कोड पा सकते हैं। कृपया ध्यान दें कि इस लेख या सॉफ़्टवेयर में कुछ भी निवेश सलाह नहीं है। क्रिप्टोकरेंसी के संबंध में कोई भी निवेश निर्णय लेने से पहले एक वित्तीय सलाहकार से परामर्श लें। <पी> हम प्रदर्शन परीक्षण के लिए REST API पर लोड अनुकरण करने के लिए JMeter का उपयोग करेंगे। यह हमें अपने जादुई डैशबोर्ड का उपयोग करके ट्रैफ़िक उत्पन्न करने और प्रदर्शन का मूल्यांकन करने की अनुमति देता है। हमारा पहला परीक्षण 5 समवर्ती ग्राहकों का उपयोग करता है, प्रत्येक 100 अनुरोध करता है।

<पी> आँकड़े प्रतिक्रिया समय में औसतन 342 एमएस के साथ काफी ऊंची रेंज दिखाते हैं, लेकिन पी99 852 एमएस है। ऐसा लगता है कि हम बेहतर कर सकते हैं।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

प्यूमा मैजिक डैशबोर्ड के साथ रेल्स ऐप के प्रदर्शन में सुधार

<पी> हमारे प्यूमा मैजिक डैशबोर्ड में थ्रेड पूल क्षमता का एक ग्राफ शामिल है, और हम देख सकते हैं कि यह हमारे परीक्षण के दौरान शून्य को छूता है। इससे पता चलेगा कि कुछ अनुरोधों में दूसरों की तुलना में अधिक समय क्यों लगता है, इसलिए हम प्यूमा थ्रेड्स की संख्या बढ़ाकर 10 कर देंगे।

<पी> ध्यान रखें, हमने डैशबोर्ड या यह ग्राफ़ बनाने के लिए कुछ नहीं किया। AppSignal ने स्वचालित रूप से इसे हमारे लिए बनाया।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> बढ़ी हुई प्यूमा थ्रेड गिनती के साथ परीक्षण चलाने के बाद, प्रतिक्रिया समय बहुत अधिक सुसंगत है, और डैशबोर्ड पुष्टि करता है कि पूल क्षमता स्वीकार्य स्तर के भीतर रहती है।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> अब डायल चालू करने का समय आ गया है। JMeter समवर्ती ग्राहकों की संख्या 5 सेकंड के रैंप-अप समय के साथ 50 तक बढ़ा दी गई है। यह परीक्षण खराब प्रतिक्रिया समय और कई एपीआई त्रुटियाँ दिखाता है। प्यूमा मैजिक डैशबोर्ड फिर से उपलब्ध प्यूमा थ्रेड्स को शून्य पर पहुंचता हुआ दिखाता है।

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

<पी> हम इस परिवर्तन को लागू करते हैं।

साइडकीक के मैजिक डैशबोर्ड के साथ बेहतर एपीआई प्रदर्शन

<पी> आइए अब हमारे साइडकीक मैजिक डैशबोर्ड की जाँच करें। दुर्भाग्य से, कोड में एक बग है, लेकिन कम से कम हम इसे पहचान सकते हैं और जल्दी ठीक कर सकते हैं।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> साइडकीक PriceUpdateJob के साथ अब काम करते हुए, एपीआई को संशोधित किया गया है ताकि उसे डेटाबेस से केवल अनुमानित मूल्य प्राप्त करने की आवश्यकता हो। इससे एपीआई प्रदर्शन में सुधार होता है, लेकिन हमें अभी भी कुछ एपीआई त्रुटियां और लंबी प्रतिक्रिया समय दिखाई देता है।

प्यूमा मैजिक डैशबोर्ड पर वापस

<पी> डैशबोर्ड पर एक नज़र इस बात पर प्रकाश डालती है कि हमने अतिरिक्त श्रमिकों का उपयोग करने के लिए अभी तक प्यूमा को कॉन्फ़िगर नहीं किया है। प्यूमा वर्कर एक ओएस-स्तरीय प्रक्रिया है जो कई थ्रेड चला सकती है। कुल थ्रेड गिनती की गणना श्रमिकों की संख्या को अधिकतम थ्रेड से गुणा करके की जाती है। सबसे पहले, हम 2 श्रमिकों का उपयोग करते हैं, लेकिन उपलब्ध धागे अभी भी समाप्त हो गए हैं। इसलिए हम राशि को 4 श्रमिकों तक बढ़ा देंगे।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> हमारा एपीआई प्रदर्शन अब बहुत अच्छा है। औसत प्रतिक्रिया समय 419 एमएस है, और कोई एपीआई त्रुटियां नहीं हैं। <पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> मैजिक डैशबोर्ड पुष्टि करता है कि थ्रेड क्षमता अभी भी उपलब्ध है।

<पी> मैजिक डैशबोर्ड के साथ रूबी ऐप प्रदर्शन मॉनिटरिंग को उन्नत करें

<पी> ऐपसिग्नल के जादुई डैशबोर्ड हमें प्यूमा वेब सर्वर की क्षमता के बारे में तुरंत जानकारी देते हैं। साइडकीक और एक्टिव वर्कर डैशबोर्ड हमारे एप्लिकेशन की एसिंक्रोनस नौकरियों में समान अंतर्दृष्टि प्रदान करते हैं।

हमने मैजिक डैशबोर्ड से क्या सीखा

<पी> हमारे रेल एप्लिकेशन प्रदर्शन परीक्षण के दौरान, प्यूमा मैजिक डैशबोर्ड ने हमें आसानी से पहचानने में मदद की कि थ्रेड की संख्या हमारे वांछित थ्रूपुट स्तर के लिए अपर्याप्त थी। यह थ्रेड पूल की क्षमता, समय के साथ श्रमिकों की संख्या और थ्रेड की कुल संख्या को दर्शाता है।

<पी> जबकि साइडकीक जॉब में कोई प्रदर्शन समस्या नहीं थी, मैजिक डैशबोर्ड ने हमें तुरंत पहचानने में मदद की कि तैनाती के बाद कोई त्रुटि थी, जिसे हम ठीक करने और तेजी से पुन:तैनात करने में सक्षम थे। ये सभी निगरानी क्षमताएं हमारे लिए AppSignal द्वारा स्वचालित रूप से सेट की गई थीं।

रूबी और रेल्स ऐप्स के लिए ऐपसिग्नल की डैशबोर्ड सुविधाएं

<पी> ऐपसिग्नल में डैशबोर्ड में नामस्थान होते हैं, जैसे "वेब" एप्लिकेशन या "बैकग्राउंड" नौकरियां, ताकि आप अपने एप्लिकेशन के कई मॉनिटरिंग दृश्य बना सकें। अंतर्निहित सारांश डैशबोर्ड थ्रूपुट, प्रतिक्रिया समय और नवीनतम त्रुटियों सहित आपके एप्लिकेशन के स्वास्थ्य का अवलोकन दिखाता है।

<पी> ध्यान दें कि, किसी भी डैशबोर्ड की तरह, आप दिखाए गए ग्राफ़ और मेट्रिक्स को संपादित कर सकते हैं, साथ ही चयनित ग्राफ़ के लेआउट और कॉन्फ़िगरेशन को भी बदल सकते हैं।

<पी> विसंगति का पता लगाना एक शक्तिशाली सुविधा है। यह आपको उन सीमाओं को परिभाषित करने की अनुमति देता है जो मीट्रिक मान किसी दिए गए मान से ऊपर या नीचे जाने पर सूचनाएं भेजती हैं, जैसे कि मुफ्त मेमोरी या त्रुटि दर।

समाप्ति:AppSignal के साथ आज ही अपने रूबी ऐप की निगरानी करें

<पी> हमारे अनुप्रयोगों की सफलता के लिए अवलोकनशीलता और प्रदर्शन महत्वपूर्ण हैं। हालाँकि, हम अक्सर इन विषयों से निपटने के लिए अंतिम क्षण तक प्रतीक्षा करते हैं।

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

<पी> रूबी के लिए ऐपसिग्नल के बारे में और पढ़ें।

<पी> अगली बार तक, कोडिंग का आनंद लें!


  1. C++ में सभी गहरे नोड्स के साथ सबसे छोटा सबट्री C++ में सभी गहरे नोड्स के साथ सबसे छोटा सबट्री

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

  1. एंड्रॉइड में बटरनाइफ का उपयोग कैसे करें? एंड्रॉइड में बटरनाइफ का उपयोग कैसे करें?

    यह उदाहरण दर्शाता है कि मैं android में ButterKnife कैसे करूँ। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - बिल्ड.ग्रेडल (मॉड्य

  1. रूबीस्ट्स गाइड टू एनवायरनमेंट वेरिएबल्स रूबीस्ट्स गाइड टू एनवायरनमेंट वेरिएबल्स

    यदि आप विकास और उत्पादन में वेब ऐप्स को प्रभावी ढंग से प्रबंधित करने में सक्षम होना चाहते हैं, तो आपको पर्यावरण चर को समझना होगा। यह हमेशा मामला नहीं था। कुछ साल पहले, शायद ही कोई अपने रेल ऐप्स को पर्यावरण चर के साथ कॉन्फ़िगर कर रहा था। लेकिन फिर हेरोकू हुआ। हरोकू ने डेवलपर्स को 12-कारक ऐप दृष्टिक