Firebase की परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करें

ऐप्लिकेशन डेवलपमेंट और टेस्टिंग के दौरान, आपको परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करना मददगार लग सकता है.

उदाहरण के लिए, ऐप्लिकेशन बनाने की प्रोसेस के दौरान परफ़ॉर्मेंस मॉनिटर करने की सुविधा को बंद करके, ये काम किए जा सकते हैं:

  • अपने डीबग बिल्ड में परफ़ॉर्मेंस मॉनिटर करने की सुविधा की कुछ सुविधाएं बंद करें. जैसे, परफ़ॉर्मेंस मॉनिटरिंग Gradle प्लगिन से मिलने वाली सुविधाएं. हालांकि, अपने रिलीज़ बिल्ड के लिए इन सुविधाओं को फिर से चालू करें.

  • अपना ऐप्लिकेशन बनाते समय परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करें. हालांकि, रनटाइम के दौरान ऐप्लिकेशन को इसे फिर से चालू करने की अनुमति दें.

  • अपना ऐप्लिकेशन बनाते समय, परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करें. साथ ही, रनटाइम के दौरान ऐप्लिकेशन को इसे फिर से चालू न करने दें.

परफ़ॉर्मेंस मॉनिटर करने की सुविधा चालू करके भी ऐप्लिकेशन बनाया जा सकता है. हालांकि, Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, अपने प्रोडक्शन ऐप्लिकेशन में परफ़ॉर्मेंस मॉनिटर करने की सुविधा को बंद (और फिर से चालू) किया जा सकता है. इस विकल्प की मदद से, ऐप्लिकेशन को कॉन्फ़िगर भी किया जा सकता है, ताकि उपयोगकर्ता परफ़ॉर्मेंस मॉनिटर करने की सुविधा को ऑप्ट-इन या ऑप्ट-आउट कर सकें.

ऐप्लिकेशन बनाने की प्रोसेस के दौरान परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करें

बिल्ड प्रोसेस के दौरान, परफ़ॉर्मेंस मॉनिटर करने वाले Gradle प्लग इन को बंद करके और/या परफ़ॉर्मेंस मॉनिटर करने वाली Android लाइब्रेरी को बंद करके, परफ़ॉर्मेंस मॉनिटर करने की सुविधा को बंद किया जा सकता है.

डेवलपमेंट और डीबग करने के दौरान, प्लग इन को बंद करना फ़ायदेमंद होता है, क्योंकि प्लगिन के मुताबिक निर्देश देने से बिल्ड टाइम बढ़ सकता है. हालांकि, आपके पास लाइब्रेरी चालू रखने का विकल्प होता है, ताकि आप ऐप्लिकेशन स्टार्ट, ऐप्लिकेशन-इन-फ़ोरग्राउंड, और ऐप्लिकेशन-इन-बैकग्राउंड ट्रेस की परफ़ॉर्मेंस का डेटा देख सकें. साथ ही, अपने ऐप्लिकेशन में मौजूद किसी भी कस्टम कोड ट्रेस की परफ़ॉर्मेंस का डेटा भी देख सकें.

परफ़ॉर्मेंस मॉनिटर करने वाले ग्रेडल प्लग इन को बंद करें

इन विकल्पों का इस्तेमाल करके instrumentationEnabled फ़्लैग जोड़कर, परफ़ॉर्मेंस मॉनिटर करने वाले प्लगिन को बंद किया जा सकता है:

एक्सटेंशन प्रॉपर्टी फ़्लैग के ज़रिए प्लग इन को बंद करें

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

  1. आपके रूट-लेवल (प्रोजेक्ट-लेवल) Gradle फ़ाइल (<project>/build.gradle.kts या <project>/build.gradle) में, पक्का करें कि Android Gradle प्लग इन डिपेंडेंसी, v3.4.0 या इसके बाद के वर्शन के तौर पर दी गई हो.

    Android Gradle प्लगिन के पुराने वर्शन में, अब भी किसी खास बिल्ड वैरिएंट के लिए परफ़ॉर्मेंस मॉनिटर करने वाले प्लगिन को बंद किया जा सकता है. हालांकि, उस वैरिएंट के लिए बिल्ड के समय का योगदान पूरी तरह से खत्म नहीं होगा.

  2. नीचे दिए गए फ़्लैग को अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की ग्रेडल फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में जोड़ें. इसके बाद, परफ़ॉर्मेंस मॉनिटर करने वाले प्लगिन को बंद करने के लिए, इसे false पर सेट करें.

    Kotlin

    import com.google.firebase.perf.plugin.FirebasePerfExtension
    
    // ...
    
    android {
      // ...
      buildTypes {
        getByName("debug") {
          configure<FirebasePerfExtension> {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic monitoring of HTTP/S network requests
            // for a specific build variant at compile time.
            setInstrumentationEnabled(false)
          }
        }
      }
    }
    

    Groovy

    android {
      // ...
      buildTypes {
        debug {
          FirebasePerformance {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic monitoring of HTTP/S network requests
            // for a specific build variant at compile time.
            instrumentationEnabled false
          }
        }
      }
    }
    

प्रोजेक्ट प्रॉपर्टी फ़्लैग की मदद से प्लगिन को बंद करें

प्रोजेक्ट प्रॉपर्टी फ़्लैग का इस्तेमाल करके, कंपाइल करते समय सभी बिल्ड वैरिएंट के लिए, परफ़ॉर्मेंस मॉनिटर करने वाले प्लगिन को बंद किया जा सकता है.

अपनी gradle.properties फ़ाइल में यहां दिया गया फ़्लैग जोड़ें. इसके बाद, परफ़ॉर्मेंस मॉनिटर करने वाले प्लगिन को बंद करने के लिए, इसे false पर सेट करें.

// ...

// Set this flag to 'false' to disable @AddTrace annotation processing and
// automatic monitoring of HTTP/S network requests
// for all build variants at compile time.
firebasePerformanceInstrumentationEnabled=false

परफ़ॉर्मेंस मॉनिटर करने से जुड़ी Android लाइब्रेरी बंद करें

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

कंपाइल करते समय, लाइब्रेरी को बंद करें. हालांकि, रनटाइम के दौरान अपने ऐप्लिकेशन को इसे चालू करने की अनुमति दें

अपने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में, यह <meta-data> एलिमेंट जोड़ें:

  <application>
    <meta-data
      android:name="firebase_performance_collection_enabled"
      android:value="false" />
  </application>

कंपाइल करते समय, लाइब्रेरी को बंद करें, लेकिन रनटाइम के दौरान अपने ऐप्लिकेशन को इसे चालू करने की अनुमति न दें

अपने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में, यह <meta-data> एलिमेंट जोड़ें:

  <application>
    <meta-data
      android:name="firebase_performance_collection_deactivated"
      android:value="true" />
  </application>

रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, रनटाइम के दौरान अपना ऐप्लिकेशन बंद करें

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

अगली बार Android ऐप्लिकेशन के चालू होने पर, परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को इकट्ठा करने की सुविधा बंद करने के लिए, नीचे दिए गए उदाहरण के तौर पर दिए गए कोड का इस्तेमाल करें. Android ऐप्लिकेशन में रिमोट कॉन्फ़िगरेशन इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Android पर Firebase रिमोट कॉन्फ़िगरेशन इस्तेमाल करना लेख पढ़ें.

  1. यह पक्का करें कि रिमोट कॉन्फ़िगरेशन आपके मॉड्यूल (ऐप्लिकेशन-लेवल) के dependencies सेक्शन में हो (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle):

    Kotlin+KTX

      implementation("com.google.firebase:firebase-config-ktx:22.0.0")
    

    Java

      implementation("com.google.firebase:firebase-config:22.0.0")
    
  2. रिमोट कॉन्फ़िगरेशन सेट अप करें और अगर perf_disable को true पर सेट किया गया है, तो परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करें:

    Kotlin+KTX

    // Setup remote config
    val config = Firebase.remoteConfig
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // val configSettings = remoteConfigSettings {
    //     minimumFetchIntervalInSeconds = 3600
    // }
    // config.setConfigSettingsAsync(configSettings)
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    // Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Firebase.performance.isPerformanceCollectionEnabled = !config.getBoolean("perf_disable")
            } else {
                // An error occurred while setting default parameters
            }
        }

    Java

    // Setup remote config
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
    //       .setMinimumFetchIntervalInSeconds(3600)
    //       .build();
    // config.setConfigSettingsAsync(configSettings);
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    //Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        if (config.getBoolean("perf_disable")) {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
                        } else {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true);
                        }
                    } else {
                        // An error occurred while setting default parameters
                    }
                }
            });
  3. रिमोट कॉन्फ़िगरेशन की वैल्यू को फ़ेच और चालू करने के लिए, MainActivity.java में इस कोड को जोड़ें:

    Kotlin+KTX

    // Remote Config fetches and activates parameter values from the service
    val config = Firebase.remoteConfig
    config.fetch(3600)
        .continueWithTask { task ->
            if (!task.isSuccessful) {
                task.exception?.let {
                    throw it
                }
            }
            config.activate()
        }
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Parameter values successfully activated
                // ...
            } else {
                // Handle errors
            }
        }

    Java

    //Remote Config fetches and activates parameter values from the service
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    config.fetch(3600)
            .continueWithTask(new Continuation<Void, Task<Boolean>>() {
                @Override
                public Task<Boolean> then(@NonNull Task<Void> task) throws Exception {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return config.activate();
                }
            })
            .addOnCompleteListener(new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        // Parameter values successfully activated
                        // ...
                    } else {
                        // Handle errors
                    }
                }
            });
  4. Firebase कंसोल में, परफ़ॉर्मेंस मॉनिटर करने की सुविधा बंद करने के लिए, अपने ऐप्लिकेशन के प्रोजेक्ट में perf_disable पैरामीटर बनाएं. इसके बाद, इसकी वैल्यू true पर सेट करें.

    इस बदलाव से, परफ़ॉर्मेंस मॉनिटर करने वाले SDK टूल को "कोई कार्रवाई नहीं" कॉल (NOOP) कॉल कर दिया जाएगा. साथ ही, आपके ऐप्लिकेशन में परफ़ॉर्मेंस मॉनिटर करने वाले SDK टूल का इस्तेमाल करने से, ऐप्लिकेशन की परफ़ॉर्मेंस पर कोई भी अहम असर नहीं पड़ेगा.

    अगर perf_disable वैल्यू को false पर सेट किया जाता है, तो परफ़ॉर्मेंस मॉनिटर करने की सुविधा चालू रहती है.