Menambahkan pemantauan kustom untuk kode aplikasi tertentu

Performance Monitoring mengumpulkan trace untuk membantu Anda memantau performa aplikasi. Trace adalah laporan data performa yang dicatat antara dua titik waktu dalam aplikasi Anda.

Anda dapat membuat trace sendiri untuk memantau data performa yang berkaitan dengan kode tertentu di aplikasi. Dengan trace kode kustom, Anda dapat mengukur waktu yang dibutuhkan aplikasi untuk menyelesaikan satu atau serangkaian tugas, misalnya memuat serangkaian gambar atau membuat kueri database.

Metrik default untuk trace kode kustom adalah "duration" (waktu antara titik awal dan titik pemberhentian trace), tetapi Anda juga dapat menambahkan metrik kustom.

Dalam kode, penentuan awal dan akhir trace kode kustom dilakukan menggunakan API yang diberikan oleh Performance Monitoring SDK. Untuk aplikasi Android, Anda juga dapat memantau metode tertentu menggunakan anotasi @AddTrace. Trace kode kustom dapat dimulai kapan saja setelah dibuat, dan aman untuk thread.

Karena metrik default yang dikumpulkan untuk trace ini adalah "duration", trace tersebut terkadang disebut sebagai "Trace durasi".

Anda dapat melihat data dari trace ini di subtab Trace kustom pada tabel trace, yang ada di bagian bawah dasbor Performance (pelajari lebih lanjut cara menggunakan konsol nanti di halaman ini).

Atribut default, atribut khusus, dan metrik kustom

Untuk trace kode kustom, Performance Monitoring otomatis mencatat atribut default (metadata umum seperti versi aplikasi, negara, perangkat, dll.) ke dalam log sehingga Anda dapat memfilter data trace tersebut di Firebase console. Anda juga dapat menambahkan dan memantau atribut khusus (seperti level game atau properti pengguna).

Anda dapat mengonfigurasi trace kode kustom lebih lanjut untuk mencatat metrik kustom untuk peristiwa terkait performa yang terjadi dalam cakupan trace. Misalnya, Anda dapat membuat metrik kustom untuk jumlah cache ditemukan dan cache tidak ditemukan, atau berapa kali UI tidak responsif selama periode waktu yang cukup panjang.

Atribut khusus dan metrik kustom ditampilkan di Firebase console bersama dengan atribut default dan metrik default untuk trace.

Menambahkan trace kode kustom

Gunakan Performance Monitoring Trace API untuk menambahkan trace kode kustom untuk memantau kode aplikasi tertentu.

Perhatikan hal berikut:

  • Sebuah aplikasi dapat memiliki beberapa trace kode kustom.
  • Lebih dari satu trace kode kustom dapat berjalan secara bersamaan.
  • Nama untuk trace kode kustom harus memenuhi persyaratan berikut: tidak boleh ada spasi kosong di awal atau akhir, tidak boleh diawali dengan karakter garis bawah (_), dan panjang maksimal adalah 100 karakter.
  • Trace kode kustom mendukung penambahan metrik kustom dan atribut khusus.

Untuk memulai dan menghentikan trace kode kustom, kurung kode yang ingin dilacak dengan baris kode yang mirip seperti di bawah ini (contoh ini menggunakan trace kustom bernama test_trace):

Kotlin+KTX

// Import these Performance Monitoring classes at the top of your `.kt` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;

val myTrace = Firebase.performance.newTrace("test_trace")
myTrace.start()

// code that you want to trace

myTrace.stop()

Java

// Import these Performance Monitoring classes at the top of your `.java` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;

Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
myTrace.start();

// code that you want to trace

myTrace.stop();

(Opsional) Memantau metode tertentu menggunakan @AddTrace

Aplikasi Android juga mendukung anotasi @AddTrace untuk menginstrumentasikan trace kode kustom. Dengan fitur ini, trace akan dimulai di awal metode yang ditentukan dan berhenti saat metode itu selesai, termasuk apa pun yang dipanggil oleh metode tersebut.

Misalnya, Anda dapat membuat trace kode kustom bernama onCreateTrace yang berjalan saat metode onCreate() dipanggil.

Kotlin+KTX

// Import these Performance Monitoring classes at the top of your `.kt` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.AddTrace;

// Add the `@AddTrace` annotation above the method you want to trace
// the `enabled` argument is optional and defaults to true
@AddTrace(name = "onCreateTrace", enabled = true)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}

Java

// Import these Performance Monitoring classes at the top of your `.java` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.AddTrace;

// Add the `@AddTrace` annotation above the method you want to trace
@Override
@AddTrace(name = "onCreateTrace", enabled = true /* optional */)
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

Menambahkan metrik kustom ke trace kode kustom

Gunakan Performance Monitoring Trace API untuk menambahkan metrik kustom ke trace kode kustom.

Perhatikan hal berikut:

  • Nama untuk metrik kustom harus memenuhi persyaratan berikut: tidak boleh ada spasi kosong di awal atau akhir, tidak boleh diawali dengan karakter garis bawah (_), dan panjang maksimal adalah 100 karakter.
  • Setiap trace kode kustom dapat mencatat hingga 32 metrik (termasuk metrik Duration default).

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 cache tidak ditemukan (menggunakan contoh nama peristiwa item_cache_hit dan item_cache_miss serta bilangan berkelipatan 1).

Kotlin+KTX

val myTrace = Firebase.performance.newTrace("test_trace")
myTrace.start()

// code that you want to trace (and log custom metrics)
val item = cache.fetch("item")
if (item != null) {
    myTrace.incrementMetric("item_cache_hit", 1)
} else {
    myTrace.incrementMetric("item_cache_miss", 1)
}

myTrace.stop()

Java

Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
myTrace.start();

// code that you want to trace (and log custom metrics)
Item item = cache.fetch("item");
if (item != null) {
    myTrace.incrementMetric("item_cache_hit", 1);
} else {
    myTrace.incrementMetric("item_cache_miss", 1);
}

myTrace.stop();

Membuat atribut khusus untuk trace kode kustom

Gunakan Performance Monitoring Trace API untuk menambahkan atribut khusus ke trace kode kustom.

Untuk menggunakan atribut khusus, tambahkan kode ke aplikasi Anda yang menentukan atribut dan mengaitkannya dengan trace kode kustom tertentu. Anda dapat menetapkan atribut khusus kapan saja antara saat trace dimulai dan saat trace berhenti.

Perhatikan hal berikut:

  • Nama untuk atribut khusus harus memenuhi persyaratan berikut:

    • Tidak boleh ada spasi kosong di awal atau akhir, tidak boleh diawali dengan karakter garis bawah (_)
    • Tanpa spasi
    • Panjang maksimal adalah 32 karakter.
    • Karakter yang diizinkan untuk nama adalah A-Z, a-z, dan _.
  • Setiap trace kode kustom dapat mencatat hingga 5 atribut khusus.

  • Pastikan atribut khusus tidak berisi informasi apa pun yang secara pribadi mengidentifikasi individu ke Google.

    Pelajari panduan ini lebih lanjut

Kotlin+KTX

Firebase.performance.newTrace("test_trace").trace {
    // Update scenario.
    putAttribute("experiment", "A")

    // Reading scenario.
    val experimentValue = getAttribute("experiment")

    // Delete scenario.
    removeAttribute("experiment")

    // Read attributes.
    val traceAttributes = this.attributes
}

Java

Trace trace = FirebasePerformance.getInstance().newTrace("test_trace");

// Update scenario.
trace.putAttribute("experiment", "A");

// Reading scenario.
String experimentValue = trace.getAttribute("experiment");

// Delete scenario.
trace.removeAttribute("experiment");

// Read attributes.
Map<String, String> traceAttributes = trace.getAttributes();

Melacak, melihat, dan memfilter data performa

Melacak metrik tertentu di dasbor Anda

Untuk mempelajari tren metrik utama, tambahkan metrik tersebut ke bagan metrik di bagian atas dasbor Performance. Anda dapat segera mengidentifikasi regresi dengan melihat perubahan dari minggu ke minggu atau memverifikasi bahwa perubahan terbaru pada kode Anda meningkatkan performa.

gambar bagan metrik di dasbor Firebase Performance Monitoring

Untuk menambahkan metrik ke bagan metrik, ikuti langkah-langkah berikut:

  1. Buka dasbor Performance di Firebase console.
  2. Klik kartu metrik kosong, lalu pilih metrik yang ada untuk ditambahkan ke bagan.
  3. Klik di kartu metrik yang terisi untuk melihat opsi lainnya, misalnya untuk mengganti atau menghapus metrik.

Bagan metrik menampilkan data metrik yang dikumpulkan dari waktu ke waktu, baik dalam bentuk grafis maupun sebagai perubahan persentase numerik.

Pelajari lebih lanjut cara menggunakan dasbor.

Melihat trace dan datanya

Untuk melihat trace, buka dasbor Performance di Firebase console, scroll ke bawah ke tabel trace, lalu klik subtab yang sesuai. Tabel ini menampilkan beberapa metrik teratas untuk setiap trace, dan Anda bahkan dapat mengurutkan daftar berdasarkan perubahan persentase untuk metrik tertentu.

Performance Monitoring menyediakan halaman pemecahan masalah di Firebase console yang menyoroti perubahan metrik, sehingga memudahkan Anda untuk mengatasi dan meminimalkan dampak masalah performa pada aplikasi serta pengguna dengan cepat. Anda dapat menggunakan halaman pemecahan masalah saat mempelajari potensi masalah performa, misalnya dalam skenario berikut:

  • Anda memilih metrik yang relevan di dasbor dan melihat delta yang besar.
  • Dalam tabel trace, Anda mengurutkan untuk menampilkan delta terbesar di bagian atas, dan Anda melihat perubahan persentase yang signifikan.
  • Anda akan menerima peringatan email yang memberitahukan masalah performa.

Anda dapat mengakses halaman pemecahan masalah dengan cara berikut:

  • Pada dasbor metrik, klik tombol View metric details.
  • Di kartu metrik mana pun, pilih => View details. Halaman pemecahan masalah akan menampilkan informasi tentang metrik yang Anda pilih.
  • Pada tabel trace, klik nama trace atau nilai metrik apa pun di baris yang terkait dengan trace tersebut.
  • Di peringatan email, klik Investigate now.

Saat mengklik nama trace di tabel trace, Anda dapat melihat perincian metrik yang diinginkan. Klik tombol Filter untuk memfilter data menurut atribut, misalnya:

gambar data Firebase Performance Monitoring yang difilter menurut atribut
  • Filter menurut App version untuk melihat data tentang rilis sebelumnya atau rilis terbaru
  • Filter menurut Device untuk mempelajari cara perangkat lama menangani aplikasi Anda
  • Filter menurut Country untuk memastikan lokasi database Anda tidak memengaruhi region tertentu

Pelajari cara melihat data untuk trace Anda lebih lanjut.

Langkah Berikutnya

  • Pelajari lebih lanjut cara menggunakan atribut untuk memeriksa data performa.

  • Pelajari cara melacak masalah performa lebih lanjut di Firebase console.

  • Siapkan pemberitahuan untuk perubahan kode yang menurunkan performa aplikasi Anda. Misalnya, Anda dapat mengonfigurasi peringatan email untuk tim jika durasi trace kode kustom tertentu melebihi batas yang Anda tetapkan.

  • Lihat laporan terperinci tentang sesi pengguna untuk melihat trace tertentu dalam konteks linimasa trace lain yang dikumpulkan selama sesi yang sama.