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

प्रदर्शन मॉनिटरिंग आपके ऐप के प्रदर्शन की निगरानी में मदद करने के लिए निशान एकत्र करती है। ट्रेस आपके ऐप में दो समय बिंदुओं के बीच कैप्चर किए गए प्रदर्शन डेटा की एक रिपोर्ट है।

प्रदर्शन मॉनिटरिंग द्वारा स्वचालित रूप से एकत्र किए गए नेटवर्क अनुरोध ट्रेस में आपके ऐप के लिए अधिकांश नेटवर्क अनुरोध शामिल हैं। हालाँकि, कुछ अनुरोध रिपोर्ट नहीं किए जा सकते हैं या आप नेटवर्क अनुरोध करने के लिए किसी भिन्न लाइब्रेरी का उपयोग कर सकते हैं। इन मामलों में, आप कस्टम नेटवर्क अनुरोध ट्रेस को मैन्युअल रूप से साधने के लिए प्रदर्शन मॉनिटरिंग एपीआई का उपयोग कर सकते हैं। कस्टम नेटवर्क अनुरोध ट्रेस केवल Apple और Android ऐप्स के लिए समर्थित हैं।

कस्टम नेटवर्क अनुरोध ट्रेस के लिए डिफ़ॉल्ट मेट्रिक्स प्रदर्शन मॉनिटरिंग द्वारा स्वचालित रूप से एकत्र किए गए नेटवर्क अनुरोध ट्रेस के समान होते हैं, विशेष रूप से प्रतिक्रिया समय, प्रतिक्रिया और अनुरोध पेलोड आकार और सफलता दर। कस्टम नेटवर्क अनुरोध ट्रेस कस्टम मेट्रिक्स जोड़ने का समर्थन नहीं करते हैं।

अपने कोड में, आप प्रदर्शन मॉनिटरिंग एसडीके द्वारा प्रदान की गई एपीआई का उपयोग करके एक कस्टम नेटवर्क अनुरोध ट्रेस की शुरुआत और अंत को परिभाषित करते हैं।

कस्टम नेटवर्क अनुरोध ट्रेस फायरबेस कंसोल में नेटवर्क अनुरोधों के साथ दिखाई देते हैं जिन्हें प्रदर्शन मॉनिटरिंग स्वचालित रूप से कैप्चर करता है (ट्रेस तालिका के नेटवर्क अनुरोध उपटैब में)।

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

विशिष्ट नेटवर्क अनुरोधों की निगरानी के लिए कस्टम नेटवर्क अनुरोध ट्रेस जोड़ने के लिए प्रदर्शन मॉनिटरिंग 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();

कस्टम नेटवर्क अनुरोध ट्रेस कस्टम विशेषताएँ जोड़ने का भी समर्थन करते हैं लेकिन कस्टम मेट्रिक्स का नहीं।

अगले कदम

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