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

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

कल्पना करें: आपने अभी-अभी अपने बिल्कुल नए रेल्स ऐप पर काम पूरा किया है और इसे DigitalOcean जैसे क्लाउड प्रोवाइडर पर डेप्लॉय किया है। किसी भी डेवलपर की तरह, आप अपने काम पर बहुत गर्व महसूस करते हैं लेकिन आपके मन में अभी भी बहुत सारे सवाल हैं, जैसे:

  • आपका नया ऐप ट्रैफिक को कितनी अच्छी तरह संभालेगा
  • क्या आपके द्वारा लगाए गए ऑप्टिमाइज़ेशन वास्तव में काम करेंगे, आदि।

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

एक ऐसा सेटअप होना बहुत अच्छा होगा जो स्वचालित रूप से आपके एप्लिकेशन की निगरानी करे। AppSignal में प्रवेश करें! इस लेख में, दो-भाग श्रृंखला का पहला भाग, हम AppSignal को सेट अप करेंगे ताकि आप DigitalOcean पर होस्ट किए गए अपने रेल्स ऐप को प्रभावी ढंग से मॉनिटर कर सकें।

पूर्वापेक्षाएँ

साथ चलने के लिए, सुनिश्चित करें कि आपके पास है:

  • रूबी का स्थानीय इंस्टॉलेशन (यह ट्यूटोरियल वर्जन 3.3.0 का उपयोग करता है)।
  • एक स्थानीय PostgreSQL इंस्टॉलेशन (आप डॉकर वर्जन या स्थानीय रूप से इंस्टॉल्ड वर्जन का उपयोग कर सकते हैं)।
  • एप्लिकेशन डेप्लॉय करने के लिए एक DigitalOcean खाता।
  • एक AppSignal खाता (30-दिन का निःशुल्क परीक्षण उपलब्ध है)।

हमारे रूबी ऑन रेल्स ऐप का परिचय

इस ट्यूटोरियल के लिए, हम एक सिंपल रेल्स 7 एक्सपेंस ट्रैकर ऐप का उपयोग करेंगे। यूजर्स साइन अप कर सकेंगे और अपने व्यक्तिगत खर्चों के लिए एंट्रीज बना सकेंगे, ताकि समय के साथ अपने खर्चों को ट्रैक कर सकें।

हम इस ऐप को DigitalOcean पर डेप्लॉय करेंगे, फिर AppSignal के मॉनिटरिंग समाधान को कॉन्फिगर करेंगे ताकि हुड के नीचे क्या हो रहा है इसका ट्रैक रखा जा सके।

आप यहां से सोर्स कोड प्राप्त कर सकते हैं या ऐप को फॉलो करने के लिए फोर्क कर सकते हैं।

अपने रेल्स ऐप को DigitalOcean पर डेप्लॉय करना

हम अपने एप्लिकेशन को डेप्लॉय करने के लिए DigitalOcean के ऐप प्लेटफॉर्म का उपयोग करेंगे। नीचे दिए गए चरण मानते हैं कि आपने ऊपर वर्णित एक्सपेंस ट्रैकर ऐप को पहले ही फोर्क कर लिया है और आपके पास जाने के लिए तैयार एक DigitalOcean खाता है।

लॉग इन करने के बाद, हम एक ऐप बनाएंगे और इसे चालू और चालू करेंगे। चूंकि हम इस प्रक्रिया के कुछ हिस्सों को नियंत्रित करना चाहते हैं, इसलिए पहला कदम ऐप के लिए एक डेटाबेस बनाना है।

ऐप डेटाबेस बनाना

बाएं हाथ के मेनू पर Databases लिंक पर क्लिक करें, फिर एक नया PostgreSQL डेटाबेस बनाने के लिए Create Database लिंक पर क्लिक करें:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

अगली स्क्रीन में डेटाबेस सेटिंग्स पूरी करने के बाद, डेटाबेस कनेक्शन स्ट्रिंग पर ध्यान दें। अगले चरण में ऐप बनाते समय आप इसे एनवायरनमेंट वेरिएबल के रूप में उपयोग करेंगे:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

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

ऐप बनाना और डेप्लॉय करना

अंत में, बाएं साइड मेनू पर Apps लिंक पर क्लिक करके ऐप बनाएं:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

फिर नीचे दिखाए अनुसार ऐप के कोड रिपॉजिटरी रिसोर्स को कनेक्ट करें:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

एनवायरनमेंट वेरिएबल्स स्क्रीन पर जारी रखें और कॉपी की गई डेटाबेस URL स्ट्रिंग डालें। साथ ही, RAILS_MASTER_KEY को एनवायरनमेंट वेरिएबल के रूप में जोड़ें क्योंकि इसका उपयोग डेप्लॉयमेंट प्रक्रिया में किया जाएगा।

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

फिर, इन एनवायरनमेंट वेरिएबल्स के साथ, ऐप को डेप्लॉय करने के लिए Next बटन पर क्लिक करें:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

ऐप के सफलतापूर्वक डेप्लॉय होने के साथ, हम अब AppSignal का उपयोग करके मॉनिटरिंग सेट अप करेंगे।

अपने रेल्स ऐप को मॉनिटर करने के लिए AppSignal सेट करना

सबसे पहले, अपने AppSignal खाते में लॉग इन करें और 'Ruby & Rails' चुनें।

अब रेल्स ऐप में AppSignal जेम जोड़ें। यह उपयोगी जेम एरर, एक्सेप्शन और प्रासंगिक परफॉरमेंस डेटा एकत्र करेगा, और विश्लेषण के लिए इसे AppSignal पर पोर्ट करेगा।

ऐप का Gemfile खोलें और जेम जोड़ें:


फिर bundle install चलाएं।

अंत में, आपको अपने खाते-विशिष्ट API कुंजी के साथ आने वाले इंस्टॉलेशन स्क्रिप्ट को चलाने की आवश्यकता होगी। जब आप इस इंस्टॉल स्क्रिप्ट को चलाते हैं, तो आपको नीचे जैसा कुछ मिलना चाहिए:


जब आप स्क्रिप्ट चलाते हैं तो ध्यान देने योग्य कुछ चीजें हैं:

  • आपको अपने ऐप का नाम बदलने का विकल्प मिलेगा जैसा कि यह AppSignal के डैशबोर्ड पर दिखाई देगा या डिफ़ॉल्ट विकल्प छोड़ दें।
  • आपको यह चुनने का विकल्प भी मिलेगा कि आप अपने ऐप के लिए AppSignal को कैसे कॉन्फिगर करना चाहते हैं। मेरे मामले में, मैं कॉन्फिग फाइल विकल्प के साथ गया, config/appsignal.yml में एक कॉन्फिग फाइल बनाई, जिसकी सामग्री नीचे दी गई है:

यहां, हम परिभाषित करते हैं:

  • एक push_api_key जो ऐप को AppSignal से जोड़ता है।
  • ऐप का नाम जैसा कि यह AppSignal पर दिखाई देगा।
  • वे एनवायरनमेंट जिनमें AppSignal ऐप की निगरानी करेगा (इस मामले में, डेवलपमेंट और प्रोडक्शन दोनों एनवायरनमेंट)।

वैसे, यदि आप डेवलपमेंट एनवायरनमेंट पर AppSignal मॉनिटरिंग को बंद करना चाहते हैं, तो बस active फ्लैग को false पर सेट करें, जैसे:


टिप: कॉन्फिग फाइल और एनवायरनमेंट वेरिएबल दोनों विकल्प वही काम करते हैं। वे परिभाषित करते हैं कि AppSignal आपके ऐप से कैसे जुड़ेगा, ऐप का नाम, और कौन सा एनवायरनमेंट मॉनिटर किया जाएगा।

यह मानते हुए कि सब कुछ योजना के अनुसार होता है, आपको एक स्क्रीन दिखाई देनी चाहिए जो दर्शाती है कि AppSignal आपके ऐप से डेटा प्राप्त कर रहा है!

रेल्स के लिए AppSignal के डैशबोर्ड का परिचय

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

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

टिप: यदि आपने डेवलपमेंट और प्रोडक्शन दोनों एनवायरनमेंट के लिए मॉनिटरिंग सेट अप की है, तो आप तीर द्वारा दिखाए गए चयन से आसानी से उनके बीच स्विच कर सकते हैं।

डिफ़ॉल्ट व्यू से, आपके पास निम्न डिफ़ॉल्ट चार्ट्स तक पहुंच है:

  • एरर रेट - यह प्रति यूनिट समय में आपके ऐप में होने वाली एरर की दर दिखाएगा।
  • थ्रूपुट - यहां, आपको प्रति मिनट अनुरोधों के संदर्भ में आपके ऐप द्वारा संभाले जा सकने वाले थ्रूपुट का एक स्नैपशॉट मिलेगा।
  • प्रतिक्रिया समय - यह आपके ऐप के प्रतिक्रिया समय दिखाएगा।
  • नवीनतम ओपन एरर - यह सेक्शन आपके ऐप के भीतर हुई नवीनतम एरर को सूचीबद्ध करेगा।
  • नवीनतम ओपन परफॉरमेंस माप - यह सेक्शन नवीनतम परफॉरमेंस माप को सूचीबद्ध करता है, जिसमें मेथड कॉल, API अनुरोध आदि शामिल हैं।

अब, हम देखेंगे कि AppSignal का उपयोग करके रेल्स एप्लिकेशन के लिए उचित एरर ट्रैकिंग कैसे सेट करें।

AppSignal के साथ एरर मॉनिटर करना

एक रनिंग रूबी ऑन रेल्स ऐप को प्रभावित करने वाले दस से अधिक एरर प्रकार हैं। जाहिर है, कुछ दूसरों की तुलना में अधिक सामान्य हैं। इस सेक्शन में, हम इनमें से कुछ एरर का अनुकरण करेंगे और देखेंगे कि AppSignal उन्हें कैसे संभालता है। आइए एक सरल उदाहरण से शुरू करें।

चूंकि एक्सपेंस ट्रैकर ऐप प्रमाणीकरण के लिए Devise का उपयोग कर रहा है, आइए जांचें कि क्या कोई यूजर साइन इन है। अनुशंसित user_signed_in? मेथड का उपयोग करने के बजाय, आइए गलत user_logged_in? मेथड का उपयोग करें, जो एक ActionView::Template::Error ट्रिगर करना चाहिए:


इस परिवर्तन को डेप्लॉय करें, प्रोडक्शन ऐप को रीलोड करें, फिर AppSignal में प्रोडक्शन एनवायरनमेंट डैशबोर्ड में जाएं और देखें कि यह एरर कैसे दिखाई देता है:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

AppSignal किसी एप्लिकेशन में होने वाली किसी भी एरर पर अधिक विवरण प्राप्त करना आसान बनाता है। उदाहरण के लिए, हम 'Latest Open Errors' डैशबोर्ड पैनल से इस पर क्लिक करके ActionView टेम्पलेट एरर के बारे में विवरण प्राप्त कर सकते हैं।

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

आप स्पष्ट रूप से देख सकते हैं कि एरर एक अपरिभाषित मेथड के कारण होता है जो हमें इसे ठीक करने की सही दिशा में इंगित करता है।

AppSignal का एरर डैशबोर्ड Logbook और Settings पैनल के माध्यम से अतिरिक्त जानकारी भी देता है:

AppSignal के साथ DigitalOcean पर अपना रूबी ऑन रेल्स ऐप लॉन्च करें: चरण-दर-चरण गाइड

  • Logbook - यहां, आप या आपकी टीम के सदस्य AppSignal द्वारा ट्रैक की जा रही एरर पर टिप्पणी जोड़ सकते हैं। Logbook पैनल एरर के संबंध में की गई किसी भी कार्रवाई का कालानुक्रमिक ब्रेकडाउन भी दिखाता है।
  • Settings - इस पैनल से, आप किसी एरर को किसी अन्य टीम सदस्य को असाइन कर सकते हैं, अलर्ट सेटिंग्स बदल सकते हैं (हम इस ट्यूटोरियल के दूसरे भाग में इन्हें विस्तार से देखेंगे), और एरर गंभीरता सेट कर सकते हैं।

और इस श्रृंखला के इस भाग के लिए बस इतना ही!

समापन

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

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

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

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

  1. जावास्क्रिप्ट मॉड्यूल्स जावास्क्रिप्ट मॉड्यूल्स

    मॉड्यूल्स ES 2015 में पेश किए गए थे। मॉड्यूल्स को कोड को छोटे टुकड़ों में तोड़ने के लिए पेश किया गया था। मॉड्यूल्स में क्लासेज या फ़ंक्शन्स हो सकते हैं। वेरिएबल्स, फ़ंक्शन्स, ऑब्जेक्ट्स को एक्सपोर्ट और इम्पोर्ट करने के लिए export और import कीवर्ड्स का उपयोग किया जाता है। नोट - इस उदाहरण को चलाने क

  1. Minitest को समझना: रूबी में यह कैसे काम करता है Minitest को समझना: रूबी में यह कैसे काम करता है

    Minitest क्या है? Minitest एक रूबी टेस्टिंग लाइब्रेरी है, यह आपको TDD स्टाइल में अपने कोड के लिए टेस्ट लिखने की अनुमति देता है। यह Rails के लिए डिफ़ॉल्ट टेस्टिंग फ्रेमवर्क है और DHH का पसंदीदा है। कुछ लोग इसकी सादगी और इसके मुख्य विकल्प (RSpec) की तुलना में कितना कम कोड है, इसके लिए इसे पसंद करते है

  1. Upstash Kafka और MongoDB कनेक्टर के साथ लो-लेटेंसी सेगमेंटेशन प्लेटफॉर्म बनाना Upstash Kafka और MongoDB कनेक्टर के साथ लो-लेटेंसी सेगमेंटेशन प्लेटफॉर्म बनाना

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