Memantau permintaan jaringan HTTP/S

Pelacakan permintaan jaringan HTTP/S adalah laporan yang merekam waktu dari ketika aplikasi mengajukan permintaan ke endpoint layanan hingga menerima respons dari endpoint secara lengkap. Untuk setiap endpoint yang dihubungi oleh aplikasi Anda, Performance Monitoring akan mencatat beberapa metrik:

  • Waktu respons — Waktu dari ketika permintaan dibuat hingga respons diterima secara lengkap

  • Ukuran payload: — Ukuran byte payload jaringan yang didownload dan diupload oleh aplikasi

  • Tingkat keberhasilan — Persentase respons yang berhasil dibandingkan dengan respons total (untuk mengukur kegagalan jaringan atau server)

Performance Monitoring otomatis mengumpulkan metrik untuk permintaan jaringan yang menggunakan library jaringan berikut:

Swift

  • URLSession
  • URLConnection

Objective-C

  • NSURLSession
  • NSURLConnection

Pemantauan inovatif ini mencakup sebagian besar permintaan jaringan untuk aplikasi Anda. Akan tetapi, sejumlah permintaan mungkin tidak akan dilaporkan atau Anda mungkin menggunakan library lain untuk mengajukan permintaan jaringan. Dalam hal ini, Anda dapat menggunakan Performance Monitoring API untuk memproses permintaan jaringan kustom secara manual.

Agregasi data berdasarkan pola URL

Firebase Performance Monitoring secara otomatis menghimpun data untuk permintaan jaringan yang serupa guna membantu Anda mengetahui tren yang ada di kinerja permintaan jaringan.

Untuk setiap permintaan, Firebase akan memeriksa kecocokan URL permintaan jaringan dengan pola URL . Jika URL permintaan cocok dengan pola URL, Firebase akan otomatis menghimpun data permintaan berdasarkan pola URL. Firebase menampilkan pola URL berikut data yang telah dihimpun di tab Jaringan di bagian Kinerja pada Firebase console.

Apa itu pola URL?

Pola URL berisi domain termasuk pola yang dapat dicocokkan dengan jalur URL, sebagai contoh: example.com/*/animals/**.

  • Pola URL dapat berisi segmen jalur berikut:

    • teks biasa — mencocokkan string yang sama persis
    • * — mencocokkan semua string yang ada di segmen dengan satu jalur
    • ** — mencocokkan suffix jalur arbitrer
  • Pola URL dapat berupa:

Misal: Semua permintaan URL berikut ini bisa dicocokkan dengan pola URL example.com/*/animals/**.

  • example.com/singapore/animals
  • example.com/australia/animals/spiders
  • example.com/australia/animals/marsupials/koala.png

Firebase memetakan setiap permintaan menjadi hanya satu pola URL . Jika telah mengonfigurasi pola URL kustom mana pun, Firebase akan mula-mula mencoba mencocokkan URL permintaan dengan polanya. Jika tidak berhasil menemukan pola URL kustom yang cocok, Firebase akan mencocokkan URL permintaan dengan pola URL kustom yang paling representatif. Pelajari selengkapnya tentang pola URL otomatis dan kustom di bagian-bagian berikut.

Pola URL otomatis

Jika Anda sama sekali tidak melakukan konfigurasi, Performance Monitoring akan mencoba menggambarkan perilaku penggunaan terbaru aplikasi Anda dengan mencocokkan permintaan aplikasi Anda dengan pola URL otomatis.

Bagaimana cara kerja pencocokan pola URL otomatis?

Firebase mencocokkan setiap permintaan dengan pola URL otomatis yang paling representatif, turunan dari permintaan yang dikirimkan oleh aplikasi Anda. Harap diingat, Firebase akan mula-mula mencoba mencocokkan URL permintaan dengan semua pola URL kustom yang telah dikonfigurasi.

Berikut adalah contoh dasar tentang cara Firebase mencoba mencocokkan permintaan dengan pola URL otomatis yang paling representatif untuk aplikasi Anda.

  1. Aplikasi Anda mengirim banyak permintaan ke URL seperti:

    • example.com/germany/animals/bears
    • example.com/germany/animals/birds
    • example.com/germany/cars

    Firebase menilai bahwa example.com/germany/** merupakan pola permintaan yang umum untuk aplikasi Anda dan menambahkannya sebagai pola URL otomatis ke project Anda.

    Untuk segala permintaan yang cocok dan baru untuk pola URL ini, Firebase menghimpun data permintaan berdasarkan pola URL otomatis example.com/germany/**.

  2. Setelah satu minggu, sebagian besar permintaan aplikasi Anda menjadi example.com/germany/animals/bears dan example.com/germany/animals/birds. Hasilnya, Firebase memperoleh pola URL yang lebih representatif, yakni example.com/germany/animals/**.

    Untuk segala permintaan yang cocok dan baru untuk pola URL ini, Firebase menghimpun data permintaan hanya berdasarkan pola URL yang baru ini. Firebase terus menghimpun data untuk permintaan ke example.com/germany/cars berdasarkan example.com/germany/**.

  3. Namun, selama beberapa minggu ke depan, permintaan aplikasi Anda ke example.com/germany/animals/bears dan example.com/germany/animals/birds akan berkurang banyak. Firebase menilai bahwa example.com/germany/animals/** tidak representatif untuk perilaku penggunaan terbaru aplikasi Anda, sehingga Firebase mulai kembali mencocokkan kedua permintaan ini kembali ke example.com/germany/**.

    Firebase tidak menghimpun sembarang data permintaan lebih lanjut berdasarkan example.com/germany/animals/** sebab data permintaan tersebut bukan lagi pola URL otomatis yang paling representatif.

Berhubung pencocokan pola URL otomatis sangat dinamis, perhatikan hal-hal berikut:

  • Data yang cocok dan dihimpun dari permintaan sebelumnya tidak dipengaruhi oleh pola URL yang baru. Firebase tidak menghimpun ulang data permintaan yang sudah lampau.

  • Pola URL yang baru hanya akan memengaruhi permintaan yang akan datang . Firebase memetakan setiap permintaan baru dengan pola URL otomatis yang paling representatif. Harap diingat, Firebase akan mula-mula berusaha mencocokkan URL permintaan dengan semua pola URL kustom.

Melihat pola URL otomatis dan datanya

Bagian Kinerja pada console mendata pola URL otomatis di tab Jaringan > Semua. Pola URL dengan label Tidak dikategorikan mungkin akan muncul. Ini adalah pola URL otomatis yang "luas" seandainya Firebase dapat menghimpun data untuk permintaan yang sudah tidak lagi cocok dengan pola URL tertentu.

Saat berakhirnya periode retensi data untuk data yang dihimpun berdasarkan suatu pola URL, Firebase akan menghapus data tersebut dari pola URL. Apabila semua data yang dihimpun berdasarkan suatu pola URL otomatis kedaluwarsa, Firebase akan menghapus pola URL tersebut dari Firebase console.

Pola URL kustom

Anda dapat membuat pola URL kustom untuk memantau pola URL tertentu yang tidak diambil oleh Firebase menggunakan pencocokan pola URL otomatis turunannya. Sebagai contoh, Anda dapat menggunakan suatu pola URL kustom untuk menangani URL tertentu atau untuk memantau serangkaian URL dari waktu ke waktu.

Bagaimana cara kerja pencocokan pola URL kustom?

Firebase akan mencoba mencocokkan URL permintaan dengan semua pola URL kustom yang telah dikonfigurasi sebelum kembali ke pencocokkan pola URL otomatis. Untuk semua permintaan pencocokan dengan pola URL kustom, Firebase menghimpun data permintaan berdasarkan pola URL kustom.

Jika URL permintaan cocok dengan lebih dari satu pola URL kustom, Firebase akan memetakan permintaan hanya dengan pola URL kustom yang paling spesifik, menurut urutan kekhususan berikut ini: teks biasa > * > ** dari kiri ke kanan di jalur. Misalnya, permintaan untuk example.com/books/dog cocok dengan dua pola URL kustom:

  • example.com/books/*
  • example.com/*/dog

Namun, pola example.com/books/* adalah pola URL yang cocok dan paling spesifik karena segmen paling kiri books di example.com/books/* lebih diutamakan jika dibandingkan dengan segmen paling kiri * di example.com/*/dog.

Saat Anda membuat pola URL kustom yang baru, perhatikan hal-hal berikut:

  • Data yang cocok dan dihimpun dari permintaan sebelumnya tidak dipengaruhi oleh pembuatan pola URL kustom yang baru. Firebase tidak menghimpun ulang data permintaan yang sudah lampau.

  • Pola URL yang baru hanya akan memengaruhi permintaan yang akan datang. Anda mungkin perlu menunggu hingga 12 jam agar Performance Monitoring dapat mengumpulkan dan menghimpun data berdasarkan pola URL kustom yang baru.

Membuat pola URL kustom

Buat pola URL kustom dari bagian Kinerja pada console di tab Jaringan. Anggota project harus merupakan Pemilik atau Editor untuk membuat pola URL kustom yang baru; tetapi, seluruh anggota project dapat menampilkan pola URL kustom dan data mereka yang telah dihimpun.

Untuk membuat pola URL kustom, mulailah dengan domain, lalu gunakan sintaks segmen jalur berikut ini untuk membuat pola yang cocok dengan jalur URL.

  • teks biasa — mencocokkan string yang sama persis
  • * — mencocokkan semua string yang ada di segmen dengan satu jalur
  • ** — mencocokkan suffix jalur arbitrer

Tabel berikut menjelaskan beberapa kemungkinan pencocokan pola URL kustom.

Untuk dicocokkan dengan... Buat pola URL kustom seperti... Contoh pencocokan dengan pola URL ini
URL persisnya example.com/foo/baz example.com/foo/baz
Semua segmen berjalur tunggal (*) example.com/*/baz example.com/foo/baz
example.com/bar/baz
example.com/*/*/baz example.com/foo/bar/baz
example.com/bah/qux/baz
example.com/foo/* example.com/foo/baz
example.com/foo/bar

Catatan: Pola ini tidak akan cocok dengan example.com/foo.

Suffix jalur arbitrer (**) example.com/foo/** example.com/foo
example.com/foo/baz
example.com/foo/baz/more/segments
subdomain.example.com/foo.bar/** subdomain.example.com/foo.bar
subdomain.example.com/foo.bar/baz
subdomain.example.com/foo.bar/baz/more/segments

Lihat pola URL kustom dan datanya

Bagian Kinerja pada console mendata pola URL kustom yang berisi data yang telah dihimpun baik di tab Jaringan > Semua dan di tab Jaringan > Kustom. Jika pola URL kustom sama sekali tidak berisi data yang telah dihimpun, artinya pola tersebut hanya muncul di tab Jaringan > Kustom.

Saat berakhirnya periode retensi data untuk data yang dihimpun berdasarkan suatu pola URL, Firebase akan menghapus data tersebut dari pola URL. Jika semua data yang telah dihimpun berdasarkan pola URL kustom kedaluwarsa, Firebase tidak akan menghapus pola URL kustom dari Firebase console. Sebagai gantinya, Firebase akan tetap mendata pola URL kustom yang "kosong" di tab Jaringan > Kustom.

Menghapus pola URL kustom

Tidak seperti pola URL otomatis, Anda dapat menghapus pola URL kustom dari project.

  1. Dari Bagian Kinerja pada console, buka tab Jaringan > Kustom.

  2. Arahkan kursor ke baris pola URL kustom yang ingin Anda hapus.

  3. Klik di ujung kanan baris, lalu konfirmasi penghapusan pada dialog.

Saat menghapus pola URL kustom, perhatikan hal-hal berikut:

  • Semua permintaan yang akan datang dipetakan ke dalam pola URL kustom berikutnya yang paling spesifik . Jika tidak berhasil menemukan pola URL kustom yang cocok, Firebase akan kembali lagi ke pencocokan pola URL otomatis.

  • Data yang cocok dan dihimpun dari permintaan sebelumnya tidak dipengaruhi oleh penghapusan pola URL kustom.

    Anda masih dapat mengakses pola URL kustom yang telah dihapus berikut data himpunannya di tab Jaringan > Semua tab hingga berakhirnya periode retensi data yang berlaku. Apabila semua data himpunan berdasarkan pola URL kustom yang telah dihapus kedaluwarsa, Firebase akan menghapus pola URL kustom.

  • Tab Jaringan > Kustom sama sekali tidak berisi daftar pola URL kustom yang telah dihapus.

Menambahkan pemantauan pada permintaan jaringan kustom

Untuk menyertakan permintaan jaringan kustom secara manual di Performance Monitoring, tambahkan kode yang mirip dengan berikut ini:

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 merekam cara yang muncul di Firebase console secara spesifik, beserta dengan permintaan jaringan yang direkam Performance Monitoring secara otomatis.

Memantau pelacakan permintaan jaringan di console

  1. Di Firebase console, buka dasbor Performa.

  2. Klik tab Jaringan, lalu Anda dapat:

    • Melihat laporan cepat dari data yang terkumpul untuk semua permintaan jaringan Anda.

    • Mengklik endpoint tertentu untuk meninjau datanya secara lebih mendetail.

    • Gunakan tombol Filter di sisi kiri atas dasbor untuk melakukan pemfilteran dasar data berdasarkan atributnya.

  3. Jika Anda mengklik endpoint tertentu, console akan menampilkan ringkasan data yang terkumpul di kartu metrik.

    • Gunakan opsi di kanan atas dasbor untuk:

      • Melihat berbagai data sebagai gabungan, sepanjang waktu, atau untuk setiap versi aplikasi Anda.
      • Melihat tingkat keberhasilan endpoint sebagai gabungan, sepanjang waktu, atau untuk setiap versi aplikasi Anda.
    • Gunakan tombol Filter di sisi kiri atas dasbor untuk melakukan pemfilteran dasar data berdasarkan atributnya.

  4. Untuk metrik apa pun, klik Lihat lainnya untuk meninjau informasi secara lebih mendalam tentang data yang dikumpulkan, serta untuk menggunakan fitur analisis yang lebih kaya. Misalnya, Anda dapat memfilter dan mengelompokkan data berdasarkan atribut dan melihat data dalam konteks sesi penggunaan aplikasi.

Langkah Berikutnya