Firebase Performance Monitoring'i devre dışı bırak


Uygulama geliştirme ve testi sırasında Performance Monitoring devre dışı bırakmak işinize yarayabilir.

Örneğin, uygulama derleme sürecinizde devre dışı bırakarakPerformance Monitoring şunları yapabilirsiniz:

  • Hata ayıklama derlemelerinizde Performance Monitoring'nın belirli işlevlerini (ör. Performance Monitoring Gradle eklentisi tarafından sağlananlar) devre dışı bırakın ancak yayın derlemenizde işlevleri yeniden etkinleştirin.

  • Uygulamanızı oluştururken Performance Monitoring'ı devre dışı bırakın ancak uygulamanızın çalışma zamanında yeniden etkinleştirmesine izin verin.

  • Uygulamanızı oluştururken Performance Monitoring özelliğini devre dışı bırakın ve uygulamanızın çalışma zamanında bu özelliği yeniden etkinleştirmesine izin vermeyin.

Uygulamanızı Performance Monitoring etkin olarak da oluşturabilirsiniz ancak üretim uygulamanızda Firebase Remote Config kullanarak Performance Monitoring'yı devre dışı bırakma (ve yeniden etkinleştirme) esnekliğine sahip olursunuz. Bu seçenekle, uygulamanızı kullanıcıların Performance Monitoring kullanımını etkinleştirmesine veya devre dışı bırakmasına izin verecek şekilde de yapılandırabilirsiniz.

Uygulama derleme sürecinizde Performance Monitoring özelliğini devre dışı bırakma

Derleme işleminiz sırasında Performance Monitoring Gradle eklentisini devre dışı bırakarak ve/veya Performance Monitoring Android kitaplığını devre dışı bırakarak Performance Monitoring'yı devre dışı bırakabilirsiniz.

Geliştirme ve hata ayıklama sırasında eklentinin devre dışı bırakılması yararlıdır. Çünkü eklenti tarafından yapılan enstrümantasyon derleme süresinin uzamasına neden olabilir. Ancak, uygulama başlatma, uygulama ön planda ve uygulama arka planda izlemeleri ile uygulamanızdaki özel kod izlemelerinden performans verilerini görüntülemeye devam edebilmek için kitaplığı etkin tutmayı düşünebilirsiniz.

Performance Monitoring Gradle eklentisini devre dışı bırakın.

Aşağıdaki seçenekleri kullanarak Performance Monitoring işlevini devre dışı bırakabilirsiniz:instrumentationEnabled

  • Extension Property: Derleme sırasında belirli bir derleme varyantı için eklentiyi devre dışı bırakır.

  • Project Property: Derleme sırasında eklentiyi tüm derleme varyantları için devre dışı bırakır.

Eklentiyi bir uzantı özelliği işaretiyle devre dışı bırakma

Extensions Property işaretini kullanarak derleme zamanında belirli bir derleme varyantı için Performance Monitoring eklentisini devre dışı bırakabilirsiniz.

  1. Kök düzeyindeki (proje düzeyindeki) Gradle dosyanızda (<project>/build.gradle.kts veya <project>/build.gradle), Android Gradle eklentisi bağımlılığınızın 3.4.0 veya sonraki bir sürüm olarak belirtildiğinden emin olun.

    Android Gradle eklentisinin önceki sürümlerinde, belirli bir derleme varyantı için Performance Monitoring eklentisini devre dışı bırakmaya devam edebilirsiniz ancak bu varyantın derleme süresine katkısı tamamen ortadan kalkmaz.

  2. Modül (uygulama düzeyi) Gradle dosyanıza (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) aşağıdaki işareti ekleyin, ardından Performance Monitoring eklentisini devre dışı bırakmak için false olarak ayarlayın.

    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
          }
        }
      }
    }

Eklentiyi proje özelliği işaretiyle devre dışı bırakma

Project Property işaretini kullanarak derleme zamanında Performance Monitoring eklentisini tüm derleme varyantları için devre dışı bırakabilirsiniz.

gradle.properties dosyanıza aşağıdaki işareti ekleyin ve Performance Monitoring eklentisini devre dışı bırakmak için false olarak ayarlayın.

// ...

// 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

Performance Monitoring Android kitaplığını devre dışı bırakma

Derleme sırasında Performance Monitoring kitaplığını devre dışı bırakırsanız uygulamanızın çalışma zamanında kitaplığı etkinleştirmesine izin verip vermeyeceğinizi seçebilirsiniz.

Kitaplığı derleme zamanında devre dışı bırakın ancak uygulamanızın çalışma zamanında etkinleştirmesine izin verin.

Aşağıdaki <meta-data> öğesini uygulamanızın AndroidManifest.xml dosyasına ekleyin:

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

Kitaplığı derleme zamanında devre dışı bırakın ancak uygulamanızın çalışma zamanında etkinleştirmesine izin vermeyin.

Aşağıdaki <meta-data> öğesini uygulamanızın AndroidManifest.xml dosyasına ekleyin:

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

Remote Config kullanarak uygulamanızı çalışma zamanında devre dışı bırakma

Firebase Remote Config, uygulamanızın davranışında ve görünümünde değişiklik yapmanıza olanak tanır. Bu nedenle, uygulamanızın dağıtılan örneklerinde Performance Monitoring özelliğini devre dışı bırakmak için ideal bir yöntemdir.

Android uygulamanız bir sonraki başlatılışında Performance Monitoring veri toplama özelliğini devre dışı bırakmak için aşağıda gösterilen örnek kodu kullanın. Android uygulamasında Remote Config kullanma hakkında daha fazla bilgi için Android'de Firebase Remote Config kullanma başlıklı makaleyi inceleyin.

  1. Remote Config öğesinin, dependencies bölümünde olduğundan emin olun. Modül (uygulama düzeyi) Gradle dosyası (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle):

    Kotlin

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

    Java

      implementation("com.google.firebase:firebase-config:23.0.0")
    
  2. perf_disable, true olarak ayarlanmışsa Remote Config hizmetini ayarlayın ve Performance Monitoring hizmetini devre dışı bırakın:

    Kotlin

    // 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 adlı dosyaya aşağıdaki kodu ekleyerek Remote Config değerlerini getirin ve etkinleştirin:

    Kotlin

    // 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. Performance Monitoring konsolunda Firebase özelliğini devre dışı bırakmak için uygulamanızın projesinde bir perf_disable parametresi oluşturun ve değerini true olarak ayarlayın.

    Bu değişiklik, Performance Monitoring SDK'sına yapılan çağrıları "işlem yok" çağrıları (NOOP) haline getirecek ve uygulamanızda Performance Monitoring SDK'sını kullanmanın uygulama performansı üzerindeki önemli etkilerini ortadan kaldıracaktır.

    perf_disable değerini false olarak ayarlarsanız Performance Monitoring etkin kalır.