Saat pemuatan halaman memakan waktu terlalu lama, Anda perlu mengidentifikasi resource spesifik—seperti skrip, stylesheet, gambar, atau font—yang menjadi penyebabnya. Pelacakan sesi lambat di Application Real-Time Monitoring Service (ARMS) menangkap grafik air terjun (waterfall chart) dari pemuatan resource statis selama setiap pemuatan halaman, sehingga Anda dapat melacak sumber pemuatan lambat hingga ke masing-masing resource dan memperbaikinya.
| Problem | Cara pelacakan sesi lambat membantu |
|---|---|
| Pemuatan halaman lambat | Memecah pemuatan menjadi waktu pemuatan resource individual sehingga Anda dapat mengidentifikasi yang paling lambat |
| Lonjakan performa yang tidak konsisten | Mengurutkan 20 sesi paling lambat dalam jendela waktu tertentu untuk perbandingan |
| Akar masalah tidak diketahui | Menggabungkan grafik air terjun resource dengan metadata klien (IP, browser, OS) untuk mempersempit penyebabnya |
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menghubungkan aplikasi ke ARMS Browser Monitoring. Untuk instruksi penyiapan, lihat Ikhtisar Pemantauan Browser.
Menyetel parameter
sendResourceketruedalam konfigurasi SDK (lihat Aktifkan pelaporan resource statis).Men-deploy ulang aplikasi setelah memperbarui konfigurasi SDK.
Aktifkan pelaporan resource statis di SDK
Secara default, SDK ARMS Browser Monitoring tidak melaporkan data resource statis. Untuk mengaktifkan pelacakan sesi lambat, atur sendResource ke true dalam objek config SDK:
<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"atc889zkcf@8cc3f6354******",imgUrl:"https://arms-retcode.aliyuncs.com/r.png?",sendResource:true};
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl");
</script>Ganti nilai pid dengan PID aplikasi Anda sendiri dari Konsol ARMS.
Setelah Anda melakukan redeploy aplikasi, SDK akan melaporkan data waktu pemuatan resource statis setiap kali halaman memicu event onload.
Ambang batas pengambilan sampel data
Mengaktifkan sendResource menghasilkan volume telemetri yang besar. Untuk membatasi overhead, ARMS melakukan pengambilan sampel data berdasarkan waktu pemuatan halaman:
| Waktu pemuatan halaman | Perilaku pelaporan |
|---|---|
| > 8 dtk | Data lengkap dilaporkan |
| 2 dtk – 8 dtk | 5% sesi diambil sebagai sampel |
| < 2 dtk | Tidak ada data yang dilaporkan |
Jika aplikasi Anda sudah dimuat dalam waktu kurang dari 2 detik, mengaktifkan pelaporan resource statis hanya akan menambah beban jaringan tanpa memberikan data. Evaluasi apakah manfaat pelacakan sepadan dengan biayanya sebelum Anda mengaktifkannya.
Lacak pemuatan halaman lambat dari halaman Page Speed
Panduan ini menunjukkan cara melacak pemuatan halaman lambat hingga ke resource spesifik. Ini merupakan titik awal yang direkomendasikan saat Anda melihat lonjakan waktu pemuatan halaman.
Di Konsol ARMS, pilih Browser Monitoring > Browser Monitoring di panel navigasi kiri.
Di halaman Browser Monitoring, pilih wilayah di bilah navigasi atas dan klik nama aplikasi.
Pilih Application > Page Speed.
Di bagian Page Load Time Details, cari lonjakan waktu pemuatan. Pada contoh berikut, waktu pemuatan halaman penuh mencapai 36,7 dtk pada pukul 11.00.

Gulir ke bawah ke bagian Slow Page Session Trace (TOP20), yang mencantumkan 20 sesi paling lambat dalam jendela waktu yang dipilih. Untuk menyesuaikan jendela waktu, klik ikon jam di pojok kanan atas. Pada contoh ini, satu sesi mencapai waktu pemuatan 36,72 dtk pada pukul 11:36:46 — penyebab langsung dari lonjakan tersebut.

Di kolom Page, klik nama halaman untuk membuka halaman Slow Loading Details.
Tinjau grafik air terjun di bagian Page Resource Loading Waterfall. Setiap batang mewakili satu permintaan resource beserta rincian waktunya. Saat menganalisis grafik air terjun, perhatikan:
Resource dengan waktu pemuatan jauh lebih lama dibandingkan yang lain.
Resource berukuran besar (skrip, gambar) yang menghambat rendering.
Resource pihak ketiga yang menimbulkan latensi.
Resource yang menampilkan
Size: 0atauTime: 0(lihat Pemecahan masalah data grafik air terjun).

Periksa bagian Page Information di bagian atas halaman Slow Loading Details untuk metadata klien — alamat IP, browser, dan sistem operasi. Gunakan konteks ini untuk menentukan apakah bottleneck bersifat terkait jaringan atau spesifik pada resource.

Jelajahi sesi dari halaman Session Traces
Sebagai alternatif dari memulai di Page Speed, Anda dapat menjelajahi semua sesi yang terekam secara langsung.
Di panel navigasi kiri, pilih Application > Session Traces.
Filter sesi berdasarkan username, ID pengguna, ID sesi, alamat IP, URL halaman, browser, versi browser, jenis koneksi jaringan, atau wilayah.

Di kolom Session ID, klik ID sesi untuk membuka halaman Session Details. Untuk detail tentang cara menafsirkan data sesi, lihat Pelacakan sesi.
Pemecahan masalah data grafik air terjun
Ukuran menampilkan 0 di grafik air terjun resource
Nilai Size berasal dari API browser PerformanceResourceTiming.transferSize. API ini mengembalikan 0 dalam dua kasus:
Resource disajikan dari cache browser.
Resource bersifat cross-origin dan server tidak menyetel header
Timing-Allow-Origin.
Untuk memverifikasi, buka Chrome DevTools (F12), buka tab Network, dan pilih Disable cache. Muat ulang halaman — nilai transferSize seharusnya muncul.


Waktu menampilkan 0 di grafik air terjun resource
Nilai Time berasal dari PerformanceResourceTiming.duration. Nilai ini mengembalikan 0 ketika browser menyajikan resource dari cache berumur panjang yang dikontrol oleh direktif max-age, karena tidak ada permintaan jaringan yang terjadi.
Untuk mengonfirmasi, buka Chrome DevTools (F12), buka tab Network, pilih Disable cache, lalu refresh. Nilai waktu seharusnya muncul.
Resource cross-origin mengembalikan 0 untuk semua bidang waktu
Karena kebijakan asal sama (same-origin policy), browser mengembalikan 0 untuk atribut waktu berikut pada resource cross-origin:
redirectStart, redirectEnd, domainLookupStart, domainLookupEnd, connectStart, connectEnd, secureConnectionStart, requestStart, responseStart
Untuk memperbaikinya, tambahkan header Timing-Allow-Origin ke respons resource cross-origin:
Timing-Allow-Origin: *Hal ini memberikan akses ke data waktu pemuatan resource untuk semua origin. Untuk kontrol yang lebih granular, tentukan origin tertentu alih-alih menggunakan *.
Rentang waktu grafik air terjun API
Grafik air terjun API mencakup periode dari awal pemuatan halaman hingga satu menit setelah halaman dimuat sepenuhnya. Grafik ini menampilkan status keseluruhan permintaan API yang dilakukan selama pemuatan halaman.
Waktu respons API berbeda antara grafik air terjun
Waktu respons di grafik air terjun API biasanya beberapa milidetik lebih lama daripada di grafik air terjun resource karena kedua grafik mengukur waktu dengan metode berbeda:
| Grafik | Metode pengukuran |
|---|---|
| Grafik air terjun API | Mengukur dari saat permintaan dikirim hingga data kembali |
| Grafik air terjun resource | Menggunakan performance.getEntriesByType('resource'), yang mengandalkan waktu pemuatan resource tingkat browser |
Perbedaan ini tidak signifikan dan tidak memengaruhi analisis bottleneck.
Titik awal garis waktu grafik air terjun API
Titik awal garis waktu di grafik air terjun API sama dengan selisih antara waktu pengiriman permintaan API dan timestamp fetchStart halaman. Hal ini menunjukkan kapan setiap permintaan API dipicu relatif terhadap siklus hidup pemuatan halaman.