Menonaktifkan Firebase Performance Monitoring SDK

Agar pengguna dapat memilih untuk menggunakan atau tidak menggunakan Firebase Performance Monitoring, Anda mungkin perlu mengonfigurasi aplikasi agar dapat mengaktifkan dan menonaktifkan Performance Monitoring. Anda mungkin juga akan mendapati bahwa kemampuan ini bermanfaat selama tahap development dan pengujian aplikasi.

Anda dapat menonaktifkan Performance Monitoring SDK saat membuat aplikasi dengan opsi untuk mengaktifkannya kembali saat waktu proses. Anda juga dapat membuat aplikasi dengan Performance Monitoring yang diaktifkan, lalu menyediakan opsi untuk menonaktifkannya saat waktu proses menggunakan Firebase Remote Config. Anda juga dapat menonaktifkan Performance Monitoring sepenuhnya, tanpa opsi untuk mengaktifkannya saat waktu proses.

Menonaktifkan Performance Monitoring selama proses pembuatan aplikasi

Salah satu alasan perlunya menonaktifkan Performance Monitoring selama proses pembuatan aplikasi adalah untuk menghindari pelaporan data performa dari aplikasi versi pra-rilis selama tahap development dan pengujian aplikasi.

iOS

Anda dapat menambahkan salah satu dari 2 kunci ke file daftar properti (Info.plist) agar aplikasi iOS Anda mengaktifkan atau menonaktifkan Performance Monitoring.

  • Untuk menonaktifkan Performance Monitoring, namun mengizinkan aplikasi untuk mengaktifkannya saat waktu proses, tetapkan firebase_performance_collection_enabled ke true pada file Info.plist aplikasi Anda.
  • Untuk menonaktifkan Performance Monitoring sepenuhnya tanpa opsi untuk mengaktifkannya saat waktu proses, tetapkan firebase_performance_collection_deactivated ke true pada file Info.plist aplikasi Anda. Setelan ini menggantikan setelan firebase_performance_collection_enabled dan harus dihapus dari file Info.plist aplikasi Anda untuk mengaktifkan kembali Performance Monitoring.

Android

Anda dapat menambahkan properti berikut ke file gradle.properties aplikasi Anda untuk menonaktifkan pelacakan otomatis dan pemantauan permintaan jaringan HTTP/S (tetapi bukan pelacakan kustom) selama pembuatan aplikasi:

firebasePerformanceInstrumentationEnabled=false

Mengubah properti ini ke true akan mengaktifkan kembali pelacakan otomatis dan pemantauan permintaan jaringan HTTP/S.

Anda juga dapat menonaktifkan Performance Monitoring selama pembuatan aplikasi, lalu mengizinkan aplikasi Anda untuk mengaktifkannya saat waktu proses, dengan menambahkan elemen <meta-data> ke elemen <application> pada file AndroidManifest.xml aplikasi Anda, sebagai berikut:

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

Untuk menonaktifkan Performance Monitoring sepenuhnya tanpa opsi untuk mengaktifkannya saat waktu proses, tambahkan elemen <meta-data> ke elemen <application> pada file AndroidManifest.xml aplikasi Anda, sebagai berikut:

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

Menonaktifkan aplikasi saat waktu proses menggunakan Remote Config

Dengan Remote Config, Anda dapat mengubah perilaku dan tampilan aplikasi, yang memberikan cara ideal bagi Anda untuk menonaktifkan Performance Monitoring pada instance aplikasi yang diterapkan.

iOS

Anda dapat menggunakan contoh kode di bawah ini untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi iOS Anda dimulai. Untuk informasi lebih lanjut tentang penggunaan Remote Config pada aplikasi iOS, lihat Menggunakan Firebase Remote Config di iOS.

  1. Pastikan Remote Config digunakan pada pod Podfile: 'Firebase/RemoteConfig'
  2. Tambahkan berikut ini ke bagian atas file AppDelegate aplikasi Anda:

    Swift

    import FirebaseRemoteConfig

    Objective-C

    @import FirebaseRemoteConfig;

  3. Pada file AppDelegate, tambahkan kode berikut ke pernyataan launchOptions dalam metode instance application:didFinishLaunchingWithOptions::

    Swift

    remoteConfig = RemoteConfig.remoteConfig()
    // You can change the "false" below to "true" to permit more fetches when validating
    // your app, but you should change it back to "false" or remove this statement before
    // distributing your app in production.
    let remoteConfigSettings = RemoteConfigSettings(developerModeEnabled: false)
    remoteConfig.configSettings = remoteConfigSettings!
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase Console.
    remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults")
    // Important! This needs to be applied before FirebaseApp.configure()
    if !remoteConfig["perf_disable"].boolValue {
        // The following line disables automatic traces and HTTP/S network monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables custom traces
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    // You can change the NO below to YES to permit more fetches when validating
    // your app, but you should change it back to NO or remove this statement before
    // distributing your app in production.
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:NO];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase Console.
    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
    // Important! This needs to be applied before [FIRApp configure]
    if (!self.remoteConfig[@"perf_disable"].numberValue.boolValue) {
        // The following line disables automatic traces and HTTP/S network monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables custom traces
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. Pada ViewController.m, atau file implementasi lain yang digunakan oleh aplikasi Anda, tambahkan kode berikut untuk mengambil dan mengaktifkan nilai Remote Config:

    Swift

    //RemoteConfig fetch and activation in your app, shortly after startup
    remoteConfig.fetch(withExpirationDuration: TimeInterval(30.0)) { (status, error) -> Void in
      if status == .success {
        print("Config fetched!")
        self.remoteConfig.activateFetched()
      } else {
        print("Config not fetched")
        print("Error \(error!.localizedDescription)")
      }
    }

    Objective-C

    //RemoteConfig fetch and activation in your app, shortly after startup
    [self.remoteConfig fetchWithExpirationDuration:30.0 completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
      if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
        [self.remoteConfig activateFetched];
      } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
      }
    }];
  5. Untuk menonaktifkan Performance Monitoring di Firebase console, buat parameter perf_disable pada project aplikasi Anda, lalu tetapkan nilainya ke true. Jika Anda menetapkan nilai perf_disable ke false, Performance Monitoring akan tetap diaktifkan.

Menonaktifkan pengumpulan data otomatis atau manual secara terpisah

Anda dapat membuat beberapa perubahan pada kode yang ditunjukkan di atas dan di Firebase console agar dapat menonaktifkan pengumpulan data otomatis (pelacakan waktu mulai aplikasi dan permintaan jaringan HTTP/S) secara terpisah dari pengumpulan data manual (pelacakan kustom). Untuk melakukannya, Anda harus menambahkan kode berikut ke pernyataan launchOptions pada metode instance application:didFinishLaunchingWithOptions:, bukan mengikuti langkah 3 di atas:

Swift

remoteConfig = FIRRemoteConfig.remoteConfig()
let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true)
remoteConfig.configSettings = remoteConfigSettings!
// Important! This needs to be applied before FirebaseApp.configure()
if remoteConfig["perf_disable_auto"].boolValue {
    // The following line disables automatic traces and HTTP/S network monitoring
    Performance.sharedInstance().isInstrumentationEnabled = false
}
else {
    Performance.sharedInstance().isInstrumentationEnabled = true
}
if remoteConfig["perf_disable_manual"].boolValue {
    // The following line disables custom traces
    Performance.sharedInstance().isDataCollectionEnabled = false
}
else {
    Performance.sharedInstance().isDataCollectionEnabled = true
}
// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

self.remoteConfig = [FIRRemoteConfig remoteConfig];
FIRRemoteConfigSettings *remoteConfigSettings =
    [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
self.remoteConfig.configSettings = remoteConfigSettings;
// Important! This needs to be applied before [FirebaseApp configure]
if (self.remoteConfig[@"perf_disable_auto"].numberValue.boolValue) {
    // The following line disables automatic traces and HTTP/S network monitoring
    [FIRPerformance sharedInstance].instrumentationEnabled = NO;
}
else {
    [FIRPerformance sharedInstance].instrumentationEnabled = YES;
}
if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
    // The following line disables custom traces
    [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
}
else {
    [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
}
// Use Firebase library to configure APIs
[FirebaseApp configure];

Selanjutnya, lakukan berikut ini di Firebase console:

  • Untuk menonaktifkan pelacakan otomatis dan pemantauan jaringan HTTP/S, buat parameter perf_disable_auto pada project aplikasi Anda, lalu tetapkan nilainya ke true.
  • Untuk menonaktifkan pelacakan kustom, buat parameter perf_disable_manual pada project aplikasi Anda, lalu tetapkan nilainya ke true.

Untuk mengaktifkan salah satu dari aspek Performance Monitoring tersebut pada aplikasi Anda, tetapkan nilai parameter yang terkait ke false di Firebase console.

Android

Anda dapat menggunakan contoh kode di bawah ini untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi Android Anda dimulai. Untuk informasi lebih lanjut tentang penggunaan Remote Config di aplikasi Android, lihat Menggunakan Firebase Remote Config di Android.

  1. Pastikan Remote Config berada di bagian dependencies pada file Gradle modul Anda (biasanya app/build.gradle):

    implementation 'com.google.firebase:firebase-config:16.1.0'

  2. Selanjutnya, siapkan Remote Config dan nonaktifkan Performance Monitoring jika perf_disable ditetapkan ke true:

    Java

    // Setup remote config
    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()
    //       .setDeveloperModeEnabled(BuildConfig.DEBUG)
    //       .build();
    // mFirebaseRemoteConfig.setConfigSettings(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.setDefaults(R.xml.remote_config_defaults);
    if (config.getBoolean("perf_disable")) {
        FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
    } else {
        FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true);
    }
    
  3. Terakhir, tambahkan kode berikut ke MainActivity.java untuk mengambil dan mengaktifkan nilai Remote Config:

    Java

    //Remote Config fetches and activates parameter values from the service
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    config.fetch(3600)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        config.activateFetched();
                    } else {
                        // ...
                    }
                }
            });
    
  4. Untuk menonaktifkan Performance Monitoring di Firebase console, buat parameter perf_disable pada project aplikasi Anda, lalu tetapkan nilainya ke true. Perubahan ini akan menjadikan panggilan ke Performance Monitoring SDK sebagai panggilan "no operation" (NOOP), yang menghilangkan efek signifikan penggunaan Performance Monitoring SDK pada performa aplikasi Anda. Jika Anda menetapkan nilai perf_disable ke false, Performance Monitoring akan tetap diaktifkan.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.