Performance Monitoring, ट्रेस इकट्ठा करता है, ताकि आप अपने ऐप्लिकेशन की परफ़ॉर्मेंस को मॉनिटर कर सकें. ट्रेस, आपके ऐप्लिकेशन में दो समय के बीच कैप्चर किए गए परफ़ॉर्मेंस डेटा की रिपोर्ट होती है.
Performance Monitoring से अपने-आप इकट्ठा किए गए नेटवर्क रिक्वेस्ट ट्रेस में, आपके ऐप्लिकेशन के लिए ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों की रिपोर्ट न की जाए या नेटवर्क अनुरोध करने के लिए, किसी दूसरी लाइब्रेरी का इस्तेमाल किया जाए. ऐसे मामलों में, Performance Monitoring एपीआई का इस्तेमाल करके, कस्टम नेटवर्क रिक्वेस्ट ट्रेस को मैन्युअल तरीके से इंस्ट्रुमेंट किया जा सकता है. कस्टम नेटवर्क रिक्वेस्ट ट्रेस सिर्फ़ Apple और Android ऐप्लिकेशन के लिए काम करते हैं.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस के लिए डिफ़ॉल्ट मेट्रिक, Performance Monitoring से अपने-आप इकट्ठा किए गए नेटवर्क रिक्वेस्ट ट्रेस के लिए डिफ़ॉल्ट मेट्रिक जैसी ही होती हैं. खास तौर पर, रिस्पॉन्स टाइम, रिस्पॉन्स और रिक्वेस्ट पेलोड का साइज़, और सक्सेस रेट. कस्टम नेटवर्क रिक्वेस्ट ट्रेस में, कस्टम मेट्रिक जोड़ने की सुविधा उपलब्ध नहीं है.
अपने कोड में, Performance Monitoring SDK टूल से मिले एपीआई का इस्तेमाल करके, कस्टम नेटवर्क रिक्वेस्ट ट्रेस की शुरुआत और आखिर को तय किया जाता है.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस, Firebase कंसोल में उन नेटवर्क अनुरोधों के साथ दिखते हैं जिन्हें Performance Monitoring अपने-आप कैप्चर करता है. ये ट्रेस, ट्रेस टेबल के नेटवर्क अनुरोध सब-टैब में दिखते हैं.
कस्टम नेटवर्क रिक्वेस्ट ट्रेस जोड़ना
खास नेटवर्क अनुरोधों को मॉनिटर करने के लिए, कस्टम नेटवर्क अनुरोध ट्रेस जोड़ें. इसके लिए, Performance Monitoring एचटीटीपीमेट्रिक एपीआई (Swift | Obj-C) का इस्तेमाल करें.
Performance Monitoring में कस्टम नेटवर्क अनुरोधों को मैन्युअल तरीके से इंस्ट्रुमेंट करने के लिए, यहां दिए गए कोड जैसा कोड जोड़ें:
Swift
guard let metric = HTTPMetric(url: "https://www.google.com", httpMethod: .get) else { return }
metric.start()
guard let url = URL(string: "https://www.google.com") else { return }
let request: URLRequest = URLRequest(url:url)
let session = URLSession(configuration: .default)
let dataTask = session.dataTask(with: request) { (urlData, response, error) in
if let httpResponse = response as? HTTPURLResponse {
metric.responseCode = httpResponse.statusCode
}
metric.stop()
}
dataTask.resume()
Objective-C
@property (nonatomic) FIRHTTPMetric *metric;
- (void)beginManualNetworkInstrumentation {
self.metric =
[[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]
HTTPMethod:FIRHTTPMethodGET];
[self.metric start];
NSURLRequest *request =
[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
[connection resume];
}
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *) response {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response
self.metric.responseCode = httpResponse.statusCode;
[self.metric stop];
}
कस्टम नेटवर्क रिक्वेस्ट ट्रेस में, कस्टम एट्रिब्यूट (Swift | Obj-C) भी जोड़े जा सकते हैं. हालांकि, इनमें कस्टम मेट्रिक नहीं जोड़ी जा सकतीं.
अगले चरण
- आपके ऐप्लिकेशन की परफ़ॉर्मेंस को खराब करने वाले नेटवर्क अनुरोधों के लिए, सूचनाएं सेट अप करें. उदाहरण के लिए, अगर किसी यूआरएल पैटर्न के लिए रिस्पॉन्स टाइम आपकी सेट की गई थ्रेशोल्ड से ज़्यादा है, तो अपनी टीम के लिए ईमेल से सूचना पाने की सुविधा कॉन्फ़िगर की जा सकती है.