Performance Monitoring, ट्रेस इकट्ठा करता है, ताकि आपको अपने ऐप्लिकेशन की परफ़ॉर्मेंस को मॉनिटर करने में मदद मिल सके. ट्रेस, आपके ऐप्लिकेशन में दो समय के बीच कैप्चर किए गए परफ़ॉर्मेंस डेटा की रिपोर्ट होती है.
Performance Monitoring के ज़रिए अपने-आप इकट्ठा होने वाले नेटवर्क अनुरोध के ट्रैक में, आपके ऐप्लिकेशन के ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों की जानकारी न दी गई हो या नेटवर्क अनुरोध करने के लिए, किसी दूसरी लाइब्रेरी का इस्तेमाल किया गया हो. इन मामलों में, Performance Monitoring API का इस्तेमाल करके, मैन्युअल तरीके से कस्टम नेटवर्क अनुरोध ट्रैस को इंस्ट्रूमेंट किया जा सकता है. कस्टम नेटवर्क अनुरोध ट्रैस का इस्तेमाल, सिर्फ़ Apple और Android ऐप्लिकेशन के लिए किया जा सकता है.
कस्टम नेटवर्क अनुरोध ट्रैक की डिफ़ॉल्ट मेट्रिक, Performance Monitoring के ज़रिए अपने-आप इकट्ठा होने वाले नेटवर्क अनुरोध ट्रैक की मेट्रिक जैसी ही होती हैं. इनमें जवाब मिलने में लगने वाला समय, जवाब और अनुरोध का पेलोड साइज़, और सफलता की दर शामिल है. कस्टम नेटवर्क अनुरोध के ट्रेस में, कस्टम मेट्रिक नहीं जोड़ी जा सकतीं.
अपने कोड में, Performance Monitoring SDK टूल से मिले एपीआई का इस्तेमाल करके, कस्टम नेटवर्क अनुरोध ट्रैस की शुरुआत और आखिर को तय किया जाता है.
कस्टम नेटवर्क अनुरोध के ट्रेस, Firebase कंसोल में उन नेटवर्क अनुरोधों के साथ दिखते हैं जिन्हें Performance Monitoring अपने-आप कैप्चर करता है. ये ट्रेस, ट्रेस टेबल के नेटवर्क अनुरोध सब-टैब में दिखते हैं.
नेटवर्क अनुरोध के कस्टम ट्रेस जोड़ना
खास नेटवर्क अनुरोधों पर नज़र रखने के लिए, कस्टम नेटवर्क अनुरोध ट्रैस जोड़ने के लिए Performance Monitoring HttpMetric API का इस्तेमाल करें.
Performance Monitoring में कस्टम नेटवर्क अनुरोधों को मैन्युअल तरीके से इंस्ट्रूमेंट करने के लिए, नीचे दिए गए कोड जैसा कोड जोड़ें:
Kotlin+KTX
val url = URL("https://www.google.com") val metric = Firebase.performance.newHttpMetric( "https://www.google.com", FirebasePerformance.HttpMethod.GET, ) metric.trace { val conn = url.openConnection() as HttpURLConnection conn.doOutput = true conn.setRequestProperty("Content-Type", "application/json") try { val outputStream = DataOutputStream(conn.outputStream) outputStream.write(data) } catch (ignored: IOException) { } // Set HttpMetric attributes setRequestPayloadSize(data.size.toLong()) setHttpResponseCode(conn.responseCode) printStreamContent(conn.inputStream) conn.disconnect() }
Java
HttpMetric metric = FirebasePerformance.getInstance().newHttpMetric("https://www.google.com", FirebasePerformance.HttpMethod.GET); final URL url = new URL("https://www.google.com"); metric.start(); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "application/json"); try { DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream()); outputStream.write(data); } catch (IOException ignored) { } metric.setRequestPayloadSize(data.length); metric.setHttpResponseCode(conn.getResponseCode()); printStreamContent(conn.getInputStream()); conn.disconnect(); metric.stop();
कस्टम नेटवर्क अनुरोध ट्रैस में, कस्टम एट्रिब्यूट जोड़े जा सकते हैं. हालांकि, कस्टम मेट्रिक नहीं जोड़ी जा सकतीं.
अगले चरण
- नेटवर्क के ऐसे अनुरोधों के लिए सूचनाएं सेट अप करें जिनसे आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर असर पड़ रहा है. उदाहरण के लिए, अगर किसी खास यूआरएल पैटर्न के लिए जवाब मिलने में लगने वाला समय, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाता है, तो अपनी टीम के लिए ईमेल सूचना कॉन्फ़िगर की जा सकती है.