अलग-अलग नेटवर्क के अनुरोधों (Apple और Android ऐप्लिकेशन) के लिए, कस्टम मॉनिटरिंग जोड़ना

परफ़ॉर्मेंस मॉनिटर करने की सुविधा, ट्रेस इकट्ठा करती है, ताकि आप ऐप्लिकेशन की परफ़ॉर्मेंस पर नज़र रख सकें. ट्रेस, आपके ऐप्लिकेशन में दो बिंदुओं के बीच कैप्चर किए गए परफ़ॉर्मेंस डेटा की रिपोर्ट होती है.

परफ़ॉर्मेंस मॉनिटर करने की सुविधा की मदद से अपने-आप इकट्ठा किए गए नेटवर्क रिक्वेस्ट ट्रेस में, आपके ऐप्लिकेशन के लिए ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों को रिपोर्ट न किया जाए या नेटवर्क अनुरोधों के लिए किसी दूसरी लाइब्रेरी का इस्तेमाल किया जाए. ऐसे मामलों में, कस्टम नेटवर्क अनुरोध के ट्रेस को मैन्युअल तरीके से सेट करने के लिए, परफ़ॉर्मेंस मॉनिटर करने वाले एपीआई का इस्तेमाल किया जा सकता है. कस्टम नेटवर्क के अनुरोध के लिए ट्रेस की सुविधा, सिर्फ़ Apple और Android ऐप्लिकेशन पर काम करती है.

कस्टम नेटवर्क अनुरोध ट्रेस के लिए डिफ़ॉल्ट मेट्रिक, परफ़ॉर्मेंस मॉनिटर करने की सुविधा से अपने-आप इकट्ठा होने वाले नेटवर्क अनुरोध ट्रेस की डिफ़ॉल्ट मेट्रिक होती हैं. खास तौर पर, रिस्पॉन्स टाइम, रिस्पॉन्स और अनुरोध पेलोड का साइज़, और सफलता की दर. कस्टम नेटवर्क अनुरोध के ट्रेस में, कस्टम मेट्रिक नहीं जोड़ी जा सकती.

अपने कोड में, परफ़ॉर्मेंस मॉनिटर करने वाले SDK टूल से मिले एपीआई का इस्तेमाल करके, कस्टम नेटवर्क अनुरोध ट्रेस की शुरुआत और आखिर का पता बताएं.

कस्टम नेटवर्क के अनुरोध के ट्रेस, Firebase कंसोल में उन नेटवर्क अनुरोधों के साथ दिखते हैं जिन्हें परफ़ॉर्मेंस मॉनिटर करने की सुविधा अपने-आप कैप्चर करती है. यह ट्रेस टेबल के नेटवर्क अनुरोध सबटेबल में होता है.

नेटवर्क के अनुरोध के लिए कस्टम ट्रेस जोड़ें

नेटवर्क के खास अनुरोधों पर नज़र रखने के लिए, कस्टम नेटवर्क अनुरोध ट्रेस जोड़ने के लिए, परफ़ॉर्मेंस मॉनिटरिंग HttpMetric API का इस्तेमाल करें.

परफ़ॉर्मेंस मॉनिटर करने की सुविधा में, कस्टम नेटवर्क के अनुरोधों को मैन्युअल तरीके से सेट करने के लिए, यहां दिया गया कोड जोड़ें:

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();

कस्टम नेटवर्क के अनुरोध के ट्रेस में, कस्टम एट्रिब्यूट भी जोड़े जा सकते हैं, लेकिन कस्टम मेट्रिक नहीं.

अगले चरण

  • ऐसे नेटवर्क अनुरोधों के लिए सूचनाएं सेट अप करें जो आपके ऐप्लिकेशन की परफ़ॉर्मेंस को खराब कर रहे हैं. उदाहरण के लिए, अगर किसी खास यूआरएल पैटर्न के लिए जवाब देने का समय, तय की गई सीमा से ज़्यादा हो जाता है, तो अपनी टीम के लिए ईमेल सूचना कॉन्फ़िगर की जा सकती है.