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

हैंड्स-फ्री ऑटोमैटिक इंस्ट्रूमेंटेशन के साथ Ruby प्रदर्शन निगरानी सरल बनाएं

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

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

ऑटोमैटिक इंस्ट्रूमेंटेशन - हैंड्सफ्री APM सेटअप

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

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

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

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

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

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

प्रकारटूल
फ्रेमवर्कRails
Rails विशेषताएंAction Mailer
Rails विशेषताएंAction Cable
Rails विशेषताएंActive Record
Rails विशेषताएंActive Job
Rails विशेषताएंकैशिंग
ActiveRecord के माध्यम से समर्थितPostgreSQL, MySQL, SQLite, आदि।
Heroku एकीकरणHeroku PostgreSQL
फ्रेमवर्कPadrino
फ्रेमवर्कSinatra
जेमRack
जेमWebMachine
वेब सर्वरPuma
वेब सर्वरUnicorn
ORMDataMapper
ORMSequel
ORMMongoDB
APIGrape
APIGraphQL
मानक लाइब्रेरीNet::HTTP
पृष्ठभूमि जॉबQue
पृष्ठभूमि जॉबSidekiq
पृष्ठभूमि जॉबDelayed Job
पृष्ठभूमि जॉबResque
पृष्ठभूमि जॉबShoryuken
जेमRake

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

वेब फ्रेमवर्क और APIs

AppSignal Ruby on Rails, Padrino, और Sinatra में वेब अनुरोधों के इंस्ट्रूमेंटेशन को आउट-ऑफ-द-बॉक्स सपोर्ट करता है। Grape या GraphQL जेम का उपयोग करने वाले APIs भी समर्थित हैं।

Ruby on Rails

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

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

GraphQL

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

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

Sinatra, Padrino और Grape

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

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

डेटाबेस

Active Record और अन्य ORMs

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

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

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

N+1 क्वेरी

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

Redis

Redis एकीकरण के साथ, आप अपने Redis कॉल को घटना समयरेखा में देखेंगे:

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

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

पृष्ठभूमि जॉब

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

Action Mailer के साथ ईमेल भेजना

यदि Action Mailer का उपयोग करने वाले Rails मेलर्स deliver_later पर सेट हैं तो उन्हें Active Job के माध्यम से भी रूट किया जाएगा और उसी स्तर के इंस्ट्रूमेंटेशन पर भरोसा किया जा सकता है।

वेबसॉकेट्स

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

👋 यदि आप इसे पसंद करते हैं, तो हमारी Ruby प्रदर्शन निगरानी चेकलिस्ट में अन्य Ruby (on Rails) प्रदर्शन लेखों पर एक नज़र डालें।

AppSignal आज़माएं: निगरानी आसान और मीठी बनाई गई 🍪

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

PS. यदि आप एक महान OSS प्रोजेक्ट के साथ दुनिया की मदद कर रहे हैं, तो हम आपको मुफ्त AppSignal अकाउंट के साथ वापस मदद करते हैं। उन रखरखावकर्ताओं को शब्द फैलाएं जिन्हें आप महत्व देते हैं!

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

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

  1. विंडोज 10 को क्लीन इंस्टॉल कैसे करें - सरल, चरण-दर-चरण गाइड विंडोज 10 को क्लीन इंस्टॉल कैसे करें - सरल, चरण-दर-चरण गाइड

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

  1. URL के माध्यम से कोई भी पॉडकास्ट जल्दी जोड़ें: स्टेप-बाय-स्टेप गाइड URL के माध्यम से कोई भी पॉडकास्ट जल्दी जोड़ें: स्टेप-बाय-स्टेप गाइड

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