Catch up on everthing we announced at this year's Firebase Summit. Learn more

Désactiver la surveillance des performances de Firebase

Pendant le développement et les tests de l'application, il peut s'avérer utile de désactiver la surveillance des performances.

Par exemple, en désactivant Contrôle des performances au cours de votre processus de construction de l' application , vous pouvez:

  • Désactiver certaines fonctionnalités de surveillance des performances (telles que celles fournies par le Contrôle des performances plug - in Gradle ) dans votre debug, mais réactiver les fonctionnalités de votre version build.

  • Désactivez la surveillance des performances lors de la création de votre application, mais autorisez votre application à la réactiver lors de l'exécution.

  • Désactivez la surveillance des performances lors de la création de votre application et n'autorisez pas votre application à la réactiver lors de l'exécution.

Vous pouvez également créer votre application avec le suivi des performances a permis, mais utiliser Firebase à distance Config pour vous donner la flexibilité de désactiver (et réactiver) Suivi des performances dans votre application de production. Avec cette option, vous pouvez même configurer votre application pour permettre aux utilisateurs d'activer ou de désactiver la surveillance des performances.

Désactiver la surveillance des performances pendant le processus de création de votre application

Vous pouvez désactiver Contrôle des performances au cours de votre processus de construction par la désactivation du plug - in Contrôle des performances Gradle et / ou par la désactivation du Contrôle des performances Android bibliothèque .

Au cours du développement et le débogage, la désactivation du plug - in est utile , car l' instrumentation par le plug - in peut contribuer à l' augmentation du temps de construction. Vous pourriez, cependant, envisager de garder la bibliothèque activée afin que vous puissiez voir encore les données de performance de début d'application, application en premier plan, et des traces app-en-fond , ainsi que des traces de code personnalisé dans votre application.

Désactiver le plug-in Gradle de surveillance des performances

Vous pouvez désactiver le plug - in Performance surveillance en ajoutant un instrumentationEnabled drapeau en utilisant les options suivantes:

  • Extension de la propriété - désactive le plug - in pour une variante de construction spécifique au moment de la compilation

  • Propriété du projet - désactive le plug - in pour toutes les variantes de construction au moment de la compilation

Désactiver le plugin via un indicateur de propriété d'extension

En utilisant un indicateur Extensions propriété, vous pouvez désactiver le plug - in pour une surveillance de la performance variante de construction spécifique au moment de la compilation.

  1. Dans votre niveau racine (niveau du projet) build.gradle fichier, assurez - vous que votre dépendance Android Gradle Plugin est spécifié comme v3.4.0 ou ultérieure.

    Pour les versions antérieures du plugin Android Gradle, vous pouvez toujours désactiver le plugin Performance Monitoring pour une variante de build spécifique, mais la contribution au temps de build pour cette variante ne sera pas complètement éliminée.

  2. Ajouter le drapeau suivant à votre module (app-niveau) build.gradle fichier, rétablissez alors false pour désactiver le plug - in suivi de la performance.

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

Désactiver le plugin via un indicateur de propriété de projet

En utilisant un drapeau de propriétés du projet, vous pouvez désactiver le plug - in suivi de la performance pour toutes les variantes de construction au moment de la compilation.

Ajouter le drapeau suivant à votre gradle.properties fichier, rétablissez alors false pour désactiver le plug - in suivi de la performance.

// ...

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

Désactiver la bibliothèque Android Performance Monitoring

Si vous désactivez la bibliothèque Performance Monitoring au moment de la compilation, vous pouvez choisir d'autoriser votre application à activer la bibliothèque au moment de l'exécution.

Désactivez la bibliothèque au moment de la compilation, mais autorisez votre application à l'activer au moment de l'exécution

Ajoutez les lignes suivantes <meta-data> élément de votre application AndroidManifest.xml fichier:

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

Désactivez la bibliothèque au moment de la compilation, mais n'autorisez pas votre application à l'activer au moment de l'exécution

Ajoutez les lignes suivantes <meta-data> élément de votre application AndroidManifest.xml fichier:

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

Désactivez votre application au moment de l'exécution à l'aide de Remote Config

Firebase Remote Config vous permet d'apporter des modifications au comportement et à l'apparence de votre application. Il constitue donc un moyen idéal pour vous permettre de désactiver la surveillance des performances dans les instances déployées de votre application.

Pour désactiver la collecte de données de surveillance des performances au prochain démarrage de votre application Android, utilisez l'exemple de code ci-dessous. Pour plus d' informations sur l' utilisation de Config à distance dans une application Android, voir Utilisation Firebase à distance Config sur Android .

  1. Assurez -vous que la configuration à distance est dans la dependencies section de votre fichier de module Gradle (généralement app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.0.1'
    
  2. Mettre en place Performance Config et désactiver la surveillance à distance si perf_disable est réglé sur 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. Ajoutez le code suivant à MainActivity.java chercher et activer à distance les valeurs Config:

    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. Pour désactiver Contrôle des performances dans la console Firebase, créez un paramètre perf_disable dans le projet de votre application, puis définissez sa valeur à true .

    Cette modification effectuera des appels au kit de développement logiciel de surveillance des performances (NOOP), éliminant ainsi tout effet significatif sur les performances de l'application lié à l'utilisation du kit de développement logiciel de surveillance des performances dans votre application.

    Si vous définissez la valeur de perf_disable à false , il reste surveillance de la performance a permis.