Buka konsol

Memulai Performance Monitoring untuk iOS

Sebelum memulai

Jika belum dilakukan, tambahkan Firebase ke project iOS Anda.

Langkah 1: Tambahkan Performance Monitoring ke aplikasi Anda

  1. Buka podfile yang Anda buat untuk project (atau jalankan pod init untuk membuatnya), lalu tambahkan baris berikut di dalam bagian target:

    pod 'Firebase/Analytics'
    pod 'Firebase/Performance'
  2. Di direktori podfile, jalankan perintah berikut untuk menginstal Performance Monitoring SDK:

    pod install
  3. Buka file .xcworkspace menggunakan Xcode.

  4. Impor modul Firebase di UIApplicationDelegate Anda:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  5. Konfigurasi instance bersama FirebaseApp, biasanya di metode application:didFinishLaunchingWithOptions: pada aplikasi Anda:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. Kompilasi ulang aplikasi Anda.

Firebase kini memantau pelacakan otomatis dan permintaan jaringan HTTP/S.

Langkah 2: Periksa hasil Performance Monitoring di Firebase console

  1. Jalankan aplikasi Anda di simulator Xcode (Product > Run).

  2. Pastikan bahwa hasil Performance Monitoring ditampilkan di Firebase console.

    Hasil biasanya ditampilkan dalam waktu 12 jam.

Langkah 3: (Opsional) Tambahkan pelacakan kustom dan metrik kustom

Pelacakan kustom adalah laporan data performa yang terkait dengan beberapa kode di aplikasi Anda. Untuk mempelajari pelacakan kustom lebih lanjut, baca ringkasan Performance Monitoring.

Anda dapat memiliki beberapa pelacakan kustom di aplikasi, dan lebih dari satu pelacakan kustom dapat dijalankan pada satu waktu. Setiap pelacakan kustom dapat memiliki 1 atau beberapa metrik untuk menghitung peristiwa terkait performa di aplikasi Anda, dan metrik tersebut terhubung dengan pelacakan yang membuatnya.

Perhatikan bahwa nama untuk pelacakan dan metrik kustom harus memenuhi persyaratan berikut: tidak boleh ada spasi kosong di awal atau akhir, tidak boleh diawali karakter garis bawah (_), dan panjang maksimal adalah 32 karakter.

  1. Tambahkan modul Performance Monitoring ke header Anda:

    Swift

    import FirebasePerformance
    

    Objective-C

    @import FirebasePerformance;
    
  2. Untuk memulai dan menghentikan pelacakan kustom, tutupi kode yang ingin Anda lacak dengan baris kode yang mirip dengan yang berikut ini:

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    // code that you want to trace
    
    trace.stop()
    

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    // code that you want to trace
    
    [trace stop];
    
  3. Untuk menambahkan metrik kustom, tambahkan baris kode yang mirip dengan yang berikut ini setiap kali peristiwa tersebut terjadi. Misalnya, metrik kustom ini menghitung peristiwa terkait performa yang terjadi di aplikasi Anda, seperti cache ditemukan atau dicoba ulang.

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    trace.incrementMetric(named:"eventName", by: 1)
    // code that you want to trace (and log custom metrics)
    
    trace.stop()
    

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    [trace incrementMetric:@"eventName" by:1];
    // code that you want to trace (and log custom metrics)
    
    [trace stop];
    

Langkah 4: (Opsional) Tambahkan pemantauan untuk permintaan jaringan tertentu

Performance Monitoring mengumpulkan permintaan jaringan secara otomatis. Meskipun ini mencakup sebagian besar permintaan jaringan untuk aplikasi Anda, beberapa mungkin tidak akan dilaporkan.

Untuk menyertakan permintaan jaringan kustom dalam Performance Monitoring, tambahkan kode berikut ke aplikasi Anda:

Swift

guard let metric = HTTPMetric(url: "https://www.google.com", httpMethod: .get) else { return }

metric.start()
guard let url = URL(string: "https://www.google.com") else { return }
let request: URLRequest = URLRequest(url:url)
let session = URLSession(configuration: .default)
let dataTask = session.dataTask(with: request) { (urlData, response, error) in
        if let httpResponse = response as? HTTPURLResponse {
         metric.responseCode = httpResponse.statusCode
        }
        metric.stop()
}
dataTask.resume()

Objective-C

@property (nonatomic) FIRHTTPMetric *metric;

- (void)beginManualNetworkInstrumentation {
  self.metric =
      [[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]
                              HTTPMethod:FIRHTTPMethodGET];

  [self.metric start];

  NSURLRequest *request =
      [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
  NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                                delegate:self];
  [connection resume];
}

- (void)connection:(NSURLConnection *)connection
    didReceiveResponse:(NSURLResponse *) response {
  NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response
  self.metric.responseCode = httpResponse.statusCode;
  [self.metric stop];
}

Jaringan HTTP/S meminta Anda menangkap cara yang muncul di Firebase console secara spesifik, beserta dengan permintaan jaringan yang ditangkap Performance Monitoring secara otomatis.

Langkah 5: Terapkan aplikasi Anda lalu tinjau hasilnya

Setelah memvalidasi Performance Monitoring menggunakan simulator Xcode dan satu atau beberapa perangkat uji, Anda dapat menerapkan versi terbaru aplikasi kepada pengguna.

Anda dapat memantau data performa di Firebase console.

Masalah umum

  • Performance Monitoring memiliki masalah kompatibilitas umum dengan GTMSQLite. Sebaiknya jangan gunakan Performance Monitoring dengan aplikasi yang menggunakan GTMSQLite.
  • Method swizzling setelah memanggil FirebaseApp.configure() dapat mengganggu Performance Monitoring SDK.
  • Masalah umum dengan iOS 8.0-8.2 Simulator membuat Performance Monitoring tidak dapat merekam peristiwa performa. Masalah ini telah diperbaiki pada iOS 8.3 Simulator dan versi yang lebih baru.
  • Koneksi yang dibuat menggunakan backgroundSessionConfiguration NSURLSession akan menampilkan waktu koneksi yang lebih lama daripada yang diharapkan. Koneksi ini dijalankan di luar proses dan pengaturan waktunya mencerminkan peristiwa callback dalam proses.

Langkah berikutnya