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


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

Örneğin, uygulama oluşturma işleminiz sırasında Performance Monitoring'i devre dışı bırakarak şunları yapabilirsiniz:

  • Hata ayıklama derlemelerinizde belirli Performance Monitoring işlevlerini (Performance Monitoring Gradle eklentisi tarafından sağlananlar gibi) devre dışı bırakın ancak sürüm derlemeniz için 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'ü devre dışı bırakın ve uygulamanızın çalışma zamanında yeniden etkinleştirmesine izin vermeyin.

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

Uygulama oluşturma işleminiz sırasında Performance Monitoring'ü devre dışı bırakma

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

Eklentinin enstrümantasyonu derleme süresinin uzamasına neden olabileceğinden, geliştirme ve hata ayıklama sırasında eklentiyi devre dışı bırakmak yararlıdır. Ancak uygulama başlangıcı, uygulama ön planda ve uygulama arka planda izlerinden ve uygulamanızdaki özel kod izlerinden gelen performans verilerini görüntülemeye devam edebilmek için kitaplığı etkin tutmayı düşünebilirsiniz.

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

Aşağıdaki seçenekleri kullanarak Performance Monitoring eklentisini devre dışı bırakmak için instrumentationEnabled işareti ekleyebilirsiniz:

  • Uzantı Mülkü: Derleme sırasında belirli bir derleme varyantı için eklentiyi devre dışı bırakır

  • Proje Özelliği: Derleme zamanında tüm derleme varyantları için eklentiyi devre dışı bırakır.

Uzantıyı bir uzantı mülkü işareti aracılığıyla devre dışı bırakma

Uzantı Mülkü işareti kullanarak Performance Monitoring eklentisini, derleme sırasında belirli bir derleme varyantı için devre dışı bırakabilirsiniz.

  1. Kök düzeyindeki (proje düzeyinde) Gradle dosyanızda (<project>/build.gradle.kts veya <project>/build.gradle), Android Gradle Eklentisi bağımlılığınızın v3.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ırakabilirsiniz ancak bu varyantın derleme süresi katkısı tamamen ortadan kaldırılmaz.

  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şaretçiyi 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 Mülkü bayrağı aracılığıyla devre dışı bırakma

Proje Özelliği işaretçisini kullanarak Performance Monitoring eklentisini derleme zamanında tüm derleme varyantları için devre dışı bırakabilirsiniz.

Performance Monitoring eklentisini devre dışı bırakmak için gradle.properties dosyanıza aşağıdaki işaretçiyi ekleyin ve ardından 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

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

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

Derleme sırasında kitaplığı devre dışı bırak ancak uygulamanızın çalışma zamanında bu kitaplığı etkinleştirmesine izin verme

Uygulamanızın AndroidManifest.xml dosyasına aşağıdaki <meta-data> öğesini 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 örneklerindeki Performance Monitoring'ı devre dışı bırakmak için ideal bir yöntemdir.

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

  1. Remote Config'ün, modül (uygulama düzeyi) Gradle dosyanızı (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) dependencies bölümünde bulunduğundan emin olun:

    Kotlin+KTX

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

    Java

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

    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. Remote Config değerlerini almak ve etkinleştirmek için MainActivity.java işlevine aşağıdaki kodu ekleyin:

    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 konsolunda Performance Monitoring'ü devre dışı bırakmak için uygulamanızın projesinde bir perf_disable parametresi oluşturun ve ardından parametrenin değerini true olarak ayarlayın.

    Bu değişiklik, Performance Monitoring SDK'sına "işlem yok" çağrıları (NOOP'ler) gönderir. Böylece, uygulamanızda Performance Monitoring SDK'sının kullanılmasının uygulama performansı üzerindeki önemli etkileri ortadan kaldırılır.

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