Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Desativar o monitoramento de desempenho do Firebase

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Durante o desenvolvimento e teste do aplicativo, pode ser útil desabilitar o Monitoramento de desempenho.

Por exemplo, ao desabilitar o Monitoramento de desempenho durante o processo de criação do aplicativo , você pode:

  • Desative certas funcionalidades do Performance Monitoring (como aquelas fornecidas pelo plug-in Performance Monitoring Gradle ) em suas compilações de depuração, mas reative as funcionalidades para sua compilação de lançamento.

  • Desative o Monitoramento de desempenho ao criar seu aplicativo, mas permita que seu aplicativo o reabilite em tempo de execução.

  • Desative o Monitoramento de desempenho ao criar seu aplicativo e não permita que seu aplicativo o reabilite em tempo de execução.

Você também pode criar seu aplicativo com o Monitoramento de desempenho ativado , mas use o Firebase Remote Config para ter flexibilidade para desativar (e reativar) o Monitoramento de desempenho em seu aplicativo de produção. Com essa opção, você pode até configurar seu aplicativo para permitir que os usuários aceitem ou desativem o uso do Monitoramento de desempenho.

Desative o Monitoramento de desempenho durante o processo de criação do seu aplicativo

Você pode desabilitar o Monitoramento de desempenho durante o processo de compilação desativando o plug-in Gradle do Monitoramento de desempenho e/ou desativando a biblioteca Android do Monitoramento de desempenho .

Durante o desenvolvimento e a depuração, desabilitar o plug-in é útil porque a instrumentação do plug-in pode contribuir para aumentar o tempo de compilação. Você pode, no entanto, considerar manter a biblioteca habilitada para que você ainda possa visualizar dados de desempenho de rastreamentos de início do aplicativo, aplicativo em primeiro plano e aplicativo em segundo plano , bem como qualquer rastreamento de código personalizado em seu aplicativo.

Desativar o plug-in Gradle de monitoramento de desempenho

Você pode desabilitar o plug-in Monitoramento de desempenho adicionando um sinalizador instrumentationEnabled usando as seguintes opções:

  • Propriedade de extensão — desativa o plug-in para uma variante de compilação específica em tempo de compilação

  • Propriedade do projeto — desativa o plug-in para todas as variantes de compilação em tempo de compilação

Desative o plug-in por meio de um sinalizador de propriedade de extensão

Ao usar um sinalizador de propriedade de extensões , você pode desabilitar o plug-in Monitoramento de desempenho para uma variante de compilação específica em tempo de compilação.

  1. Em seu arquivo build.gradle no nível da raiz (nível do projeto), verifique se a dependência do Android Gradle Plugin está especificada como v3.4.0 ou posterior.

    Para versões anteriores do plug-in do Android para Gradle, você ainda pode desativar o plug-in Monitoramento de desempenho para uma variante de compilação específica, mas a contribuição do tempo de compilação para essa variante não será completamente eliminada.

  2. Adicione o sinalizador a seguir ao arquivo build.gradle do módulo (nível do aplicativo) e defina-o como false para desabilitar o plug-in Monitoramento de desempenho.

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

Desative o plug-in por meio de um sinalizador de propriedade do projeto

Ao usar um sinalizador de propriedade do projeto , você pode desabilitar o plug-in Monitoramento de desempenho para todas as variantes de compilação em tempo de compilação.

Adicione o sinalizador a seguir ao seu arquivo gradle.properties e defina-o como false para desativar o plug-in Monitoramento de desempenho.

// ...

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

Desativar a biblioteca Android do Monitoramento de desempenho

Se você desabilitar a biblioteca do Monitoramento de Desempenho em tempo de compilação, poderá optar por permitir que seu aplicativo habilite a biblioteca em tempo de execução.

Desabilite a biblioteca em tempo de compilação, mas permita que seu aplicativo a habilite em tempo de execução

Adicione o seguinte elemento <meta-data> ao arquivo AndroidManifest.xml do seu aplicativo:

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

Desabilite a biblioteca em tempo de compilação, mas não permita que seu aplicativo a habilite em tempo de execução

Adicione o seguinte elemento <meta-data> ao arquivo AndroidManifest.xml do seu aplicativo:

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

Desative seu aplicativo em tempo de execução usando o Configuração remota

O Firebase Remote Config permite que você faça alterações no comportamento e na aparência do seu aplicativo, oferecendo uma maneira ideal de permitir que você desative o Monitoramento de desempenho em instâncias implantadas do seu aplicativo.

Para desativar a coleta de dados do Monitoramento de desempenho na próxima vez que seu aplicativo Android for iniciado, use o código de exemplo mostrado abaixo. Para obter mais informações sobre como usar o Remote Config em um aplicativo Android, consulte Usar o Firebase Remote Config no Android .

  1. Verifique se o Remote Config está na seção de dependencies do arquivo Gradle do módulo (geralmente app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.2.0'
    
  2. Configure o Remote Config e desative o Monitoramento de desempenho se perf_disable estiver definido como true :

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

    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
                }
            }
  3. Adicione o seguinte código a MainActivity.java para buscar e ativar os valores do Configuração remota:

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

    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
                }
            }
  4. Para desativar o Monitoramento de desempenho no console do Firebase, crie um parâmetro perf_disable no projeto do seu aplicativo e defina seu valor como true .

    Essa alteração fará chamadas para as chamadas "sem operação" (NOOPs) do SDK do Monitoramento de desempenho, eliminando quaisquer efeitos significativos no desempenho do aplicativo ao usar o SDK do Monitoramento de desempenho em seu aplicativo.

    Se você definir o valor de perf_disable como false , o Monitoramento de Desempenho permanecerá habilitado.