Performance Monitoring, आपके ऐप्लिकेशन में मॉनिटर की गई प्रोसेस के बारे में डेटा इकट्ठा करने के लिए ट्रेस का इस्तेमाल करता है. ट्रेस एक रिपोर्ट होती है. इसमें आपके ऐप्लिकेशन में, दो समय बिंदुओं के बीच कैप्चर किया गया डेटा शामिल होता है.
सभी तरह के ऐप्लिकेशन के लिए, Performance Monitoring हर नेटवर्क का अनुरोध का ट्रेस अपने-आप इकट्ठा करता है. यह अनुरोध आपके ऐप्लिकेशन से जारी किया जाता है. इसे एचटीटीपी/एस नेटवर्क का अनुरोध ट्रेस कहा जाता है. ये ट्रेस, उस समय के लिए मेट्रिक इकट्ठा करते हैं जब आपका ऐप्लिकेशन, सेवा के एंडपॉइंट को अनुरोध भेजता है और जब उस एंडपॉइंट से जवाब मिल जाता है. आपका ऐप्लिकेशन जिस भी एंडपॉइंट के लिए अनुरोध करता है उसके लिए, Performance Monitoring कई मेट्रिक कैप्चर करता है:
जवाब मिलने में लगा समय — अनुरोध किए जाने और पूरा जवाब मिलने के बीच का समय
जवाब के पेलोड का साइज़ — नेटवर्क पेलोड का बाइट साइज़, जिसे ऐप्लिकेशन ने डाउनलोड किया है
अनुरोध पेलोड का साइज़ — ऐप्लिकेशन से अपलोड किए गए नेटवर्क पेलोड का बाइट साइज़
सफलता की दर — कुल जवाबों की तुलना में, सफल जवाबों (100 से 399 की रेंज में मौजूद जवाब कोड) का प्रतिशत
इस डेटा को, ट्रेस टेबल के नेटवर्क अनुरोध सबटैब में देखा जा सकता है. यह टेबल, परफ़ॉर्मेंस डैशबोर्ड में सबसे नीचे होती है. कंसोल इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, इस पेज पर बाद में पढ़ें.
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, 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 कंसोल के परफ़ॉर्मेंस डैशबोर्ड के सबसे नीचे होता है.
आपको तय नहीं की गई श्रेणी लेबल वाले यूआरएल पैटर्न दिख सकते हैं. ये "ब्रॉड" ऑटोमैटिक यूआरएल पैटर्न हैं. इनके तहत, Firebase उन अनुरोधों के लिए डेटा इकट्ठा कर सकता है जो किसी ज़्यादा खास यूआरएल पैटर्न से मेल नहीं खाते.
जब यूआरएल पैटर्न के तहत एग्रीगेट किए गए डेटा के लिए, डेटा के रखरखाव की अवधि खत्म हो जाती है, तो Firebase उस डेटा को यूआरएल पैटर्न से मिटा देता है. अगर अपने-आप जनरेट हुए यूआरएल पैटर्न के तहत एग्रीगेट किया गया सारा डेटा एक्सपायर हो जाता है, तो Firebase उस यूआरएल पैटर्न को Firebase कंसोल से मिटा देता है.
कस्टम यूआरएल पैटर्न
कस्टम यूआरएल पैटर्न बनाए जा सकते हैं. इससे उन यूआरएल पैटर्न को मॉनिटर किया जा सकता है जिन्हें Firebase, अपने-आप यूआरएल पैटर्न मैच करने की सुविधा के ज़रिए कैप्चर नहीं कर रहा है. उदाहरण के लिए, किसी यूआरएल से जुड़ी समस्या हल करने या समय के साथ यूआरएल के किसी सेट को मॉनिटर करने के लिए, कस्टम यूआरएल पैटर्न का इस्तेमाल किया जा सकता है.
ज़्यादा जानने के लिए, कस्टम यूआरएल पैटर्न बनाना पर जाएं.
परफ़ॉर्मेंस डेटा को ट्रैक करना, देखना, और फ़िल्टर करना
रीयल-टाइम परफ़ॉर्मेंस डेटा देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन, Performance Monitoring SDK टूल के ऐसे वर्शन का इस्तेमाल करता हो जो रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करता हो. रीयल-टाइम परफ़ॉर्मेंस डेटा के बारे में ज़्यादा जानें.
अपने डैशबोर्ड में खास मेट्रिक ट्रैक करना
यह जानने के लिए कि आपकी अहम मेट्रिक का रुझान कैसा है, उन्हें परफ़ॉर्मेंस डैशबोर्ड में सबसे ऊपर मौजूद मेट्रिक बोर्ड में जोड़ें. हफ़्ते-दर-हफ़्ते होने वाले बदलावों को देखकर, तुरंत रिग्रेशन की पहचान की जा सकती है. इसके अलावा, यह पुष्टि की जा सकती है कि आपके कोड में हाल ही में किए गए बदलावों से परफ़ॉर्मेंस बेहतर हो रही है.
Firebase प्रदर्शन मॉनिटर करना डैशबोर्ड" />
अपने मेट्रिक बोर्ड में कोई मेट्रिक जोड़ने के लिए, यह तरीका अपनाएं:
- Firebase कंसोल में, परफ़ॉर्मेंस डैशबोर्ड पर जाएं.
- खाली मेट्रिक कार्ड पर क्लिक करें. इसके बाद, अपने बोर्ड में जोड़ने के लिए कोई मौजूदा मेट्रिक चुनें.
- ज़्यादा विकल्पों के लिए, डेटा से भरे हुए किसी मेट्रिक कार्ड पर पर क्लिक करें. उदाहरण के लिए, किसी मेट्रिक को बदलने या हटाने के लिए.
मेट्रिक बोर्ड में, समय के साथ इकट्ठा किया गया मेट्रिक डेटा दिखता है. यह डेटा, ग्राफ़ के साथ-साथ संख्यात्मक प्रतिशत बदलाव के तौर पर भी दिखता है.
डैशबोर्ड का इस्तेमाल करने के बारे में ज़्यादा जानें.
ट्रेस और उनका डेटा देखना
अपने ट्रेस देखने के लिए, Firebase कंसोल में परफ़ॉर्मेंस डैशबोर्ड पर जाएं. इसके बाद, नीचे की ओर स्क्रोल करके ट्रेस टेबल पर जाएं. फिर, सही सबटैब पर क्लिक करें. टेबल में, हर ट्रेस के लिए कुछ टॉप मेट्रिक दिखाई जाती हैं. साथ ही, किसी खास मेट्रिक के लिए, प्रतिशत में हुए बदलाव के हिसाब से सूची को क्रम से लगाया जा सकता है.
Performance Monitoring कंसोल में समस्या हल करने वाला पेज उपलब्ध कराता है. इस पेज पर मेट्रिक में हुए बदलावों को हाइलाइट किया जाता है. इससे, परफ़ॉर्मेंस से जुड़ी समस्याओं को तुरंत ठीक करना और अपने ऐप्लिकेशन और उपयोगकर्ताओं पर पड़ने वाले उनके असर को कम करना आसान हो जाता है.Firebase परफ़ॉर्मेंस से जुड़ी संभावित समस्याओं के बारे में जानने पर, समस्या हल करने वाले पेज का इस्तेमाल किया जा सकता है. उदाहरण के लिए, इन स्थितियों में:
- आपने डैशबोर्ड पर काम की मेट्रिक चुनी हैं और आपको उनमें बड़ा अंतर दिखता है.
- ट्रेस टेबल में, सबसे बड़े डेल्टा को सबसे ऊपर दिखाने के लिए क्रम से लगाएं. इसके बाद, आपको प्रतिशत में काफ़ी बदलाव दिखेगा.
- आपको परफ़ॉर्मेंस से जुड़ी समस्या की सूचना देने वाला ईमेल मिलता है.
समस्या हल करने वाले पेज को इन तरीकों से ऐक्सेस किया जा सकता है:
- मेट्रिक डैशबोर्ड पर, मेट्रिक की जानकारी देखें बटन पर क्लिक करें.
- किसी भी मेट्रिक कार्ड पर,
=> ब्यौरा देखें को चुनें. समस्या हल करने वाले पेज पर, चुनी गई मेट्रिक के बारे में जानकारी दिखती है. - ट्रेस टेबल में, ट्रेस के नाम या उस ट्रेस से जुड़ी लाइन में मौजूद किसी भी मेट्रिक वैल्यू पर क्लिक करें.
- ईमेल से मिली सूचना में, अभी जांच करें पर क्लिक करें.
ट्रेस टेबल में किसी ट्रेस के नाम पर क्लिक करने पर, आपको अपनी पसंद की मेट्रिक के बारे में ज़्यादा जानकारी मिल सकती है. एट्रिब्यूट के हिसाब से डेटा फ़िल्टर करने के लिए,
Firebase Performance Monitoring data being filtered by attribute" />
- पिछली रिलीज़ या नई रिलीज़ के बारे में डेटा देखने के लिए, ऐप्लिकेशन के वर्शन के हिसाब से फ़िल्टर करें
- डिवाइस के हिसाब से फ़िल्टर करके जानें कि पुराने डिवाइसों पर आपका ऐप्लिकेशन कैसे काम करता है
- देश के हिसाब से फ़िल्टर करें, ताकि यह पक्का किया जा सके कि आपके डेटाबेस की जगह की जानकारी से किसी खास क्षेत्र पर असर न पड़े
अपने ट्रेस के लिए डेटा देखने के बारे में ज़्यादा जानें.
अगले चरण
परफ़ॉर्मेंस डेटा की जांच करने के लिए, एट्रिब्यूट इस्तेमाल करने के बारे में ज़्यादा जानें.
Firebase कंसोल में, परफ़ॉर्मेंस से जुड़ी समस्याओं को ट्रैक करने के तरीके के बारे में ज़्यादा जानें.
नेटवर्क अनुरोधों के लिए सूचनाएं सेट अप करें. इससे आपको उन अनुरोधों के बारे में पता चलेगा जिनकी वजह से आपके ऐप्लिकेशन की परफ़ॉर्मेंस खराब हो रही है. उदाहरण के लिए, अगर किसी यूआरएल पैटर्न के लिए जवाब देने में लगने वाला समय, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाता है, तो अपनी टीम के लिए ईमेल सूचना कॉन्फ़िगर की जा सकती है.
- उपयोगकर्ता सेशन की ज़्यादा जानकारी वाली रिपोर्ट देखें. इनमें आपको एक ही सेशन के दौरान इकट्ठा किए गए अन्य ट्रेस के टाइमलाइन कॉन्टेक्स्ट में, कोई खास ट्रेस दिखेगा.