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 mem-build aplikasi, dengan opsi untuk mengaktifkannya kembali saat runtime.

  • Anda dapat mem-build aplikasi dengan Performance Monitoring SDK yang diaktifkan, tetapi 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 build aplikasi

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

Untuk mengaktifkan atau menonaktifkan Performance Monitoring, Anda dapat menambahkan salah satu dari dua kunci ke file daftar properti (Info.plist) untuk aplikasi Apple 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 di-deploy.

Untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi Apple Anda dimulai, gunakan kode contoh yang ditunjukkan di bawah ini. Untuk informasi selengkapnya tentang cara menggunakan Remote Config di aplikasi Apple, lihat Menggunakan Firebase Remote Config di platform Apple.

  1. Pastikan Remote Config digunakan di Podfile Anda:

    pod 'Firebase/RemoteConfig'
    
  2. Tambahkan kode berikut ke bagian atas file AppDelegate aplikasi Anda:

    Swift

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    import FirebaseRemoteConfig
    

    Objective-C

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    @import FirebaseRemoteConfig;
    
  3. Dalam file AppDelegate Anda, tambahkan kode berikut ke pernyataan launchOptions dalam metode instance application:didFinishLaunchingWithOptions::

    Swift

    Catatan: Produk ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    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 all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    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 all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables all custom monitoring
        [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 value Remote Config:

    Swift

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    //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

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    //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 ke true.

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

Menonaktifkan pengumpulan data otomatis atau khusus secara terpisah

Anda dapat membuat beberapa perubahan pada kode yang ditampilkan di atas dan di Firebase console untuk memungkinkan Anda menonaktifkan semua pemantauan otomatis (bawaan) secara terpisah dari pemantauan kustom.

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

    Swift

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    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 all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
    }
    if remoteConfig["perf_disable_manual"].boolValue {
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.
    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 all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
    }
    if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FirebaseApp configure];
    
  2. Selesaikan langkah-langkah berikut di Firebase console:

    • Untuk menonaktifkan semua pemantauan otomatis (bawaan), buat parameter perf_disable_auto di project aplikasi Anda, lalu tetapkan value-nya ke true.
    • Untuk menonaktifkan semua pemantauan kustom, buat parameter perf_disable_manual di project aplikasi Anda, lalu tetapkan value-nya ke true.