Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

Uygulama geliştirme ve test etme sırasında, Performans İzlemeyi devre dışı bırakmayı yararlı bulabilirsiniz.

Örneğin, uygulama oluşturma işleminiz sırasında Performans İzlemeyi devre dışı bırakarak şunları yapabilirsiniz:

  • Hata ayıklama yapılarınızda Performance Monitoring'in belirli işlevlerini ( Performance Monitoring Gradle eklentisi tarafından sağlananlar gibi) devre dışı bırakın, ancak yayın yapınız için işlevleri yeniden etkinleştirin.

  • Uygulamanızı oluştururken Performans İzlemeyi devre dışı bırakın, ancak çalışma zamanında uygulamanızın onu yeniden etkinleştirmesine izin verin.

  • Uygulamanızı oluştururken Performans İzlemeyi devre dışı bırakın ve çalışma zamanında uygulamanızın onu yeniden etkinleştirmesine izin vermeyin.

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

Uygulama oluşturma işleminiz sırasında Performans İzlemeyi devre dışı bırakın

Performance Monitoring Gradle eklentisini devre dışı bırakarak ve/veya Performance Monitoring Android kitaplığını devre dışı bırakarak oluşturma işleminiz sırasında Performance Monitoring'i 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, yapım süresinin artmasına katkıda bulunabilir. Bununla birlikte, uygulama başlatma, ön planda uygulama ve arka planda uygulama izlemelerinin yanı sıra uygulamanızdaki tüm özel kod izlemelerinden gelen performans verilerini görüntüleyebilmeniz için kitaplığı etkin tutmayı düşünebilirsiniz.

Performance Monitoring Gradle Eklentisini Devre Dışı Bırak

Aşağıdaki seçenekleri kullanarak bir instrumentationEnabled bayrağı ekleyerek Performance Monitoring eklentisini devre dışı bırakabilirsiniz:

  • Uzantı Özelliği - derleme zamanında belirli bir yapı varyantı için eklentiyi devre dışı bırakır

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

Eklentiyi bir Uzantı Özelliği bayrağıyla devre dışı bırakın

Bir Uzantı Özelliği bayrağı kullanarak, derleme zamanında belirli bir yapı varyantı için Performans İzleme eklentisini devre dışı bırakabilirsiniz.

  1. Kök düzeyinde (proje düzeyinde) build.gradle dosyanızda, Android Gradle Plugin bağımlılığınızın v3.4.0 veya üstü olarak belirtildiğinden emin olun.

    Android Gradle Plugin'in önceki sürümleri için, belirli bir yapı varyantı için Performans İzleme eklentisini devre dışı bırakabilirsiniz, ancak bu varyant için derleme süresi katkısı tamamen ortadan kalkmayacaktır.

  2. Modül (uygulama düzeyi) build.gradle dosyanıza aşağıdaki bayrağı ekleyin, ardından Performance Monitoring eklentisini devre dışı bırakmak için false olarak ayarlayın.

    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 bir Proje Özelliği bayrağı aracılığıyla devre dışı bırakın

Bir Proje Özelliği bayrağı kullanarak, derleme zamanında tüm derleme değişkenleri için Performans İzleme eklentisini devre dışı bırakabilirsiniz.

Aşağıdaki bayrağı gradle.properties dosyanıza ekleyin, ardından 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

Performans İzleme Android kitaplığını devre dışı bırakın

Derleme zamanında Performans İzleme 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 kitaplığı 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 çalışma zamanında uygulamanızı devre dışı bırakın

Firebase Remote Config, uygulamanızın davranışında ve görünümünde değişiklikler yapmanızı sağlar, böylece uygulamanızın dağıtılan örneklerinde Performans İzlemeyi devre dışı bırakmanız için ideal bir yol sağlar.

Android uygulamanızın bir sonraki başlatılışında Performans İzleme veri toplamayı devre dışı bırakmak için aşağıda gösterilen örnek kodu kullanın. Remote Config'i bir Android uygulamasında kullanma hakkında daha fazla bilgi için Android'de Firebase Remote Config'i kullanma bölümüne bakın.

  1. Remote Config'in modül Gradle dosyanızın (genellikle app/build.gradle ) dependencies bölümünde olduğundan emin olun:

    implementation 'com.google.firebase:firebase-config:21.4.0'
    
  2. perf_disable true olarak ayarlanmışsa, Remote Config'i kurun ve Performance Monitoring'i 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 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 Performans İzlemeyi devre dışı bırakmak için uygulamanızın projesinde bir perf_disable parametresi oluşturun ve ardından değerini true olarak ayarlayın.

    Bu değişiklik, Performance Monitoring SDK'ya yapılan çağrıları "işlem yok" çağrıları (NOOP'ler) yapacak ve uygulamanızda Performance Monitoring SDK'nın kullanılmasından kaynaklanan uygulama performansı üzerindeki önemli etkileri ortadan kaldıracaktır.

    perf_disable değerini false olarak ayarlarsanız, Performans İzleme etkin kalır.