Performance Monitoring, ट्रेस इकट्ठा करता है, ताकि आप अपने ऐप्लिकेशन की परफ़ॉर्मेंस को मॉनिटर कर सकें. ट्रेस, आपके ऐप्लिकेशन में दो समय के बीच कैप्चर किए गए परफ़ॉर्मेंस डेटा की रिपोर्ट होती है.
Performance Monitoring से अपने-आप इकट्ठा किए गए नेटवर्क रिक्वेस्ट ट्रेस में, आपके ऐप्लिकेशन के लिए ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों की रिपोर्ट न की जाए या नेटवर्क अनुरोध करने के लिए, किसी दूसरी लाइब्रेरी का इस्तेमाल किया जाए. ऐसे मामलों में, Performance Monitoring एपीआई का इस्तेमाल करके, कस्टम नेटवर्क रिक्वेस्ट ट्रेस को मैन्युअल तरीके से इंस्ट्रुमेंट किया जा सकता है. कस्टम नेटवर्क रिक्वेस्ट ट्रेस सिर्फ़ Apple और Android ऐप्लिकेशन के लिए काम करते हैं.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस के लिए डिफ़ॉल्ट मेट्रिक, Performance Monitoring से अपने-आप इकट्ठा किए गए नेटवर्क रिक्वेस्ट ट्रेस के लिए डिफ़ॉल्ट मेट्रिक जैसी ही होती हैं. खास तौर पर, रिस्पॉन्स टाइम, रिस्पॉन्स और रिक्वेस्ट पेलोड का साइज़, और सक्सेस रेट. कस्टम नेटवर्क रिक्वेस्ट ट्रेस में, कस्टम मेट्रिक जोड़ने की सुविधा उपलब्ध नहीं है.
अपने कोड में, Performance Monitoring SDK टूल से मिले एपीआई का इस्तेमाल करके, कस्टम नेटवर्क रिक्वेस्ट ट्रेस की शुरुआत और आखिर को तय किया जाता है.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस, Firebase कंसोल में उन नेटवर्क अनुरोधों के साथ दिखते हैं जिन्हें Performance Monitoring अपने-आप कैप्चर करता है. ये ट्रेस, ट्रेस टेबल के नेटवर्क अनुरोध सब-टैब में दिखते हैं.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस जोड़ना
Performance Monitoring HttpMetric API का इस्तेमाल करके, कस्टम नेटवर्क रिक्वेस्ट ट्रेस जोड़ें. इससे नेटवर्क के खास अनुरोधों को मॉनिटर किया जा सकता है.
Performance Monitoring में कस्टम नेटवर्क अनुरोधों को मैन्युअल तरीके से इंस्ट्रुमेंट करने के लिए, यहां दिए गए कोड जैसा कोड जोड़ें:
Kotlin
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();
कस्टम नेटवर्क रिक्वेस्ट ट्रेस में, कस्टम एट्रिब्यूट जोड़े जा सकते हैं. हालांकि, कस्टम मेट्रिक नहीं जोड़ी जा सकतीं.
अगले चरण
- आपके ऐप्लिकेशन की परफ़ॉर्मेंस को खराब करने वाले नेटवर्क अनुरोधों के लिए, सूचनाएं सेट अप करें. उदाहरण के लिए, अगर किसी यूआरएल पैटर्न के लिए रिस्पॉन्स टाइम आपकी सेट की गई थ्रेशोल्ड से ज़्यादा है, तो अपनी टीम के लिए ईमेल से सूचना पाने की सुविधा कॉन्फ़िगर की जा सकती है.