Performance Monitoring Performance Monitoring, आपके ऐप्लिकेशन में मॉनिटर की जा रही प्रोसेस के बारे में डेटा इकट्ठा करने के लिए ट्रेस का इस्तेमाल करता है. ट्रेस एक रिपोर्ट होती है, जिसमें आपके ऐप्लिकेशन में दो पॉइंट के बीच कैप्चर किया गया डेटा शामिल होता है.
Performance Monitoring, सभी तरह के ऐप्लिकेशन के लिए, आपके ऐप्लिकेशन से जारी किए गए हर नेटवर्क अनुरोध के लिए Performance Monitoring अपने-आप एक ट्रेस इकट्ठा करता है. इसे एचटीटीपी/एचटीटीपीएस नेटवर्क अनुरोध ट्रेस कहा जाता है. इन ट्रेस में, मेट्रिक इकट्ठा की जाती हैं. ये मेट्रिक, आपके ऐप्लिकेशन के किसी सेवा एंडपॉइंट के लिए अनुरोध जारी करने और उस एंडपॉइंट से जवाब मिलने के बीच के समय के लिए होती हैं. Performance Monitoring, आपके ऐप्लिकेशन के किसी भी एंडपॉइंट के लिए अनुरोध करने पर, Performance Monitoring कई मेट्रिक कैप्चर करता है:
जवाब का समय — अनुरोध किए जाने और जवाब पूरी तरह से मिलने के बीच का समय
जवाब के पेलोड का साइज़ — ऐप्लिकेशन से डाउनलोड किए गए नेटवर्क पेलोड का बाइट साइज़
अनुरोध के पेलोड का साइज़ — ऐप्लिकेशन से अपलोड किए गए नेटवर्क पेलोड का बाइट साइज़
सक्सेस रेट — कुल जवाबों की तुलना में, सफल जवाबों (100 से 399 के बीच के रिस्पॉन्स कोड) का प्रतिशत
Performance Monitoring Performance Monitoring, इन नेटवर्किंग लाइब्रेरी का इस्तेमाल करने वाले नेटवर्क अनुरोधों के लिए, मेट्रिक अपने-आप इकट्ठा करता है:
OkHttp3, खास तौर पर एचटीटीपी क्लाइंट v3.x.x
Java का URLConnection, खास तौर पर HttpURLConnection और HttpsURLConnection
-
अगर इस लाइब्रेरी का इस्तेमाल किया जाता है, तो Apache HTTP Client को हटाने और Apache HTTP Client को बंद करने के बारे में ज़रूर पढ़ें.
नेटवर्क अनुरोध के डेटा को एग्रीगेट करने के तरीके को पसंद के मुताबिक बनाना
नेटवर्क अनुरोधों के लिए, डिफ़ॉल्ट टूलिंग और डेटा एग्रीगेशन के अलावा, Performance Monitoring इन विकल्पों के साथ भी काम करता है:
- नेटवर्क अनुरोध के ट्रेस को मैन्युअल तरीके से इंस्ट्रूमेंट करना: डिफ़ॉल्ट मॉनिटरिंग में, आपके ऐप्लिकेशन के ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों की रिपोर्ट न की जाए या नेटवर्क अनुरोध करने के लिए, किसी दूसरी लाइब्रेरी का इस्तेमाल किया जाए. ऐसे मामलों में, Performance Monitoring API का इस्तेमाल करके, नेटवर्क अनुरोध के कस्टम ट्रेस को मैन्युअल तरीके से इंस्ट्रूमेंट किया जा सकता है.
- कस्टम यूआरएल पैटर्न के तहत डेटा एग्रीगेट करना: अगर ऐसे खास यूआरएल हैं जिन्हें Firebase, यूआरएल पैटर्न के अपने-आप मैच होने की सुविधा से कैप्चर नहीं कर रहा है, तो समय के साथ यूआरएल के किसी खास सेट को मॉनिटर करने के लिए, कस्टम यूआरएल पैटर्न बनाए जा सकते हैं.
- सक्सेस रेट के कैलकुलेट होने के तरीके को पसंद के मुताबिक बनाना: कभी-कभी, कुछ एपीआई एंडपॉइंट के लिए, गड़बड़ी कोड की उम्मीद की जाती है या आपके ऐप्लिकेशन में पहले से ही इसे मैनेज किया जाता है. ऐसे मामलों में, यह कॉन्फ़िगर किया जा सकता है कि सक्सेस रेट कैसे कैलकुलेट किया जाए और आपके ऐप्लिकेशन के नेटवर्क कॉल के सक्सेस रेट को ज़्यादा सटीक तरीके से मॉनिटर किया जा सकता है.
यूआरएल पैटर्न के तहत डेटा एग्रीगेट करना
Firebase Performance Monitoring एक जैसे नेटवर्क अनुरोधों के लिए डेटा को अपने-आप एग्रीगेट करता है इससे आपको नेटवर्क अनुरोध की परफ़ॉर्मेंस में रुझानों को समझने में मदद मिलती है.
Firebase, हर अनुरोध के लिए यह देखता है कि नेटवर्क अनुरोध का यूआरएल, किसी यूआरएल पैटर्न से मेल खाता है या नहीं. अगर अनुरोध का यूआरएल, किसी यूआरएल पैटर्न से मेल खाता है, तो Firebase, अनुरोध के डेटा को यूआरएल पैटर्न के तहत अपने-आप एग्रीगेट कर देता है. Firebase console के Firebase डैशबोर्ड में, Firebase, नेटवर्क टैब में यूआरएल पैटर्न और उनके एग्रीगेट किए गए डेटा को दिखाता है.
यूआरएल पैटर्न क्या होता है?
यूआरएल पैटर्न में एक डोमेन के साथ-साथ एक ऐसा पैटर्न शामिल होता है जो यूआरएल पाथ से मेल खा सकता है. उदाहरण के लिए: example.com/*/animals/**.
यूआरएल पैटर्न में, पाथ के ये सेगमेंट शामिल हो सकते हैं:
- प्लेन टेक्स्ट — किसी सटीक स्ट्रिंग से मेल खाता है
*— पाथ के किसी एक सेगमेंट में मौजूद किसी भी स्ट्रिंग से मेल खाता है**— पाथ के किसी भी सफ़िक्स से मेल खाता है
यूआरएल पैटर्न इनमें से कोई एक हो सकता है:
- Firebase से जनरेट किए गए पैटर्न — इन्हें यूआरएल के अपने-आप जनरेट होने वाले पैटर्न कहा जाता है
- उपयोगकर्ता के तय किए गए पैटर्न — इन्हें यूआरएल के कस्टम पैटर्न कहा जाता है
उदाहरण के लिए: इनमें से कोई भी यूआरएल अनुरोध, example.com/*/animals/** यूआरएल पैटर्न से मेल खा सकता है.
example.com/singapore/animalsexample.com/australia/animals/spidersexample.com/australia/animals/marsupials/koala.png
यूआरएल पैटर्न के डोमेन में, पहले सेगमेंट के तौर पर * भी शामिल हो सकता है,
उदाहरण के लिए: *.example.com/*/fruits/**.
Firebase, हर अनुरोध को सिर्फ़ एक यूआरएल पैटर्न से मैप करता है. अगर आपने यूआरएल के कोई कस्टम पैटर्न कॉन्फ़िगर किए हैं, तो Firebase, अनुरोध के यूआरएल को सबसे पहले उन पैटर्न से मैच करने की कोशिश करता है. अगर Firebase को यूआरएल का कोई कस्टम पैटर्न नहीं मिलता है, तो वह अनुरोध के यूआरएल को, यूआरएल के अपने-आप जनरेट होने वाले सबसे सही पैटर्न से मैच करता है. यूआरएल के अपने-आप जनरेट होने वाले पैटर्न और कस्टम पैटर्न के बारे में ज़्यादा जानने के लिए, यहां दिए गए सेक्शन पढ़ें.
यूआरएल के अपने-आप जनरेट होने वाले पैटर्न
आपको कोई कॉन्फ़िगरेशन करने की ज़रूरत नहीं होती, Performance Monitoring आपके ऐप्लिकेशन के अनुरोधों को यूआरएल के अपने-आप जनरेट होने वाले पैटर्न से मैच करके, आपके ऐप्लिकेशन के इस्तेमाल के नए पैटर्न को दिखाने की कोशिश करता है.
यूआरएल के अपने-आप जनरेट होने वाले पैटर्न को मैच करने की सुविधा कैसे काम करती है?
Firebase, हर अनुरोध को, यूआरएल के अपने-आप जनरेट होने वाले सबसे सही पैटर्न से मैच करता है . यह पैटर्न, आपके ऐप्लिकेशन से भेजे गए अनुरोधों से जनरेट होता है. हालांकि, ध्यान दें कि Firebase अनुरोध के यूआरएल को सबसे पहले, कॉन्फ़िगर किए गए यूआरएल के किसी भी कस्टम पैटर्न से मैच करने की कोशिश करता है.
यहां एक बुनियादी उदाहरण दिया गया है. इससे पता चलता है कि Firebase, आपके ऐप्लिकेशन के लिए, अनुरोधों को यूआरएल के अपने-आप जनरेट होने वाले सबसे सही पैटर्न से कैसे मैच करता है.
आपका ऐप्लिकेशन, इन जैसे यूआरएल पर कई अनुरोध भेजता है:
example.com/germany/animals/bearsexample.com/germany/animals/birdsexample.com/germany/cars
Firebase यह तय करता है कि
example.com/germany/**, आपके ऐप्लिकेशन के लिए अनुरोध का एक सामान्य पैटर्न है. इसलिए, वह इसे आपके प्रोजेक्ट में, यूआरएल के अपने-आप जनरेट होने वाले पैटर्न के तौर पर जोड़ देता है.इस यूआरएल पैटर्न से मैच करने वाले नए अनुरोधों के लिए, Firebase, अनुरोधों के डेटा को यूआरएल के अपने-आप जनरेट होने वाले पैटर्न
example.com/germany/**के तहत एग्रीगेट करता है.एक हफ़्ते बाद, आपके ऐप्लिकेशन के ज़्यादातर अनुरोध,
example.com/germany/animals/bearsऔरexample.com/germany/animals/birdsके लिए होते हैं. इसलिए, Firebase, यूआरएल के अपने-आप जनरेट होने वाले ज़्यादा सही पैटर्नexample.com/germany/animals/**को जनरेट करता है.इस नए यूआरएल पैटर्न से मैच करने वाले नए अनुरोधों के लिए, Firebase, अनुरोधों के डेटा को सिर्फ़ नए यूआरएल पैटर्न के तहत एग्रीगेट करता है. Firebase,
example.com/germany/carsके लिए अनुरोधों के डेटा कोexample.com/germany/**के तहत एग्रीगेट करता रहता है.हालांकि, अगले कुछ हफ़्तों में,
example.com/germany/animals/bearsऔरexample.com/germany/animals/birdsके लिए, आपके ऐप्लिकेशन के अनुरोध काफ़ी कम हो जाते हैं. Firebase यह तय करता है किexample.com/germany/animals/**, आपके ऐप्लिकेशन के इस्तेमाल के नए पैटर्न को नहीं दिखाता. इसलिए, Firebase इन दो अनुरोधों को वापसexample.com/germany/**से मैच करना शुरू कर देता है.Firebase,
example.com/germany/animals/**के तहत, अनुरोध का कोई और डेटा एग्रीगेट नहीं करता. ऐसा इसलिए, क्योंकि यह अब यूआरएल के अपने-आप जनरेट होने वाला सबसे सही पैटर्न नहीं है.
यूआरएल के अपने-आप जनरेट होने वाले पैटर्न को मैच करने की सुविधा डाइनैमिक होती है. इसलिए, इन बातों का ध्यान रखें:
पिछले अनुरोधों से मिले मैच और एग्रीगेट किए गए डेटा पर, यूआरएल के नए पैटर्न का कोई असर नहीं पड़ता. Firebase, अनुरोध के डेटा को पिछली तारीख से फिर से एग्रीगेट नहीं करता.
यूआरएल के नए पैटर्न का असर, सिर्फ़ आने वाले अनुरोधों पर पड़ता है. Firebase, हर नए अनुरोध को, यूआरएल के अपने-आप जनरेट होने वाले सबसे सही पैटर्न से मैप करता है. हालांकि, ध्यान दें कि Firebase, अनुरोध के यूआरएल को सबसे पहले, कॉन्फ़िगर किए गए यूआरएल के किसी भी कस्टम पैटर्न से मैच करने की कोशिश करता है.
यूआरएल के अपने-आप जनरेट होने वाले पैटर्न और उनका डेटा देखना
Firebase, सभी यूआरएल पैटर्न और उनके एग्रीगेट किए गए डेटा को, ट्रेस की टेबल के नेटवर्क अनुरोध सबटैब में दिखाता है. यह सबटैब, परफ़ॉर्मेंस डैशबोर्ड के Firebase console में सबसे नीचे मौजूद होता है.
आपको तय नहीं की गई कैटगरी लेबल वाले यूआरएल पैटर्न दिख सकते हैं. ये, यूआरएल के अपने-आप जनरेट होने वाले "ब्रॉड" पैटर्न होते हैं. इनके तहत, Firebase उन अनुरोधों के डेटा को एग्रीगेट कर सकता है जो यूआरएल के किसी ज़्यादा खास पैटर्न से मैच नहीं होते.
जब किसी यूआरएल पैटर्न के तहत एग्रीगेट किए गए डेटा के लिए, डेटा बनाए रखने की अवधि खत्म हो जाती है, तो Firebase उस डेटा को यूआरएल पैटर्न से मिटा देता है. अगर यूआरएल के अपने-आप जनरेट होने वाले किसी पैटर्न के तहत एग्रीगेट किया गया सारा डेटा खत्म हो जाता है, तो Firebase उस यूआरएल पैटर्न को Firebase console से मिटा देता है.
यूआरएल के कस्टम पैटर्न
यूआरएल के कस्टम पैटर्न बनाकर, यूआरएल के उन पैटर्न को मॉनिटर किया जा सकता है जिन्हें Firebase, यूआरएल पैटर्न के अपने-आप मैच होने की सुविधा से कैप्चर नहीं कर रहा है . उदाहरण के लिए, किसी खास यूआरएल की समस्या हल करने या समय के साथ यूआरएल के किसी खास सेट को मॉनिटर करने के लिए, यूआरएल के कस्टम पैटर्न का इस्तेमाल किया जा सकता है.
ज़्यादा जानने के लिए, यूआरएल के कस्टम पैटर्न बनाना लेख पढ़ें.
परफ़ॉर्मेंस डेटा को ट्रैक करना, देखना, और फ़िल्टर करना
रीयल-टाइम परफ़ॉर्मेंस डेटा देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन, Performance Monitoring SDK के ऐसे वर्शन का इस्तेमाल करता हो जो रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करता हो. रीयल-टाइम परफ़ॉर्मेंस डेटा के बारे में ज़्यादा जानें.
अपने डैशबोर्ड में खास मेट्रिक ट्रैक करना
अपनी अहम मेट्रिक के ट्रेंड के बारे में जानने के लिए, उन्हें परफ़ॉर्मेंस डैशबोर्ड में सबसे ऊपर मौजूद मेट्रिक बोर्ड में जोड़ें. हर हफ़्ते होने वाले बदलावों को देखकर, गड़बड़ियों की तुरंत पहचान की जा सकती है. साथ ही, यह भी पुष्टि की जा सकती है कि आपके कोड में हाल ही में किए गए बदलावों से परफ़ॉर्मेंस बेहतर हो रही है.
Firebase Performance Monitoring dashboard" />
अपने मेट्रिक बोर्ड में कोई मेट्रिक जोड़ने के लिए, यह तरीका अपनाएं:
- Firebase console में, परफ़ॉर्मेंस डैशबोर्ड पर जाएं.
- खाली मेट्रिक कार्ड पर क्लिक करें. इसके बाद, अपने बोर्ड में जोड़ने के लिए, कोई मौजूदा मेट्रिक चुनें.
- ज़्यादा विकल्पों के लिए, किसी मेट्रिक कार्ड पर पर क्लिक करें. उदाहरण के लिए, किसी मेट्रिक को बदलना या हटाना.
मेट्रिक बोर्ड में, इकट्ठा किया गया मेट्रिक डेटा, समय के साथ-साथ ग्राफ़ के तौर पर और संख्या के हिसाब से प्रतिशत में बदलाव के तौर पर दिखता है.
डैशबोर्ड का इस्तेमाल करने के बारे में ज़्यादा जानें.
ट्रेस और उनका डेटा देखना
अपने ट्रेस देखने के लिए, परफ़ॉर्मेंस डैशबोर्ड में Firebase console पर जाएं. इसके बाद, ट्रेस की टेबल पर स्क्रोल करें और सही सबटैब पर क्लिक करें. टेबल में, हर ट्रेस के लिए कुछ अहम मेट्रिक दिखती हैं. साथ ही, किसी खास मेट्रिक के लिए, प्रतिशत में बदलाव के हिसाब से सूची को क्रम से लगाया जा सकता है.
Performance Monitoring समस्या हल करने के लिए एक पेज उपलब्ध कराता है. इस पेज पर, मेट्रिक में होने वाले बदलावों को हाइलाइट किया जाता है. इससे, आपकेFirebase ऐप्लिकेशन और उपयोगकर्ताओं पर परफ़ॉर्मेंस से जुड़ी समस्याओं के असर को तुरंत कम किया जा सकता है. परफ़ॉर्मेंस से जुड़ी संभावित समस्याओं के बारे में पता चलने पर, समस्या हल करने वाले पेज का इस्तेमाल किया जा सकता है. उदाहरण के लिए, इन स्थितियों में:
- डैशबोर्ड पर काम की मेट्रिक चुनने पर, आपको बड़ा डेल्टा दिखता है.
- ट्रेस की टेबल में, सबसे बड़े डेल्टा को सबसे ऊपर दिखाने के लिए, क्रम से लगाने पर, आपको प्रतिशत में बड़ा बदलाव दिखता है.
- आपको ईमेल से सूचना मिलती है, जिसमें परफ़ॉर्मेंस से जुड़ी समस्या के बारे में बताया जाता है.
समस्या हल करने वाले पेज को इन तरीकों से ऐक्सेस किया जा सकता है:
- मेट्रिक डैशबोर्ड पर, मेट्रिक की जानकारी देखें बटन पर क्लिक करें.
- किसी भी मेट्रिक कार्ड पर,
=> जानकारी देखें को चुनें. समस्या हल करने वाले पेज पर, चुनी गई मेट्रिक के बारे में जानकारी दिखती है. - ट्रेस की टेबल में, किसी ट्रेस के नाम या उस ट्रेस से जुड़ी लाइन में मौजूद किसी भी मेट्रिक की वैल्यू पर क्लिक करें.
- ईमेल से मिली सूचना में, अभी जांच करें पर क्लिक करें.
ट्रेस की टेबल में, किसी ट्रेस के नाम पर क्लिक करने के बाद, काम की मेट्रिक के बारे में ज़्यादा जानकारी देखी जा सकती है. डेटा को एट्रिब्यूट के हिसाब से फ़िल्टर करने के लिए,
Firebase Performance Monitoring data being filtered by attribute" />
- पिछले वर्शन या अपने नए वर्शन के बारे में डेटा देखने के लिए, ऐप्लिकेशन के वर्शन के हिसाब से फ़िल्टर करें
- यह जानने के लिए कि पुराने डिवाइसों पर आपका ऐप्लिकेशन कैसे काम करता है, डिवाइस के हिसाब से फ़िल्टर करें
- यह पक्का करने के लिए कि आपके डेटाबेस की जगह, किसी खास इलाके पर असर न डाल रही हो, देश के हिसाब से फ़िल्टर करें
अपने ट्रेस का डेटा देखने के बारे में ज़्यादा जानें .
अगले चरण
परफ़ॉर्मेंस डेटा की जांच करने के लिए, एट्रिब्यूट का इस्तेमाल करने के बारे में ज़्यादा जानें.
परफ़ॉर्मेंस से जुड़ी समस्याओं को Firebase console में ट्रैक करने के तरीके के बारे में ज़्यादा जानें.
नेटवर्क अनुरोधों के लिए सूचनाएं सेट अप करें. इससे आपके ऐप्लिकेशन की परफ़ॉर्मेंस खराब हो रही है. उदाहरण के लिए, अगर किसी खास यूआरएल पैटर्न के लिए जवाब का समय, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाता है, तो अपनी टीम के लिए ईमेल से सूचना मिलने की सुविधा कॉन्फ़िगर की जा सकती है.
- उपयोगकर्ता के सेशन की पूरी रिपोर्ट देखें. इसमें, एक ही सेशन के दौरान इकट्ठा किए गए अन्य ट्रेस के टाइमलाइन कॉन्टेक्स्ट में, किसी खास ट्रेस को देखा जा सकता है.