इस पेज पर, Performance Monitoring का इस्तेमाल शुरू करने या Performance Monitoring की सुविधाओं और टूल का इस्तेमाल करने से जुड़ी समस्याओं को हल करने के बारे में सलाह दी गई है.
समस्या हल करने के लिए सबसे पहले ये काम करें
यहां दो सामान्य जांचों के बारे में बताया गया है. इन्हें गड़बड़ी ठीक करने के लिए आगे की कार्रवाई करने से पहले, हर व्यक्ति को आज़माना चाहिए.
1. परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखना
अपने लॉग मैसेज देखें. इससे यह पक्का किया जा सकेगा कि Performance Monitoring SDK, परफ़ॉर्मेंस इवेंट कैप्चर कर रहा है.
परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखने का तरीका
बिल्ड के समय Performance Monitoring के लिए डीबग लॉगिंग चालू करें. इसके लिए, अपने ऐप्लिकेशन की
AndroidManifest.xmlफ़ाइल में<meta-data>एलिमेंट जोड़ें. जैसे:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>गड़बड़ी के मैसेज के लिए, अपने लॉग मैसेज देखें.
Performance Monitoring अपने लॉग मैसेज को
FirebasePerformanceसे टैग करता है. logcat फ़िल्टरिंग का इस्तेमाल करके, खास तौर पर अवधि के ट्रेस और एचटीटीपी/एस नेटवर्क अनुरोध की लॉगिंग देखी जा सकती है. इसके लिए, यह कमांड चलाएं:adb logcat -s FirebasePerformance
इन तरह के लॉग की जांच करें. इनसे पता चलता है कि Performance Monitoring परफ़ॉर्मेंस इवेंट लॉग कर रहा है:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URLLogging network request trace: URL
Firebase कंसोल में अपना डेटा देखने के लिए, यूआरएल पर क्लिक करें. डैशबोर्ड में डेटा अपडेट होने में कुछ समय लग सकता है.
अगर आपका ऐप्लिकेशन परफ़ॉर्मेंस इवेंट लॉग नहीं कर रहा है, तो समस्या हल करने के सुझाव देखें.
2. फ़ायरबेस स्थिति डैशबोर्ड की जाँच करें
अगर Firebase या Performance Monitoring में कोई ऐसी समस्या है जिसके बारे में पहले से जानकारी है, तो Firebase का स्टेटस डैशबोर्ड देखें.
Performance Monitoring का इस्तेमाल शुरू करना
अगर आपको Performance Monitoring (iOS+ | Android | Web) का इस्तेमाल शुरू करना है, तो समस्या हल करने से जुड़ी ये सलाह आपके काम आ सकती हैं. इनसे उन समस्याओं को हल करने में मदद मिल सकती है जिनमें Firebase को SDK टूल का पता लगाने या Firebase कंसोल में परफ़ॉर्मेंस का पहला डेटा दिखाने में समस्या आ रही है.
ऐप्लिकेशन में एसडीके टूल जोड़ा गया है, लेकिन कंसोल में अब भी एसडीके टूल जोड़ने का मैसेज दिख रहा है
जब Firebase को आपके ऐप्लिकेशन से इवेंट की जानकारी (जैसे, ऐप्लिकेशन के साथ इंटरैक्शन) मिलती है, तब वह यह पता लगा सकता है कि आपने अपने ऐप्लिकेशन में Performance Monitoring SDK टूल को सही तरीके से जोड़ा है या नहीं. आम तौर पर, ऐप्लिकेशन शुरू करने के 10 मिनट के अंदर, Firebase कंसोल के परफ़ॉर्मेंस डैशबोर्ड पर "एसडीके टूल का पता चला" मैसेज दिखता है. फिर, 30 मिनट के भीतर, डैशबोर्ड प्रारंभिक संसाधित डेटा प्रदर्शित करता है.
अगर आपने अपने ऐप्लिकेशन में एसडीके का नया वर्शन जोड़े हुए 10 मिनट से ज़्यादा हो गए हैं और आपको अब भी कोई बदलाव नहीं दिख रहा है, तो अपने लॉग मैसेज देखें. इससे यह पक्का किया जा सकेगा कि Performance Monitoring इवेंट लॉग कर रहा है. एसडीके का पता लगाने में देरी होने से जुड़ा मैसेज मिलने की समस्या हल करने के लिए, यहां दिया गया तरीका आज़माएं.
ऐप्लिकेशन इवेंट लॉग कर रहा है: समस्या हल करने का तरीका
पक्का करें कि Performance Monitoring Android SDK 19.1.0 या इसके बाद का वर्शन (या Firebase BoM 26.3.0 या इसके बाद का वर्शन) इस्तेमाल किया जा रहा हो. इसके बारे में ज़्यादा जानने के लिए, रिलीज़ नोट देखें.
अगर अब भी स्थानीय तौर पर डेवलपमेंट किया जा रहा है, तो डेटा इकट्ठा करने के लिए ज़्यादा इवेंट जनरेट करें:
- अपने ऐप्लिकेशन को बैकग्राउंड और फ़ोरग्राउंड के बीच कई बार स्विच करके इवेंट जनरेट करें. इसके अलावा, स्क्रीन पर नेविगेट करके अपने ऐप्लिकेशन से इंटरैक्ट करें और/या नेटवर्क अनुरोध ट्रिगर करें.
पक्का करें कि आपकी Firebase कॉन्फ़िगरेशन फ़ाइल (
google-services.json) को आपके ऐप्लिकेशन में सही तरीके से जोड़ा गया हो और आपने फ़ाइल में कोई बदलाव न किया हो. खास तौर पर, इनकी जांच करें:कॉन्फ़िगरेशन फ़ाइल के नाम में
(2)जैसे अतिरिक्त वर्ण नहीं जोड़े गए हैं.कॉन्फ़िगरेशन फ़ाइल, आपके ऐप्लिकेशन की मॉड्यूल (ऐप्लिकेशन-लेवल) डायरेक्ट्री में होती है.
कॉन्फ़िगरेशन फ़ाइल में दिया गया Firebase Android ऐप्लिकेशन आईडी (
mobilesdk_app_id) आपके ऐप्लिकेशन के लिए सही है. अपना Firebase ऐप्लिकेशन आईडी, settings प्रोजेक्ट की सेटिंग के आपके ऐप्लिकेशन कार्ड में ढूंढें.
अगर आपको अपने ऐप्लिकेशन की कॉन्फ़िगरेशन फ़ाइल में कोई गड़बड़ी दिखती है, तो यह तरीका आज़माएं:
अपने ऐप्लिकेशन में मौजूद कॉन्फ़िगरेशन फ़ाइल मिटाएं.
नई कॉन्फ़िगरेशन फ़ाइल डाउनलोड करने और उसे अपने Android ऐप्लिकेशन में जोड़ने के लिए, इन निर्देशों का पालन करें.
अगर एसडीके इवेंट लॉग कर रहा है और सब कुछ सही तरीके से सेट अप किया गया है, लेकिन आपको अब भी एसडीके का पता चलने से जुड़ा मैसेज या प्रोसेस किया गया डेटा नहीं दिख रहा है (10 मिनट के बाद), तो Firebase की सहायता टीम से संपर्क करें.
ऐप्लिकेशन में इवेंट लॉग नहीं हो रहे हैं: समस्या हल करने का तरीका
Performance Monitoring Gradle प्लगिन का सेटअप इस तरह से देखें:
पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की
build.gradleफ़ाइल मेंinstrumentationEnabled firebasePerformanceInstrumentationEnabledमें मौजूदgradle.propertiesफ़ाइल
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की
जांच करें कि आपकी
AndroidManifest.xmlफ़ाइल में, यहां दिए गए किसी भी फ़्लैग के ज़रिए Performance Monitoring एसडीके को बंद न किया गया हो:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
पक्का करें कि Performance Monitoring, नॉट रनटाइम पर बंद न हो.
अगर आपको अपने ऐप्लिकेशन में बंद की गई कोई सुविधा नहीं दिखती है, तो Firebase की सहायता टीम से संपर्क करें.
Console में यह दिखता है कि SDK टूल का पता चल गया है, लेकिन कोई डेटा नहीं दिखता
Performance Monitoring परफ़ॉर्मेंस इवेंट के डेटा को प्रोसेस करता है. इसके बाद, इसे परफ़ॉर्मेंस डैशबोर्ड में दिखाता है.
अगर "SDK का पता चला" मैसेज दिखने के 24 घंटे से ज़्यादा समय बीत चुका है और आपको अब भी डेटा नहीं दिख रहा है, तो Firebase के स्टेटस डैशबोर्ड पर जाकर देखें कि क्या कोई समस्या है. अगर कोई समस्या नहीं है, तो Firebase की सहायता टीम से संपर्क करें.
सामान्य समस्याएं हल करना
अगर आपने SDK टूल को जोड़ लिया है और अपने ऐप्लिकेशन में Performance Monitoring का इस्तेमाल किया जा रहा है, तो समस्या हल करने से जुड़ी यहां दी गई सलाह से, Performance Monitoring की सुविधाओं और टूलिंग से जुड़ी सामान्य समस्याओं को हल करने में मदद मिल सकती है.
ऐप्लिकेशन, परफ़ॉर्मेंस इवेंट लॉग नहीं कर रहा है
अगर आपको परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज नहीं दिख रहे हैं, तो समस्या हल करने के लिए यह तरीका आज़माएं:
Performance Monitoring Gradle प्लगिन का सेटअप इस तरह से देखें:
पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की
build.gradleफ़ाइल मेंinstrumentationEnabled firebasePerformanceInstrumentationEnabledमें मौजूदgradle.propertiesफ़ाइल
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की
जांच करें कि आपकी
AndroidManifest.xmlफ़ाइल में, यहां दिए गए किसी भी फ़्लैग के ज़रिए Performance Monitoring एसडीके को बंद न किया गया हो:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
पक्का करें कि Performance Monitoring, नॉट रनटाइम पर बंद न हो.
अगर आपको अपने ऐप्लिकेशन में बंद की गई कोई सुविधा नहीं दिखती है, तो Firebase की सहायता टीम से संपर्क करें.
परफ़ॉर्मेंस डैशबोर्ड में, स्क्रीन ट्रेस डेटा मौजूद नहीं है
अगर आपको स्क्रीन रेंडरिंग ट्रेस का डेटा नहीं दिख रहा है, तो समस्या हल करने के लिए यह तरीका आज़माएं:
पक्का करें कि Android SDK (v22.0.3) का नया वर्शन इस्तेमाल किया जा रहा हो. स्क्रीन रेंडरिंग के ट्रेस, सिर्फ़ v15.2.0 या इसके बाद के वर्शन में उपलब्ध हैं.
पक्का करें कि आपने किसी स्क्रीन के लिए, हार्डवेयर से तेज़ी लाएं की सुविधा को मैन्युअल तरीके से बंद न किया हो.
सुनिश्चित करें कि आप डेक्सगार्ड या जैक का उपयोग नहीं कर रहे हैं. Performance Monitoring इन टूलचेन के साथ काम नहीं करता.
DexGuard, ऐप्लिकेशन के शुरू होने, ऐप्लिकेशन के फ़ोरग्राउंड में होने, और ऐप्लिकेशन के बैकग्राउंड में होने के डेटा को अपने-आप इकट्ठा होने से रोकता है. हालांकि, अगर आपका ऐप्लिकेशन DexGuard का इस्तेमाल करता है, तो कस्टम कोड ट्रेस सामान्य तरीके से काम करने चाहिए.
जैक अप्रचलित है और आमतौर पर आपके ऐप में इसका उपयोग नहीं किया जाना चाहिए.
परफ़ॉर्मेंस डैशबोर्ड में, कस्टम ट्रेस का डेटा मौजूद नहीं है
क्या आपको अपने-आप इकट्ठा किए गए ट्रेस के लिए परफ़ॉर्मेंस डेटा दिख रहा है, लेकिन कस्टम कोड ट्रेस के लिए नहीं? समस्या हल करने के लिए, यह तरीका आज़माएं:
अगर आपने Trace API की मदद से कस्टम कोड ट्रेस किए हैं, तो ट्रेस के सेटअप की जांच करें. खास तौर पर, इनकी जांच करें:
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नाम इन ज़रूरी शर्तों को पूरा करते हों: नाम की शुरुआत या आखिर में कोई खाली जगह न हो, नाम की शुरुआत में अंडरस्कोर
(
_) वर्ण न हो, और नाम की ज़्यादा से ज़्यादा लंबाई 32 वर्ण हो. - सभी ट्रेसों को शुरू और बंद किया जाना चाहिए. कोई भी ट्रेस जो शुरू नहीं किया गया है, बंद नहीं किया गया है, या शुरू होने से पहले बंद कर दिया गया है, उसे लॉग नहीं किया जाएगा.
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नाम इन ज़रूरी शर्तों को पूरा करते हों: नाम की शुरुआत या आखिर में कोई खाली जगह न हो, नाम की शुरुआत में अंडरस्कोर
(
अगर आपने
@AddTraceनोटेशन की मदद से कस्टम कोड ट्रेस किए हैं, तो Performance Monitoring Gradle प्लगिन का सेटअप देखें:सुनिश्चित करें कि आपने प्लगइन सही तरीके से जोड़ा है. विशेष रूप से, निम्नलिखित की जाँच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-स्तर
build.gradleफ़ाइल में प्लगइन () के लिए क्लासपाथ निर्भरता शामिल की है.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-स्तर)
build.gradleफ़ाइल मेंinstrumentationEnabled firebasePerformanceInstrumentationEnabledमें मौजूदgradle.propertiesफ़ाइल
- आपके मॉड्यूल (ऐप्लिकेशन-स्तर)
अपने लॉग संदेशों की जांच करें ताकि यह सुनिश्चित किया जा सके कि Performance Monitoring अपेक्षित कस्टम कोड ट्रेस लॉग कर रहा है.
अगर Performance Monitoring इवेंट लॉग कर रहा है, लेकिन 24 घंटे बाद भी कोई डेटा नहीं दिखता है, तो Firebase की सहायता टीम से संपर्क करें.
परफ़ॉर्मेंस डैशबोर्ड में नेटवर्क अनुरोध का डेटा मौजूद नहीं है
यदि आपको नेटवर्क अनुरोध डेटा नहीं मिल रहा है, तो निम्न समस्या निवारण चरणों का प्रयास करें:
Android ऐप्लिकेशन के लिए, Performance Monitoring Gradle प्लग इन, इंस्ट्रुमेंटेशन की सुविधा चालू करता है. इससे एचटीटीपी/एस नेटवर्क अनुरोधों की अपने-आप निगरानी की जा सकती है. इनकी जांच करें:
सुनिश्चित करें कि आपने प्लगइन सही तरीके से जोड़ा है. विशेष रूप से, निम्नलिखित की जाँच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-स्तर
build.gradleफ़ाइल में प्लगइन () के लिए क्लासपाथ निर्भरता शामिल की है.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-स्तर)
build.gradleफ़ाइल मेंinstrumentationEnabled firebasePerformanceInstrumentationEnabledमें मौजूदgradle.propertiesफ़ाइल
- आपके मॉड्यूल (ऐप्लिकेशन-स्तर)
देखें कि नेटवर्क लाइब्रेरी, आपके सिस्टम के साथ काम करती है या नहीं. Performance Monitoring उन नेटवर्क अनुरोधों के लिए स्वचालित रूप से मीट्रिक एकत्रित करता है जो निम्न नेटवर्किंग लाइब्रेरी का उपयोग करते हैं: OkHttp 3.xx, Java का URLConnection, और Apache HttpClient.
ध्यान दें कि आप नेटवर्क अनुरोधों के लिए कस्टम मॉनिटरिंग जोड़ सकते हैं.
इन बातों का ध्यान रखें:
आपके कोड और कोड में इस्तेमाल की गई नेटवर्किंग लाइब्रेरी के व्यवहार के आधार पर, Performance Monitoring सिर्फ़ उन नेटवर्क अनुरोधों की रिपोर्ट दे सकता है जो पूरे हो चुके हैं. इसका मतलब है कि खुले हुए HTTP/S कनेक्शन की जानकारी नहीं दी जा सकती.
Performance Monitoring, DexGuard और Jack के साथ काम नहीं करता.
- DexGuard, एचटीटीपी/एस नेटवर्क अनुरोधों की निगरानी करने की सुविधा बंद कर देता है.
- Jack अब काम नहीं करता है. इसलिए, आम तौर पर इसका इस्तेमाल आपके ऐप्लिकेशन में नहीं किया जाना चाहिए.
Performance Monitoring, अमान्य
Content-Typeहेडर वाले नेटवर्क अनुरोधों की रिपोर्ट नहीं करता. हालांकि,Content-Typeहेडर के बिना किए गए नेटवर्क अनुरोध अब भी स्वीकार किए जाएंगे.
नेटवर्क अनुरोध का डेटा, उम्मीद के मुताबिक एग्रीगेट नहीं हो रहा है
यूआरएल पैटर्न के तहत, Performance Monitoring नेटवर्क अनुरोध का डेटा कैसे इकट्ठा करता है, इस बारे में ज़्यादा जानें.
कस्टम यूआरएल पैटर्न भी आज़माए जा सकते हैं!
अक्सर पूछे जाने वाले सवाल
Project home पर मौजूद परफ़ॉर्मेंस कार्ड में, सबसे ज़्यादा असर डालने वाली समस्याओं का क्या हुआ?
हमने सबसे ज़्यादा समस्याएं की जगह हाल के अलर्ट को शामिल किया है. ऐसा इसलिए किया गया है, क्योंकि हमने हाल ही में अलर्ट की सुविधा लॉन्च की है. इस सुविधा के तहत, तय की गई सीमाएं पार होने पर आपको अपने-आप सूचनाएं मिलती हैं. समस्याएं अब बंद कर दी गई हैं और उनकी जगह सूचनाओं को शामिल कर दिया गया है.
परफ़ॉर्मेंस कार्ड में सबसे ऊपर मौजूद ऐप्लिकेशन चुनने वाले टूल की मदद से, हाल ही की सूचनाएं में मौजूद सूचनाओं को फ़िल्टर किया जा सकता है. चुने गए ऐप्लिकेशन के लिए, सिर्फ़ तीन सबसे हाल की चेतावनियां दिखाई जाती हैं.
सूचनाओं के बारे में ज़्यादा जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए सूचनाएं सेट अप करना लेख पढ़ें.
कंसोल में समस्याओं के लिए थ्रेशोल्ड सेट करने की सुविधा का क्या हुआ?
Performance Monitoring, तय की गई थ्रेशोल्ड से ज़्यादा होने वाली मेट्रिक के लिए सूचनाएं पाने की सुविधा देता है. परफ़ॉर्मेंस मेट्रिक के लिए कॉन्फ़िगर किए जा सकने वाले थ्रेशोल्ड की वजह से भ्रम की स्थिति पैदा हो सकती है. इसलिए, हमने समस्याओं के लिए थ्रेशोल्ड कॉन्फ़िगर करने की सुविधा हटा दी है.
Firebase कंसोल में, 'जानकारी और मेट्रिक' सेक्शन का क्या हुआ?
हमने समस्या हल करने के तरीके को बेहतर बनाने के लिए, 'जानकारी' और 'मेट्रिक' पेजों को नए सिरे से डिज़ाइन किए गए, एक ही जगह पर मौजूद यूज़र इंटरफ़ेस (यूआई) से बदल दिया है. समस्या हल करने वाले इस नए यूज़र इंटरफ़ेस (यूआई) में, वही मुख्य सुविधाएं मिलती हैं जो 'जानकारी' और 'मेट्रिक' में मिलती थीं. समस्या हल करने के बारे में ज़्यादा जानने के लिए, किसी खास ट्रेस के लिए ज़्यादा डेटा देखना लेख पढ़ें.
नमूनों की संख्या मेरी उम्मीद के मुताबिक क्यों नहीं है?
Performance Monitoring आपके ऐप्लिकेशन के उपयोगकर्ताओं के डिवाइसों से परफ़ॉर्मेंस का डेटा इकट्ठा करता है. अगर आपके ऐप्लिकेशन का इस्तेमाल कई लोग करते हैं या ऐप्लिकेशन से परफ़ॉर्मेंस से जुड़ी कई गतिविधियां जनरेट होती हैं, तो Performance Monitoring, डेटा कलेक्शन को डिवाइसों के सबसेट तक सीमित कर सकता है. ऐसा प्रोसेस किए गए इवेंट की संख्या को कम करने के लिए किया जाता है. ये सीमाएं इतनी ज़्यादा हैं कि कम इवेंट होने पर भी, मेट्रिक की वैल्यू से यह पता चलता है कि उपयोगकर्ता को ऐप्लिकेशन इस्तेमाल करने का कैसा अनुभव मिला.
हम जो डेटा इकट्ठा करते हैं उसकी मात्रा को मैनेज करने के लिए, Performance Monitoring इन सैंपलिंग विकल्पों का इस्तेमाल करता है:
डिवाइस पर रेट लिमिट तय करना: किसी डिवाइस से अचानक बहुत ज़्यादा ट्रेस न भेजे जाएं, इसके लिए हम किसी डिवाइस से भेजे जाने वाले कोड और नेटवर्क अनुरोध के ट्रेस की संख्या को सीमित करते हैं. यह सीमा, हर 10 मिनट में 300 इवेंट होती है. इस तरीके से, डिवाइस को लूप किए गए इंस्ट्रुमेंटेशन से बचाया जाता है. ये इंस्ट्रुमेंटेशन, परफ़ॉर्मेंस का ज़्यादा डेटा भेज सकते हैं. साथ ही, यह किसी एक डिवाइस को परफ़ॉर्मेंस मेज़रमेंट को गलत तरीके से दिखाने से रोकता है.
डाइनैमिक सैंपलिंग: Performance Monitoring हर दिन, ऐप्लिकेशन इस्तेमाल करने वाले सभी लोगों के लिए, ऐप्लिकेशन के हिसाब से कोड ट्रेस और नेटवर्क अनुरोध ट्रेस की सीमित संख्या इकट्ठा करता है. डाइनैमिक सैंपलिंग रेट को डिवाइसों पर फ़ेच किया जाता है. इसके लिए, Firebase Remote Config का इस्तेमाल किया जाता है. इससे यह तय किया जाता है कि किसी डिवाइस को ट्रेस कैप्चर करके भेजना चाहिए या नहीं. सैंपलिंग के लिए नहीं चुना गया डिवाइस, कोई भी इवेंट नहीं भेजता है. डाइनैमिक सैंपलिंग रेट, ऐप्लिकेशन के हिसाब से तय होता है. यह इस तरह से अडजस्ट होता है कि इकट्ठा किए गए डेटा का कुल वॉल्यूम, तय सीमा से कम रहे.
जिन प्रोजेक्ट के लिए BigQuery इंटिग्रेशन चालू है उन्हें नेटवर्क अनुरोधों के ट्रेस की ज़्यादा सीमा मिलती है.
उपयोगकर्ता सेशन, उपयोगकर्ता के डिवाइस से ज़्यादा और ज़्यादा जानकारी वाला डेटा भेजते हैं. इसलिए, इस डेटा को कैप्चर और भेजने के लिए ज़्यादा संसाधनों की ज़रूरत होती है. उपयोगकर्ता सेशन के असर को कम करने के लिए, Performance Monitoring सेशन की संख्या को भी सीमित कर सकता है.
सर्वर-साइड पर दर सीमित करना: यह पक्का करने के लिए कि ऐप्लिकेशन, सैंपलिंग की सीमा से ज़्यादा डेटा न भेजें, Performance Monitoring सर्वर-साइड सैंपलिंग का इस्तेमाल कर सकता है. इससे डिवाइसों से मिले कुछ इवेंट को ड्रॉप किया जा सकता है. हालांकि, इस तरह की सीमा तय करने से हमारी मेट्रिक की परफ़ॉर्मेंस पर कोई असर नहीं पड़ता, लेकिन इससे पैटर्न में मामूली बदलाव हो सकते हैं. इनमें ये शामिल हैं:
- ट्रेस की संख्या, कोड के किसी हिस्से को एक्ज़ीक्यूट किए जाने की संख्या से अलग हो सकती है.
- कोड में एक-दूसरे से जुड़े हुए ट्रेस में, सैंपल की संख्या अलग-अलग हो सकती है.
कंसोल में समस्याएं टैब का क्या हुआ?
हमने 'समस्याएं' टैब की जगह चेतावनियों की सुविधा शुरू की है. यह सुविधा, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा होने पर, आपको अपने-आप सूचना देती है. अब आपको थ्रेशोल्ड की स्थिति का पता लगाने के लिए, Firebase कंसोल को मैन्युअल तरीके से देखने की ज़रूरत नहीं है. चेतावनी की सुविधा के बारे में जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए चेतावनियां सेट अप करना लेख पढ़ें.
कंसोल में मौजूद डिवाइस पर और नेटवर्क टैब का क्या हुआ? मैं उन पृष्ठों पर मौजूद निशानों को कैसे देख सकता हूँ?
हमने Firebase कंसोल के Performance Monitoring सेक्शन को फिर से डिज़ाइन किया है ताकि डैशबोर्ड टैब आपके मुख्य मेट्रिक और आपके सभी ट्रेस को एक ही स्थान पर प्रदर्शित कर सके. पुनः डिज़ाइन के भाग के रूप में, हमने डिवाइस पर और नेटवर्क पृष्ठ हटा दिए हैं.
डैशबोर्ड टैब के नीचे स्थित ट्रेस तालिका में वही सारी जानकारी होती है जो डिवाइस पर और नेटवर्क टैब में दिखाई जाती है, लेकिन इसमें कुछ अतिरिक्त सुविधाएं भी शामिल हैं, जिनमें किसी विशिष्ट मीट्रिक के प्रतिशत परिवर्तन के आधार पर आपके ट्रेस को क्रमबद्ध करने की क्षमता शामिल है. किसी विशिष्ट ट्रेस के सभी मीट्रिक और डेटा देखने के लिए, ट्रेस तालिका में ट्रेस नाम पर क्लिक करें.
ट्रेस टेबल के इन सब-टैब में अपने ट्रेस देखें:
- नेटवर्क अनुरोध ट्रेस (आउट-ऑफ़-द-बॉक्स और कस्टम दोनों) — नेटवर्क अनुरोध सबटैब
- कस्टम कोड ट्रेस — कस्टम ट्रेस सबटैब
- ऐप शुरू, ऐप-इन-फ़ोरग्राउंड, ऐप-इन-बैकग्राउंड ट्रेस — कस्टम ट्रेस सबटैब
- स्क्रीन रेंडरिंग ट्रेस — स्क्रीन रेंडरिंग सब-टैब
- पेज लोड ट्रेस — पेज लोड सबटैब
ट्रेस टेबल और मेट्रिक्स व डेटा देखने के बारे में विवरण के लिए, कंसोल अवलोकन पृष्ठ (iOS+ | Android | वेब) पर जाएं.
धीमे और रुके हुए फ़्रेमों की संख्या मेरी अपेक्षा के अनुरूप क्यों नहीं है?
धीमी रेंडरिंग फ़्रेम और फ्रोज़न फ़्रेम की गणना 60Hz की अनुमानित डिवाइस रिफ्रेश दर के साथ की जाती है. यदि किसी डिवाइस की रिफ्रेश दर 60Hz से कम है, तो प्रत्येक फ्रेम का रेंडरिंग समय धीमा होगा, क्योंकि प्रति सेकंड कम फ्रेम रेंडर किए जाते हैं. धीमी रेंडरिंग अवधि के कारण अधिक धीमी या रुकी हुई फ्रेम की रिपोर्ट हो सकती है, क्योंकि अधिक फ्रेम धीमी गति से रेंडर किए जाएंगे या रुक जाएंगे. हालाँकि, यदि किसी डिवाइस की रिफ्रेश दर 60Hz से अधिक है, तो प्रत्येक फ्रेम का रेंडरिंग समय तेज़ होगा. इससे कम फ़्रेम के धीमे चलने या फ़्रीज़ होने की शिकायत की जा सकती है. यह Performance Monitoring SDK में एक मौजूदा सीमा है.
मुझे फ़्रैगमेंट ट्रेस क्यों नहीं दिख रहे हैं?
ऐप्लिकेशन गतिविधि के साथ-साथ फ़्रैगमेंट की परफ़ॉर्मेंस देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन Performance Monitoring Android SDK के 20.1.0 या इसके बाद के वर्शन का इस्तेमाल कर रहा हो. ज़्यादा जानने के लिए, अपने ऐप्लिकेशन में परफ़ॉर्मेंस मॉनिटरिंग की सुविधा जोड़ना लेख पढ़ें.
मुझे कैसे पता चलेगा कि कौनसे ट्रेस, फ़्रैगमेंट और ऐक्टिविटी से जुड़े हैं?
फ़्रैगमेंट और ऐक्टिविटी के हर ट्रेस को, आपके ऐप्लिकेशन में तय किए गए क्लास नेम के आधार पर बनाया जाता है. स्क्रीन ट्रेस में, st प्रीफ़िक्स होता है. इसके बाद, क्लास का नाम होता है. Firebase कंसोल में, प्रीफ़िक्स हटा दिया जाता है. ज़्यादा जानने के लिए, स्क्रीन रेंडरिंग की परफ़ॉर्मेंस से जुड़े डेटा के बारे में जानें (Apple और Android ऐप्लिकेशन) लेख पढ़ें.
मुझे अन्य ट्रेस की तुलना में फ़्रैगमेंट ट्रेस कम क्यों दिख रहे हैं?
Performance Monitoring किसी डिवाइस पर इकट्ठा किए गए सभी इवेंट के लिए, इवेंट सैंपलिंग करता है. इस तरीके से, हमें उपयोगकर्ता के डिवाइसों से सिर्फ़ ज़रूरी इवेंट इकट्ठा करने में मदद मिलती है. इससे हम परफ़ॉर्मेंस मेट्रिक उपलब्ध करा पाते हैं.
मेरे ऐप्लिकेशन की रेंडरिंग परफ़ॉर्मेंस में कोई समस्या होने पर, मुझे इसकी सूचना कैसे मिलती है?
Performance Monitoring की मदद से, अपनी ज़रूरत की मेट्रिक के लिए सूचनाएं सेट अप की जा सकती हैं. जनरेट किए गए स्क्रीन रेंडरिंग ट्रेस के लिए, सूचनाएं सेट अप की जा सकती हैं. इससे आपको तब सूचना मिलेगी, जब धीमे और फ़्रीज़ हुए फ़्रेम का प्रतिशत, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाएगा.
Performance Monitoring Gradle प्लगिन चालू करने के बाद, मेरे बिल्ड में ज़्यादा समय लग रहा है. मैं इसे कैसे बेहतर बनाऊं?
Android के लिए Performance Monitoring, बाइटकोड इंस्ट्रुमेंटेशन का इस्तेमाल करता है. इससे कुछ ऐसी सुविधाएं मिलती हैं जो पहले से उपलब्ध होती हैं. जैसे, एचटीटीपी/एचटीटीपीएस नेटवर्क अनुरोधों की निगरानी करना. कंपाइलेशन के दौरान, इस प्रोसेस में आपके ऐप्लिकेशन की सभी क्लास (डिपेंडेंसी भी शामिल हैं) को दोहराना पड़ता है. ऐसा इसलिए किया जाता है, ताकि उस कोड को इंस्ट्रुमेंट किया जा सके जो आपके ऐप्लिकेशन के नेटवर्क अनुरोध की परफ़ॉर्मेंस को मेज़र करने के लिए ज़रूरी है.
यहां कुछ ऐसे मुख्य फ़ैक्टर दिए गए हैं जिनकी वजह से, ऐप्लिकेशन बनाने में ज़्यादा समय लगता है:
- क्लास या फ़ाइलों की संख्या
- उनमें से हर क्लास का साइज़ (कोड की लाइनें)
- मशीन का कॉन्फ़िगरेशन
- पहली बार बनाया गया ऐप्लिकेशन बनाम बाद में बनाया गया ऐप्लिकेशन (बाद में बनाए गए ऐप्लिकेशन, आम तौर पर पहली बार बनाए गए ऐप्लिकेशन की तुलना में ज़्यादा तेज़ी से बनते हैं)
बिल्ड टाइम को ऑप्टिमाइज़ करने के लिए, अपने कोड को मॉड्यूल में बांटें.
Performance Monitoring प्लगिन के v1.3.3 वर्शन से, हमने इंक्रीमेंटल बिल्ड प्रोसेसिंग और लाइब्रेरी इनपुट की कैश मेमोरी को बेहतर बनाने पर ध्यान दिया है. नवीनतम बिल्ड समय सुधार प्राप्त करने के लिए, सुनिश्चित करें कि आप प्लगइन (v2.0.2) का नवीनतम संस्करण उपयोग कर रहे हैं.
ध्यान दें कि अगर आप लंबे बिल्ड समय से बचना चाहते हैं, तो आप अपने डीबग बिल्ड के लिए Performance Monitoring प्लग-इन को स्थानीय रूप से अक्षम कर सकते हैं. हालाँकि, यह दृष्टिकोण उत्पादन बिल्ड के लिए अनुशंसित नहीं है, क्योंकि इसके परिणामस्वरूप आपके ऐप में नेटवर्क अनुरोधों के लिए प्रदर्शन माप छूट सकता है.
अगर मुझे Performance Monitoring Gradle प्लगिन के साथ काम न करने वाली लाइब्रेरी की वजह से, बिल्ड की गड़बड़ियां मिलती हैं, तो मुझे क्या करना चाहिए?
Android के लिए Performance Monitoring कुछ आउट-ऑफ-द-बॉक्स सुविधाएं प्रदान करने के लिए बाइटकोड इंस्ट्रूमेंटेशन का उपयोग करता है, जैसे HTTP/S नेटवर्क अनुरोधों की निगरानी करना. संकलन के एक भाग के रूप में, प्रक्रिया में आपके एप्लिकेशन के सभी वर्गों (निर्भरताओं सहित) के माध्यम से पुनरावृत्ति की आवश्यकता होती है ताकि कोड को इंस्ट्रूमेंट किया जा सके जो आपके एप्लिकेशन के नेटवर्क अनुरोध प्रदर्शन को मापने में महत्वपूर्ण है.
अगर आपको Performance Monitoring प्लग-इन के साथ इंटीग्रेट करने के बाद JSR/RET are not supported with
computeFrames option जैसी बिल्ड एरर या इसी तरह की एरर मिलती हैं, तो ऐसा इसलिए हो सकता है क्योंकि आपकी निर्भरता किसी ऐसी लाइब्रेरी पर है जो Performance Monitoring Gradle प्लग-इन के साथ असंगत है.
इससे बचने के लिए, आप इन चरणों का पालन करके असंगत क्लासों/लाइब्रेरीज़ को इंस्ट्रूमेंटेशन से बाहर कर सकते हैं:
- Performance Monitoring Gradle प्लगिन को नए वर्शन (कम से कम v1.4.0) पर अपडेट करें.
- Android Gradle प्लग इन के वर्शन को v7.2.0 या इसके बाद के वर्शन पर अपडेट करें.
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की
build.gradleफ़ाइल में यह फ़्लैग जोड़ें, ताकि काम न करने वाली क्लास/लाइब्रेरी को इंस्ट्रुमेंटेशन से बाहर रखा जा सके: Android Gradle प्लगिन केandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
Instrumentationएपीआई कीexcludeप्रॉपर्टी के बारे में ज़्यादा जानने के लिए, इंस्ट्रुमेंटेशन देखें.
अगर आपको ऐसी लाइब्रेरी की वजह से बिल्ड से जुड़ी गड़बड़ियां मिलती हैं जो आपके प्रोजेक्ट के साथ काम नहीं करती हैं, तो कृपया Github पर समस्या की शिकायत करें. इससे इन लाइब्रेरी को Performance Monitoring प्लगिन में इंस्ट्रुमेंट किए जाने से भी रोका जा सकेगा.
मेरे Performance Monitoring डेटा को BigQuery में निर्यात होने में अपेक्षा से अधिक समय लग रहा है. क्या यह रीयल टाइम में नहीं होता है?
अगर आपने Firebase Performance Monitoring के लिए BigQuery एकीकरण सक्षम किया है, तो आपका डेटा दिन के अंत (प्रशांत समय) के 12 से 24 घंटे बाद BigQuery में निर्यात किया जाएगा.
उदाहरण के लिए, 19 अप्रैल का डेटा 20 अप्रैल को दोपहर 12:00 बजे से मध्यरात्रि के बीच BigQuery में उपलब्ध होगा (सभी तिथियां और समय प्रशांत समय के अनुसार हैं).
डेटा को करीब-करीब रीयल-टाइम में प्रोसेस और डिसप्ले करना
"करीब-करीब रीयल-टाइम" परफ़ॉर्मेंस डेटा का क्या मतलब है?
Firebase Performance Monitoring, परफ़ॉर्मेंस से जुड़े डेटा को इकट्ठा करके उसे प्रोसेस करता है. इससे Firebase कंसोल में, करीब-करीब रीयल-टाइम में डेटा दिखता है. प्रोसेस किया गया डेटा, इकट्ठा होने के कुछ ही मिनटों में कंसोल में दिखने लगता है. इसलिए, इसे "रीयल-टाइम के आस-पास" कहा जाता है.
करीब-करीब रीयल-टाइम में डेटा प्रोसेस करने की सुविधा का फ़ायदा लेने के लिए, पक्का करें कि आपका ऐप्लिकेशन, रीयल-टाइम के साथ काम करने वाले SDK टूल के वर्शन का इस्तेमाल करता हो.
मुझे अपने ऐप्लिकेशन के लिए, रीयल-टाइम में परफ़ॉर्मेंस का डेटा कैसे मिलेगा?
रीयल-टाइम के आस-पास डेटा प्रोसेसिंग की सुविधा का फ़ायदा लेने के लिए, आपको सिर्फ़ यह पक्का करना होगा कि आपका ऐप्लिकेशन, Performance Monitoring के ऐसे एसडीके वर्शन का इस्तेमाल करता हो जो रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करता हो.
ये SDK टूल के ऐसे वर्शन हैं जो रीयल-टाइम में काम करते हैं:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — v8.9.0 या इसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हम हमेशा एसडीके के नए वर्शन का इस्तेमाल करने का सुझाव देते हैं. हालांकि, ऊपर दिए गए किसी भी वर्शन से, Performance Monitoring को आपके डेटा को रीयल टाइम में प्रोसेस करने की सुविधा मिलेगी.
Performance Monitoring SDK के किन वर्शन को रीयल-टाइम के साथ काम करने वाला माना जाता है?
SDK टूल के ये वर्शन, रीयल-टाइम में डेटा प्रोसेस करने की सुविधा के साथ काम करते हैं:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — v8.9.0 या इसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हम हमेशा एसडीके के नए वर्शन का इस्तेमाल करने का सुझाव देते हैं. हालांकि, ऊपर दिए गए किसी भी वर्शन से, Performance Monitoring को आपके डेटा को रीयल टाइम में प्रोसेस करने की सुविधा मिलेगी.
अगर मैंने अपने ऐप्लिकेशन को, रीयल-टाइम में काम करने वाले एसडीके के वर्शन का इस्तेमाल करने के लिए अपडेट नहीं किया, तो क्या होगा?
अगर आपका ऐप्लिकेशन, रीयल-टाइम रिपोर्टिंग की सुविधा के साथ काम करने वाले एसडीके वर्शन का इस्तेमाल नहीं करता है, तो भी आपको Firebase कंसोल में अपने ऐप्लिकेशन की परफ़ॉर्मेंस का पूरा डेटा दिखेगा. हालांकि, परफ़ॉर्मेंस डेटा दिखने में करीब 36 घंटे लगेंगे. यह समय, डेटा इकट्ठा होने के समय से शुरू होगा.
मैंने रीयल-टाइम में काम करने वाले SDK टूल के वर्शन पर अपडेट कर लिया है, लेकिन मेरे कुछ उपयोगकर्ता अब भी मेरे ऐप्लिकेशन के पुराने वर्शन इस्तेमाल कर रहे हैं. क्या मुझे Firebase कंसोल में, उनके परफ़ॉर्मेंस डेटा का ऐक्सेस मिलता रहेगा?
हां! कोई भी ऐप्लिकेशन इंस्टेंस SDK के किसी भी संस्करण का उपयोग करता हो, आपको अपने सभी उपयोगकर्ताओं का प्रदर्शन डेटा दिखाई देगा.
हालांकि, अगर आपको हाल ही का डेटा (लगभग 36 घंटे से कम पुराना) देखना है, तो दिखाया गया डेटा, ऐप्लिकेशन इंस्टेंस के उन उपयोगकर्ताओं का होता है जो रीयलटाइम के साथ काम करने वाले एसडीके वर्शन का इस्तेमाल कर रहे हैं. हालांकि, हाल ही का नहीं डेटा में, आपके ऐप्लिकेशन के सभी वर्शन का परफ़ॉर्मेंस डेटा शामिल होता है.
Firebase सहायता से संपर्क करना
अगर आपको Firebase सहायता टीम से संपर्क करना है, तो हमेशा अपना Firebase ऐप्लिकेशन आईडी शामिल करें. अपनी settings प्रोजेक्ट सेटिंग के आपके ऐप्लिकेशन कार्ड में अपना Firebase ऐप्लिकेशन आईडी ढूंढें.