Menonaktifkan Firebase Performance Monitoring

Agar pengguna dapat memilih untuk menggunakan atau tidak menggunakan Firebase Performance Monitoring, Anda perlu mengonfigurasi aplikasi agar dapat mengaktifkan dan menonaktifkan Performance Monitoring. Kemampuan ini dapat bermanfaat bagi Anda selama tahap pengembangan dan pengujian aplikasi.

Berikut adalah beberapa opsi yang perlu dipertimbangkan:

  • Anda dapat menonaktifkan Performance Monitoring SDK saat membuat aplikasi, dengan opsi untuk mengaktifkannya kembali saat runtime.

  • Anda dapat membuat aplikasi dengan Performance Monitoring SDK yang diaktifkan. Anda juga memiliki opsi untuk menonaktifkannya saat runtime menggunakan Firebase Remote Config.

  • Anda dapat sepenuhnya menonaktifkan Performance Monitoring SDK, tanpa opsi untuk mengaktifkannya saat runtime.

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.

Untuk menonaktifkan atau menonaktifkan Performance Monitoring, Anda dapat menambahkan salah satu dari dua kunci ke file daftar properti (Info.plist) untuk aplikasi iOS Anda:

  • Untuk menonaktifkan Performance Monitoring, tetapi mengizinkan aplikasi Anda untuk mengaktifkannya saat runtime, tetapkan firebase_performance_collection_enabled menjadi false di file Info.plist aplikasi Anda.

  • Untuk sepenuhnya menonaktifkan Performance Monitoring, tanpa opsi untuk mengaktifkannya saat runtime, tetapkan firebase_performance_collection_deactivated ke true di file Info.plist aplikasi Anda.

Menonaktifkan aplikasi saat runtime menggunakan Remote Config

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

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

  1. Pastikan Remote Config digunakan dalam Podfile Anda:

    pod 'Firebase/RemoteConfig'
    
  2. Tambahkan berikut ini ke bagian atas file AppDelegateaplikasi Anda:

    Swift

    import FirebaseRemoteConfig
    

    Objective-C

    @import FirebaseRemoteConfig;
    
  3. Dalam file AppDelegate Anda, 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 di project aplikasi Anda, lalu tetapkan nilainya menjadi true.

    Jika Anda menetapkan nilai perf_disable menjadi false, Performance Monitoring akan tetap aktif.

Menonaktifkan pengumpulan data otomatis atau manual secara terpisah

Anda dapat melakukan beberapa perubahan pada kode yang ditunjukkan di atas dan di Firebase console agar dapat menonaktifkan pengumpulan data otomatis (pelacakan awal aplikasi dan permintaan jaringan HTTP/S) secara terpisah dari pengumpulan data manual (pelacakan kustom).

  1. Tambahkan kode berikut ke pernyataan launchOptions dalam metode instance application:didFinishLaunchingWithOptions: (bukan yang ditunjukkan di atas untuk metode instance yang sama):

    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];
    
  2. Lakukan hal berikut ini di Firebase console:

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