इस पेज पर, Performance Monitoring का इस्तेमाल शुरू करने या Performance Monitoring की सुविधाओं और टूल का इस्तेमाल करने से जुड़ी समस्याओं को हल करने के बारे में सलाह दी गई है.
समस्या हल करने के लिए सबसे पहले की जाने वाली जांच
समस्या हल करने से पहले, यहां दी गई दो जांचें करना सबसे सही तरीका है.
1. परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखना
अपने लॉग मैसेज देखें और पक्का करें कि Performance Monitoring SDK टूल, परफ़ॉर्मेंस इवेंट कैप्चर कर रहा है.
परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखने का तरीका
अपने ऐप्लिकेशन की
AndroidManifest.xml
फ़ाइल में<meta-data>
एलिमेंट जोड़कर, बिल्ड के समय Performance Monitoring के लिए डीबग लॉगिंग चालू करें. जैसे:<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_URL
Logging network request trace: URL
Firebase कंसोल में अपना डेटा देखने के लिए, यूआरएल पर क्लिक करें. डैशबोर्ड में डेटा अपडेट होने में कुछ समय लग सकता है.
अगर आपका ऐप्लिकेशन परफ़ॉर्मेंस इवेंट को लॉग नहीं कर रहा है, तो समस्या हल करने के तरीकों के बारे में जानें.
2. Firebase का स्टेटस डैशबोर्ड देखना
अगर Firebase या Performance Monitoring के लिए कोई समस्या है, तो Firebase का स्टेटस डैशबोर्ड देखें.
Performance Monitoring का इस्तेमाल शुरू करना
अगर आपने Performance Monitoring (iOS+ | Android | वेब) का इस्तेमाल शुरू किया है, तो समस्या हल करने के लिए यहां दी गई सलाह देखें. इनसे, Firebase के SDK टूल का पता लगाने या Firebase कंसोल में परफ़ॉर्मेंस का पहला डेटा दिखाने से जुड़ी समस्याओं को हल करने में मदद मिल सकती है.
ऐप्लिकेशन में SDK टूल जोड़ दिया गया है, लेकिन console में अब भी SDK टूल जोड़ने का मैसेज दिख रहा है
Firebase यह पता लगा सकता है कि आपने अपने ऐप्लिकेशन में Performance Monitoring SDK टूल को जोड़ा है या नहीं. ऐसा तब होता है, जब उसे आपके ऐप्लिकेशन से इवेंट की जानकारी (जैसे, ऐप्लिकेशन इंटरैक्शन) मिलती है. आम तौर पर, ऐप्लिकेशन शुरू करने के 10 मिनट के अंदर, Firebase कंसोल के परफ़ॉर्मेंस डैशबोर्ड पर "SDK टूल का पता चला" मैसेज दिखता है. इसके बाद, 30 मिनट के अंदर डैशबोर्ड में प्रोसेस किया गया शुरुआती डेटा दिखने लगता है.
अगर आपने अपने ऐप्लिकेशन में SDK टूल का नया वर्शन जोड़ने के 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
), आपके ऐप्लिकेशन के लिए सही है. settings प्रोजेक्ट की सेटिंग के आपके ऐप्लिकेशन कार्ड में अपना Firebase ऐप्लिकेशन आईडी ढूंढें.
अगर आपको अपने ऐप्लिकेशन में कॉन्फ़िगरेशन फ़ाइल में कोई गड़बड़ी दिखती है, तो यह तरीका आज़माएं:
अपने ऐप्लिकेशन में मौजूद कॉन्फ़िगरेशन फ़ाइल मिटाएं.
नई कॉन्फ़िगरेशन फ़ाइल डाउनलोड करने और उसे अपने Android ऐप्लिकेशन में जोड़ने के लिए, इन निर्देशों का पालन करें.
अगर SDK टूल, इवेंट को लॉग कर रहा है और सब कुछ सही तरीके से सेट अप है, लेकिन आपको 10 मिनट बाद भी SDK टूल का पता चलने का मैसेज या प्रोसेस किया गया डेटा नहीं दिख रहा है, तो Firebase की सहायता टीम से संपर्क करें.
ऐप्लिकेशन, इवेंट लॉग नहीं कर रहा है: समस्या हल करने का तरीका
Performance Monitoring Gradle प्लग इन के सेटअप की जांच करने के लिए, यह तरीका अपनाएं:
पक्का करें कि आपने प्लग इन को सही तरीके से जोड़ा हो. खास तौर पर, इन बातों का ध्यान रखें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradle
फ़ाइल में प्लग इन (
) जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने प्रोजेक्ट-लेवल
build.gradle
फ़ाइल में, प्लग इन (
) के लिए क्लासपाथ डिपेंडेंसी शामिल की है.classpath 'com.google.firebase:perf-plugin:1.4.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी एक फ़्लैग की मदद से, प्लग इन बंद न किया गया हो:
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradle
फ़ाइल मेंinstrumentationEnabled
firebasePerformanceInstrumentationEnabled
में मौजूदgradle.properties
फ़ाइल
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
देखें कि आपकी
AndroidManifest.xml
फ़ाइल में, इनमें से किसी एक फ़्लैग की मदद से Performance Monitoring SDK टूल बंद न किया गया हो :firebase_performance_collection_enabled
firebase_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:1.4.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी एक फ़्लैग की मदद से, प्लग इन बंद न किया गया हो:
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradle
फ़ाइल मेंinstrumentationEnabled
firebasePerformanceInstrumentationEnabled
में मौजूदgradle.properties
फ़ाइल
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
देखें कि आपकी
AndroidManifest.xml
फ़ाइल में, इनमें से किसी एक फ़्लैग की मदद से Performance Monitoring SDK टूल बंद न किया गया हो :firebase_performance_collection_enabled
firebase_performance_collection_deactivated
पक्का करें कि Performance Monitoring, रनटाइम के दौरान बंद न हो.
अगर आपको अपने ऐप्लिकेशन में बंद की गई कोई सुविधा नहीं मिलती है, तो Firebase की सहायता टीम से संपर्क करें.
परफ़ॉर्मेंस डैशबोर्ड में स्क्रीन ट्रेस का डेटा मौजूद नहीं है
अगर आपको स्क्रीन रेंडरिंग ट्रेस का डेटा नहीं मिल रहा है, तो समस्या हल करने के लिए यह तरीका आज़माएं:
पक्का करें कि आपने Android SDK टूल के सबसे नए वर्शन (v21.0.2) का इस्तेमाल किया हो. स्क्रीन रेंडरिंग ट्रेस की सुविधा, सिर्फ़ v15.2.0 या इसके बाद के वर्शन के साथ उपलब्ध है.
पक्का करें कि आपने किसी स्क्रीन के लिए, हार्डवेयर से तेज़ी लाएं सुविधा को मैन्युअल तरीके से बंद न किया हो.
पक्का करें कि आपने DexGuard या Jack का इस्तेमाल न किया हो. Performance Monitoring, इन टूलचेन के साथ काम नहीं करता.
DexGuard, ऐप्लिकेशन के शुरू होने, ऐप्लिकेशन के फ़ोरग्राउंड में होने, और ऐप्लिकेशन के बैकग्राउंड में होने के डेटा को अपने-आप इकट्ठा होने की सुविधा बंद कर देता है. हालांकि, अगर आपका ऐप्लिकेशन DexGuard का इस्तेमाल करता है, तो किसी भी कस्टम कोड के ट्रेस का काम सामान्य तरीके से चलना चाहिए.
Jack का इस्तेमाल अब नहीं किया जाना चाहिए. आम तौर पर, अपने ऐप्लिकेशन में इसका इस्तेमाल नहीं किया जाना चाहिए.
परफ़ॉर्मेंस डैशबोर्ड में कस्टम ट्रेस डेटा मौजूद नहीं है
क्या आपको अपने-आप इकट्ठा हुए ट्रेस का परफ़ॉर्मेंस डेटा दिख रहा है, लेकिन कस्टम कोड ट्रेस का नहीं? समस्या हल करने के लिए, यह तरीका आज़माएं:
अगर आपने Trace API की मदद से कस्टम कोड ट्रैस को इंस्ट्रूमेंट किया है, तो ट्रैस के सेटअप की जांच करें. खास तौर पर, इनकी जांच करें:
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नामों को इन ज़रूरी शर्तों को पूरा करना होगा: नाम के शुरू या आखिर में कोई खाली जगह नहीं होनी चाहिए. नाम के शुरू में अंडरस्कोर (
_
) वर्ण नहीं होना चाहिए. साथ ही, नाम की लंबाई ज़्यादा से ज़्यादा 32 वर्ण होनी चाहिए. - सभी ट्रैक शुरू और बंद होने चाहिए. ट्रैकिंग शुरू न करने, शुरू करने के बाद बंद न करने या शुरू होने से पहले बंद करने पर, ट्रैकिंग को लॉग नहीं किया जाएगा.
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नामों को इन ज़रूरी शर्तों को पूरा करना होगा: नाम के शुरू या आखिर में कोई खाली जगह नहीं होनी चाहिए. नाम के शुरू में अंडरस्कोर (
अगर आपने
@AddTrace
नोटेशन की मदद से कस्टम कोड ट्रैस को इंस्ट्रूमेंट किया है, तो Performance Monitoring Gradle प्लगिन के सेटअप की जांच करें:पक्का करें कि आपने प्लग इन को सही तरीके से जोड़ा हो. खास तौर पर, इन बातों का ध्यान रखें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradle
फ़ाइल में प्लग इन (
) जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने प्रोजेक्ट-लेवल
build.gradle
फ़ाइल में, प्लग इन (
) के लिए क्लासपाथ डिपेंडेंसी शामिल की है.classpath 'com.google.firebase:perf-plugin:1.4.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:1.4.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी एक फ़्लैग की मदद से, प्लग इन बंद न किया गया हो:
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradle
फ़ाइल मेंinstrumentationEnabled
firebasePerformanceInstrumentationEnabled
में मौजूदgradle.properties
फ़ाइल
- अपने मॉड्यूल (ऐप्लिकेशन-लेवल)
देखें कि नेटवर्क लाइब्रेरी साथ काम करती है या नहीं. Performance Monitoring, नेटवर्क से जुड़े उन अनुरोधों के लिए मेट्रिक अपने-आप इकट्ठा करता है जो इन नेटवर्किंग लाइब्रेरी का इस्तेमाल करते हैं: OkHttp 3.x.x, Java का URLConnection, और Apache HttpClient.
ध्यान दें कि नेटवर्क अनुरोधों के लिए कस्टम मॉनिटरिंग जोड़ी जा सकती है.
इन बातों का ध्यान रखें:
आपके कोड के व्यवहार और आपके कोड में इस्तेमाल की गई नेटवर्किंग लाइब्रेरी के आधार पर, Performance Monitoring सिर्फ़ पूरे हो चुके नेटवर्क अनुरोधों की रिपोर्ट कर सकता है. इसका मतलब है कि खुले हुए एचटीटीपी/एस कनेक्शन की शिकायत नहीं की जा सकती.
Performance Monitoring, DexGuard और Jack के साथ काम नहीं करता.
- DexGuard, एचटीटीपी/एचटीटीपीएस नेटवर्क अनुरोधों की निगरानी करने की सुविधा बंद कर देता है.
- Jack का इस्तेमाल अब नहीं किया जाना चाहिए. आम तौर पर, अपने ऐप्लिकेशन में इसका इस्तेमाल नहीं किया जाना चाहिए.
Performance Monitoring, अमान्य
Content-Type
हेडर वाले नेटवर्क अनुरोधों की शिकायत नहीं करता. हालांकि,Content-Type
हेडर के बिना नेटवर्क अनुरोध अब भी स्वीकार किए जाएंगे.
नेटवर्क अनुरोध का डेटा, उम्मीद के मुताबिक इकट्ठा नहीं हो रहा है
यूआरएल पैटर्न के तहत, Performance Monitoring नेटवर्क अनुरोध का डेटा कैसे इकट्ठा करता है, इस बारे में ज़्यादा जानें.
कस्टम यूआरएल पैटर्न भी आज़माए जा सकते हैं!
अक्सर पूछे जाने वाले सवाल
प्रोजेक्ट के होम पेज पर मौजूद परफ़ॉर्मेंस कार्ड में, 'सबसे ज़्यादा समस्याएं' कार्ड का क्या हुआ?
हमने हाल ही में अलर्ट की सुविधा शुरू की थी. इसके फ़ॉलो-अप के तौर पर, हमने मुख्य समस्याएं को हाल ही की सूचनाएं से बदल दिया है. यह सुविधा, सेट किए गए थ्रेशोल्ड के पार जाने पर, आपको अपने-आप सूचना देती है. समस्याओं की सुविधा अब बंद कर दी गई है और इसकी जगह सूचनाएं दी जाएंगी.
परफ़ॉर्मेंस कार्ड में सबसे ऊपर मौजूद ऐप्लिकेशन सिलेक्टर, हाल ही की सूचनाएं में सूचनाएं डालता है. चुने गए ऐप्लिकेशन के लिए, सिर्फ़ तीन सबसे हाल की सूचनाएं दिखती हैं.
सूचनाओं के बारे में ज़्यादा जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए सूचनाएं सेट अप करना लेख पढ़ें.
कंसोल में समस्याओं के लिए थ्रेशोल्ड सेट करने की सुविधा का क्या हुआ?
Performance Monitoring, तय किए गए थ्रेशोल्ड से ज़्यादा की मेट्रिक के लिए सूचनाएं भेजने की सुविधा देता है. परफ़ॉर्मेंस मेट्रिक के लिए, कॉन्फ़िगर किए जा सकने वाले इन थ्रेशोल्ड से होने वाली गड़बड़ी से बचने के लिए, हमने समस्याओं के लिए थ्रेशोल्ड कॉन्फ़िगर करने की सुविधा हटा दी है.
Firebase कंसोल में, ज़्यादा जानकारी और मेट्रिक की जानकारी का क्या हुआ?
हमने 'जानकारी' और 'मेट्रिक' पेजों को, नए डिज़ाइन वाले एक यूज़र इंटरफ़ेस (यूआई) से बदल दिया है. इससे, समस्याओं को हल करने का तरीका बेहतर होगा. समस्या हल करने के लिए उपलब्ध इस नए यूज़र इंटरफ़ेस (यूआई) में, 'जानकारी' और 'मेट्रिक' सेक्शन में मिलने वाली मुख्य सुविधाएं मिलती हैं. समस्या हल करने के बारे में ज़्यादा जानने के लिए, किसी खास ट्रेस के लिए ज़्यादा डेटा देखना लेख पढ़ें.
सैंपल की संख्या मेरी उम्मीद के मुताबिक क्यों नहीं है?
Performance Monitoring, आपके ऐप्लिकेशन के उपयोगकर्ता के डिवाइसों से परफ़ॉर्मेंस का डेटा इकट्ठा करता है. अगर आपके ऐप्लिकेशन के कई उपयोगकर्ता हैं या ऐप्लिकेशन पर ज़्यादा परफ़ॉर्मेंस गतिविधि होती है, तो Performance Monitoring, डेटा इकट्ठा करने की प्रोसेस को डिवाइसों के सबसेट तक सीमित कर सकता है. ऐसा, प्रोसेस किए गए इवेंट की संख्या को कम करने के लिए किया जाता है. ये सीमाएं इतनी ज़्यादा हैं कि कम इवेंट होने पर भी, मेट्रिक की वैल्यू से आपके उपयोगकर्ता के ऐप्लिकेशन अनुभव के बारे में पता चलता रहे.
इकट्ठा किए जाने वाले डेटा की संख्या को मैनेज करने के लिए, Performance Monitoring सैंपलिंग के इन विकल्पों का इस्तेमाल करता है:
डिवाइस पर ट्रैकिंग की दर को सीमित करना: किसी डिवाइस से अचानक बहुत ज़्यादा ट्रैक भेजने से रोकने के लिए, हम डिवाइस से हर 10 मिनट में भेजे जाने वाले कोड और नेटवर्क अनुरोध के ट्रैक की संख्या को 300 इवेंट तक सीमित कर देते हैं. इस तरीके से, डिवाइस को ऐसे इंस्ट्रूमेंटेशन से बचाया जाता है जो परफ़ॉर्मेंस का ज़्यादा डेटा भेज सकते हैं. साथ ही, इससे किसी एक डिवाइस की वजह से परफ़ॉर्मेंस मेज़रमेंट में गड़बड़ी नहीं होती.
डाइनैमिक सैंपलिंग: Performance Monitoring हर ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए, हर दिन सीमित संख्या में कोड ट्रेस और नेटवर्क अनुरोध ट्रेस इकट्ठा करता है. Firebase Remote Config का इस्तेमाल करके, डिवाइसों पर डाइनैमिक सैंपलिंग रेट फ़ेच किया जाता है. इससे यह तय किया जाता है कि किसी डिवाइस को ट्रैक कैप्चर करके भेजना चाहिए या नहीं. सैंपलिंग के लिए चुना न गया डिवाइस, कोई इवेंट नहीं भेजता. डाइनैमिक सैंपलिंग रेट, ऐप्लिकेशन के हिसाब से तय होता है. साथ ही, यह डेटा इकट्ठा करने की सीमा से कम रखने के लिए अडजस्ट होता रहता है.
जिन प्रोजेक्ट में BigQuery इंटिग्रेशन की सुविधा चालू की गई है उन्हें नेटवर्क अनुरोध के ट्रेस की संख्या के लिए ज़्यादा सीमा मिलती है.
उपयोगकर्ता सेशन, उपयोगकर्ता के डिवाइस से ज़्यादा और ज़्यादा जानकारी वाला डेटा भेजते हैं. इसलिए, डेटा को कैप्चर और भेजने के लिए ज़्यादा संसाधनों की ज़रूरत होती है. उपयोगकर्ता सेशन के असर को कम करने के लिए, Performance Monitoring सेशन की संख्या पर भी पाबंदी लगा सकता है.
सर्वर साइड रेट सीमित करना: यह पक्का करने के लिए कि ऐप्लिकेशन, सैंपलिंग की सीमा से ज़्यादा न हो, Performance Monitoring डिवाइसों से मिले कुछ इवेंट को ड्रॉप करने के लिए, सर्वर साइड सैंपलिंग का इस्तेमाल कर सकता है. हालांकि, इस तरह की पाबंदी से हमारी मेट्रिक की परफ़ॉर्मेंस पर कोई असर नहीं पड़ता, लेकिन इससे पैटर्न में मामूली बदलाव हो सकते हैं. इनमें ये शामिल हैं:
- ट्रेस की संख्या, कोड के किसी हिस्से को कितनी बार चलाया गया है उससे अलग हो सकती है.
- कोड में एक-दूसरे से जुड़े ट्रेस में, हर ट्रेस के सैंपल की संख्या अलग-अलग हो सकती है.
Console में समस्याएं टैब का क्या हुआ?
हमने समस्याओं वाले टैब को चेतावनियों वाले टैब से बदल दिया है. यह टैब, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा होने पर, आपको अपने-आप सूचना देता है. अब आपको किसी थ्रेशोल्ड की स्थिति का पता लगाने के लिए, Firebase कंसोल को मैन्युअल तरीके से देखने की ज़रूरत नहीं है. सूचनाओं के बारे में जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए सूचनाएं सेट अप करना लेख पढ़ें.
कंसोल में डिवाइस पर और नेटवर्क टैब का क्या हुआ? मैं उन पेजों पर मौजूद ट्रेस कैसे देखूं?
हमने Firebase कंसोल के Performance Monitoring सेक्शन को फिर से डिज़ाइन किया है, ताकि डैशबोर्ड टैब में आपकी मुख्य मेट्रिक और सभी ट्रेस एक ही जगह पर दिखें. नए डिज़ाइन के तहत, हमने डिवाइस पर और नेटवर्क पेजों को हटा दिया है.
डैशबोर्ड टैब में सबसे नीचे मौजूद ट्रेस टेबल में, डिवाइस पर और नेटवर्क टैब में दिखाई गई सभी जानकारी होती है. हालांकि, इसमें कुछ और सुविधाएं भी होती हैं. जैसे, किसी खास मेट्रिक में हुए बदलाव के प्रतिशत के हिसाब से, अपने ट्रेस को क्रम से लगाने की सुविधा. किसी खास ट्रैस की सभी मेट्रिक और डेटा देखने के लिए, ट्रैस टेबल में ट्रैस के नाम पर क्लिक करें.
ट्रेस टेबल के इन सबटैब में अपने ट्रेस देखें:
- नेटवर्क अनुरोध के ट्रेस (पहले से मौजूद और कस्टम, दोनों) — नेटवर्क अनुरोध सब-टैब
- कस्टम कोड ट्रेस — कस्टम ट्रेस सब-टैब
- ऐप्लिकेशन शुरू होने, ऐप्लिकेशन के फ़ोरग्राउंड में होने, और ऐप्लिकेशन के बैकग्राउंड में होने के ट्रैक — कस्टम ट्रैक सब-टैब
- स्क्रीन रेंडरिंग के ट्रैक — स्क्रीन रेंडरिंग सब-टैब
- पेज लोड के ट्रैक — पेज लोड सब-टैब
ट्रेस टेबल और मेट्रिक और डेटा देखने के बारे में ज़्यादा जानने के लिए, Console के होम पेज पर जाएं (iOS+ | Android | वेब).
धीमे और फ़्रीज़ हुए फ़्रेम की संख्या, मेरी उम्मीद के मुताबिक क्यों नहीं है?
धीमी रेंडरिंग वाले फ़्रेम और फ़्रीज़ हुए फ़्रेम का हिसाब, डिवाइस के रीफ़्रेश रेट को 60 हर्ट्ज़ मानकर लगाया जाता है. अगर किसी डिवाइस का रीफ़्रेश रेट 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 से, हमने इंक्रीमेंटल बिल्ड प्रोसेसिंग और लाइब्रेरी इनपुट को कैश मेमोरी में सेव करने की सुविधा में काफ़ी सुधार किए हैं. बिल्ड में लगने वाले समय से जुड़े सबसे नए सुधारों का फ़ायदा पाने के लिए, प्लग इन का सबसे नया वर्शन (v1.4.2) इस्तेमाल करें.
ध्यान दें कि अगर आपको बिल्ड में लगने वाले समय को कम करना है, तो स्थानीय तौर पर डीबग बिल्ड के लिए Performance Monitoring प्लग इन को बंद किया जा सकता है. हालांकि, प्रोडक्शन बिल्ड के लिए इस तरीके का सुझाव नहीं दिया जाता, क्योंकि इससे आपके ऐप्लिकेशन में नेटवर्क अनुरोधों के लिए परफ़ॉर्मेंस मेज़रमेंट नहीं मिल पाते.
अगर Performance Monitoring Gradle प्लग इन के साथ काम न करने वाली लाइब्रेरी की वजह से, मुझे बिल्ड करने से जुड़ी गड़बड़ियां मिलती हैं, तो मुझे क्या करना चाहिए?
Android के लिए Performance Monitoring, कुछ बेहतर सुविधाएं देने के लिए बाइटकोड इंस्ट्रूमेंटेशन का इस्तेमाल करता है. जैसे, एचटीटीपी/एचटीटीपीएस नेटवर्क रिक्वेस्ट को मॉनिटर करना. कंपाइल करने की प्रोसेस के तहत, आपके ऐप्लिकेशन की सभी क्लास (इनमें डिपेंडेंसी भी शामिल हैं) को दोहराना ज़रूरी होता है. ऐसा इसलिए किया जाता है, ताकि आपके ऐप्लिकेशन के नेटवर्क अनुरोध की परफ़ॉर्मेंस को मेज़र करने के लिए ज़रूरी कोड को इंस्ट्रूमेंट किया जा सके.
अगर Performance Monitoring प्लग इन के साथ इंटिग्रेट करने के बाद, आपको JSR/RET are not supported with
computeFrames option
जैसी गड़बड़ियां या इससे मिलती-जुलती गड़बड़ियां मिलती हैं, तो ऐसा इसलिए हो सकता है, क्योंकि आपकी लाइब्रेरी, Performance Monitoring Gradle प्लग इन के साथ काम नहीं करती.
इस समस्या से बचने के लिए, इनस्ट्रूमेंटेशन के साथ काम न करने वाली क्लास/लाइब्रेरी को इनस्ट्रूमेंटेशन से बाहर रखा जा सकता है. इसके लिए, यह तरीका अपनाएं:
- Performance Monitoring Gradle प्लग इन को नए वर्शन पर अपडेट करें. यह वर्शन कम से कम v1.4.0 होना चाहिए.
- अपने Android Gradle प्लग इन के वर्शन को 7.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 टूल के ऐसे वर्शन का इस्तेमाल करता हो जो रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करता हो.
रीयल-टाइम में काम करने वाले SDK टूल के ये वर्शन हैं:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — 8.9.0 या इसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हमारा सुझाव है कि आप SDK टूल के सबसे नए वर्शन का इस्तेमाल करें. हालांकि, ऊपर दिए गए किसी भी वर्शन का इस्तेमाल करने पर, Performance Monitoring आपके डेटा को रीयल टाइम में प्रोसेस कर पाएगा.
Performance Monitoring SDK टूल के किन वर्शन को रीयल-टाइम में काम करने वाला माना जाता है?
रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करने वाले SDK टूल के वर्शन:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — 8.9.0 या इसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हमारा सुझाव है कि आप SDK टूल के सबसे नए वर्शन का इस्तेमाल करें. हालांकि, ऊपर दिए गए किसी भी वर्शन का इस्तेमाल करने पर, Performance Monitoring आपके डेटा को रीयल टाइम में प्रोसेस कर पाएगा.
अगर मैंने अपने ऐप्लिकेशन को रीयल-टाइम में काम करने वाले SDK टूल के वर्शन का इस्तेमाल करने के लिए अपडेट नहीं किया, तो क्या होगा?
अगर आपका ऐप्लिकेशन, रीयल-टाइम के साथ काम करने वाले SDK टूल के वर्शन का इस्तेमाल नहीं करता है, तब भी आपको Firebase कंसोल में अपने ऐप्लिकेशन की परफ़ॉर्मेंस का पूरा डेटा दिखेगा. हालांकि, परफ़ॉर्मेंस डेटा इकट्ठा होने के करीब 36 घंटे बाद ही दिखेगा.
मैंने SDK टूल के ऐसे वर्शन पर अपडेट किया है जो रीयल-टाइम में काम करता है. हालांकि, मेरे कुछ उपयोगकर्ता अब भी मेरे ऐप्लिकेशन के पुराने वर्शन इस्तेमाल कर रहे हैं. क्या मुझे Firebase कंसोल में, उनके ऐप्लिकेशन की परफ़ॉर्मेंस का डेटा दिखता रहेगा?
हां! भले ही, ऐप्लिकेशन इंस्टेंस में SDK टूल का कोई भी वर्शन इस्तेमाल किया जा रहा हो, आपको अपने सभी उपयोगकर्ताओं का परफ़ॉर्मेंस डेटा दिखेगा.
हालांकि, अगर आपको हाल ही का डेटा (लगभग 36 घंटे से कम पुराना) देखना है, तो दिखाया गया डेटा, रीयल-टाइम के साथ काम करने वाले एसडीके टूल के वर्शन का इस्तेमाल करने वाले ऐप्लिकेशन इंस्टेंस के उपयोगकर्ताओं का होता है. हालांकि, नए डेटा में आपके ऐप्लिकेशन के सभी वर्शन का परफ़ॉर्मेंस डेटा शामिल होता है.
Firebase की सहायता टीम से संपर्क करना
Firebase सहायता टीम से संपर्क करने पर, हमेशा अपना Firebase ऐप्लिकेशन आईडी शामिल करें. settings प्रोजेक्ट की सेटिंग के आपके ऐप्लिकेशन कार्ड में, अपना Firebase ऐप्लिकेशन आईडी ढूंढें.