Topik ini menjelaskan bidang data dalam log Pemantauan Pengguna Nyata.
Ikhtisar
Log Pemantauan Pengguna Nyata mencakup beberapa tabel detail dan satu tabel agregasi.
Tabel detail: Tabel Tampilan, Tabel Sumber daya, Tabel Pengecualian, Tabel Aksi, Tabel Kustom, Tabel Aplikasi, dan Tabel Sistem.
Tabel agregasi: Tabel Sesi.
Tabel Aplikasi dan Sistem hanya digunakan untuk pemantauan aplikasi asli.
Glosarium
Atribut: Indeks yang biasanya berupa string. Digunakan untuk mengelompokkan, menyaring, dan mengagregasi data. Atribut tidak dapat dikuantifikasi, memiliki kumpulan nilai terbatas, dan diindeks.
Ukuran: Indeks yang biasanya berupa angka. Merupakan nilai yang dapat dikuantifikasi.
Metadata: Data yang secara default tidak diindeks. Menggambarkan data lain, terutama dengan memberikan informasi tentang properti data tersebut.
Atribut umum
Atribut umum harus diindeks karena penting untuk penyaringan dan agregasi data, serta tersedia di kedua jenis tabel—detail maupun agregasi. Dalam satu sesi yang sama, atribut umum biasanya memiliki nilai yang konsisten. Namun, nilainya dapat berubah jika, misalnya, pengguna mengganti akun selama sesi tersebut sehingga mengubah ID pengguna (UID).
Atribut | Tipe | Nama bidang | Deskripsi |
timestamp | long | Waktu kejadian | Waktu mulai event. Jika tidak tersedia, waktu sistem akan digunakan. |
event_type | string | Jenis event | tampilan, sumber daya, pengecualian, longtask, aksi, kustom, dan tabel agregasi sesi. |
event_id | string | ID Event | event sumber daya, pengecualian, longtask, aksi, dan kustom, tidak termasuk tampilan dan sesi. |
app.id | string | ID Aplikasi | ID aplikasi unik yang dihasilkan saat Anda membuat aplikasi Pemantauan Pengguna Nyata (RUM). |
app.version | string | Versi aplikasi | Nomor versi yang ditentukan pengguna. |
app.channel | string | Saluran aplikasi | Saluran aplikasi. |
app.env | string | Konteks lingkungan | Jenis lingkungan, digunakan untuk membedakan antara lingkungan seperti produksi (prod) (default), grayscale (gray), dan pra-rilis (pre). |
app.type | string | Jenis aplikasi | Jenis aplikasi yang dipilih saat aplikasi dibuat. Ditentukan oleh sisi pelaporan dan aliran data. Nilai yang valid:
|
app.package | string | Nama paket aplikasi | Definisi Paket bervariasi menurut platform:
|
user.id | string | ID Pengguna | ID Pengguna (identifier pengunjung). Dihasilkan secara otomatis oleh kit pengembangan perangkat lunak (SDK) dan tidak dapat dimodifikasi. |
user.name | string | Nama pengguna | Nama pengguna (identifier pengguna bisnis). Memerlukan konfigurasi khusus. |
user.tags | string | Tag pengguna | Tag pengguna. |
device.id | string | ID Perangkat | ID perangkat. |
device.type | string | Jenis perangkat | Jenis perangkat yang dilaporkan oleh perangkat, seperti ponsel atau PC. |
device.brand | string | Merek perangkat | Merek perangkat yang dilaporkan oleh perangkat, seperti Mac, iPad, Huawei, atau Xiaomi. |
device.model | string | Model perangkat | Model perangkat yang dilaporkan oleh perangkat. |
device.name | string | Nama perangkat | Nama perangkat yang dilaporkan oleh perangkat. |
os.type | string | Sistem operasi | Nama sistem operasi yang dilaporkan oleh perangkat. |
os.version | string | Versi sistem operasi | Versi sistem operasi yang dilaporkan oleh perangkat. |
os.container | string | Jenis kontainer | Contoh: Chrome, program mini WeChat, atau App (nama aplikasi). |
os.container_version | string | Versi kontainer | Contoh: Versi Chrome. |
geo.country | string | Negara | Nama negara. |
geo.country_id | string | ISO Negara | Kode ISO negara. |
geo.province | string | Provinsi/Wilayah | Nama provinsi atau wilayah. |
geo.province_id | string | Kode Wilayah | Kode provinsi atau wilayah. |
geo.city | string | Kota | Nama kota. |
geo.city_id | string | Kode Kota | Kode kota. |
isp.id | string | ID Penyedia layanan | ID penyedia layanan. |
isp.name | string | Nama penyedia layanan | Nama penyedia layanan. |
net.model | string | Jenis koneksi | Jenis koneksi jaringan, seperti 2G, 3G, 4G, 5G, WIFI, atau Unknown. Nilai dikembalikan berdasarkan informasi spesifik platform. |
net.name | string | Nama jaringan | Nama Ethernet. |
Ukuran umum
Metrik | Tipe | Deskripsi |
times | int | Jumlah kali event terjadi. Nilai default adalah 1. |
Metadata umum
Nama bidang | Tipe | Deskripsi |
os.user_agent | string | Header permintaan yang dilaporkan. |
net.ip | string | IP Klien |
device.sr | string | Resolusi layar. |
os.container_vp | string | Resolusi ukuran halaman. |
Desain tabel detail
Tabel Tampilan
Tampilan adalah interaksi pengguna yang berfokus pada volume akses dan data kinerja terkait. Tampilan diklasifikasikan ke dalam jenis-jenis berikut:
PV: Digunakan untuk menghitung jumlah akses Tampilan. PV harus dilaporkan setiap kali Tampilan diakses karena menyediakan data dasar untuk mengaitkan berbagai event dan menghitung metrik waktu.
Web Vitals: Berdasarkan tiga metrik kinerja inti yang diajukan oleh Google. Disimpan secara terpisah karena waktu pengumpulannya sangat bervariasi dan standarnya telah didefinisikan secara jelas.
Perf: Data kinerja umum untuk suatu tampilan. Merupakan kategori metrik campuran berdasarkan standar Performance, yang berfokus pada kinerja objektif halaman. Metrik kinerja subjektif tidak termasuk.
CatatanSebagai contoh, durasi tinggal halaman merupakan metrik kinerja subjektif. Menurut definisi, durasi tinggal halaman termasuk dalam data perilaku pengguna dan lebih tepat dikelola dalam Tabel Aksi.
Web Vitals dan Perf bersifat opsional dan mungkin tidak berlaku untuk tampilan asli.
Atribut
Atribut | Tipe | Nama bidang | Deskripsi |
session.id | string | ID Sesi | Sesi terkait. |
view.id | string | ID Tampilan | ID yang dihasilkan secara acak untuk setiap tampilan halaman. |
view.name | string | Nama Tampilan | Alias untuk sekelompok tampilan. Secara default, ini adalah bagian path dari URL. Dapat dicocokkan berdasarkan aturan atau dikonfigurasi oleh pengguna. |
view.loading_type | string | Jenis pemuatan Tampilan | Jenis pemuatan tampilan:
|
view.type | string | Jenis event Tampilan | Jenis event Tampilan:
|
view.view_type | string | Jenis rendering Tampilan | - |
Ukuran
Atribut | Tipe | Nama bidang | Deskripsi |
view.time_spent | long (ms) | Halaman | Waktu yang dihabiskan pada tampilan saat ini. |
view.largest_contentful_paint | long (ms) | Largest Contentful Paint | Waktu ketika objek DOM terbesar (terlihat di layar) dalam tampilan dirender dalam timeline pemuatan halaman. Nilai lebih dari 2,5 detik ditandai sebagai lambat. |
view.first_input_delay | long (ms) | First Input Delay | Waktu yang berlalu antara interaksi pertama pengguna dengan halaman dan respons browser. |
view.cumulative_layout_shift | long | Cumulative Layout Shift | Mengkuantifikasi pergerakan halaman tak terduga yang disebabkan oleh konten yang dimuat secara dinamis, seperti iklan pihak ketiga. Nilai 0 menunjukkan tidak ada pergeseran. |
view.first_contentful_paint | long (ms) | First Contentful Paint (waktu layar kosong) | Waktu ketika browser pertama kali merender teks, citra (termasuk citra latar belakang), kanvas non-putih, atau SVG. |
view.dom_interactive | long (ms) | Time to Interactive | Waktu ketika konten menjadi interaktif. |
view.dom_content_loaded | long (ms) | Waktu pemuatan HTML lengkap (waktu DOM Ready) | Event dipicu ketika dokumen HTML awal sepenuhnya dimuat dan diurai, tanpa menunggu stylesheet non-blocking-rendering, citra, dan subframe selesai dimuat. |
view.dom_complete | long (ms) | DOM | Halaman dan semua sumber dayanya siap. Bagi pengguna, spinner pemuatan telah berhenti. |
view.load_event | long (ms) | Waktu pemuatan halaman penuh | Event yang dipicu ketika halaman sepenuhnya dimuat. Sering kali menjadi pemicu untuk logika aplikasi tambahan. Catatan Waktu pemuatan halaman kurang dari 2 detik dianggap sangat baik, dan hingga 4 detik masih dapat diterima. Waktu pemuatan halaman lebih dari 5 detik tidak hanya memengaruhi peringkat situs web di mesin pencari tetapi juga sangat berdampak pada pengalaman pengguna. |
Metadata
Atribut | Tipe | Deskripsi |
view.referrer | string | URL halaman web sebelumnya tempat tautan ke halaman yang diminta saat ini diikuti. |
view.url | string | URL yang sesuai dengan Tampilan. URL lengkap mencakup bagian skema, host, path, kueri, dan hash. |
view.timing_data | string | String JSON dari PerformanceResourceTiming. |
view.snapshots | string | String JSON dari snapshot Tampilan, terutama digunakan untuk aplikasi asli. |
Tabel Sumber daya
Event Sumber daya merupakan ringkasan permintaan jaringan dan termasuk jenis event Pemantauan Pengguna Nyata (RUM) berdasarkan protokol HTTP serta standar Performance. Mengingat variasi standar Performance di berbagai platform, RUM telah melakukan penyesuaian untuk menyelaraskan perbedaan tersebut.
Dari perspektif bisnis dan praktis, sumber daya dibagi menjadi dua kategori utama: sumber daya statis dan API. Meskipun keduanya merupakan sumber daya yang diminta melalui HTTP, fokus masing-masing sangat berbeda, seperti dijelaskan berikut ini:
Sumber daya statis (di mana resource.type bernilai css, javascript, image, media, dan sebagainya) berfokus pada jenis sumber daya, CDN, dan stabilitas jaringan. Jika resource.type bernilai navigation, data sumber daya dikaitkan dengan Tampilan (memiliki ID view.id yang sama).
API (di mana resource.type bernilai XHR, fetch, atau API) terutama berkaitan dengan interaksi sisi server, seperti kode respons dan konten respons, serta memiliki keterkaitan erat dengan Tracing.
XHR dan fetch umumnya digunakan di browser dan WebView, atau dalam skenario serupa.
Jika jenis API tidak ditentukan, nilai default-nya adalah API. Nilai ini umum ditemui dalam skenario aplikasi asli dan miniapp.
Secara umum, event Sumber daya hanya mencakup kasus di mana permintaan jaringan nyata dilakukan. Untuk data yang diambil dari cache, kami menyarankan Anda menyaring dan tidak melaporkannya. Namun, jika pelaporan data tersebut bernilai—misalnya, untuk menghitung rasio hit cache atau penggunaan sumber daya—Anda harus menandai jenis sumber daya sebagai cached guna membedakannya dari sumber daya yang memicu permintaan jaringan.
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
view.id | string | Tampilan terkait. |
view.name | string | view.name terkait. |
resource.type | string | Jenis sumber daya yang dikumpulkan. Contoh: `css`, `javascript`, `media`, `XHR`, `image`, `navigation`. Catatan Jika permintaan adalah permintaan XHR atau fetch, jenis sumber daya dianggap sebagai API. |
resource.method | string | Metode permintaan HTTP. Contoh: POST, GET. |
resource.status_code | string | Kode status sumber daya. |
resource.message | string | Konten hasil yang dikembalikan, biasanya diberikan saat terjadi kesalahan. Sesuai dengan `resource.error_msg`. |
resource.url | string | URL sumber daya. |
resource.name | string | Secara default, ini adalah bagian path dari URL. Dapat dicocokkan berdasarkan aturan atau dikonfigurasi oleh pengguna. |
resource.provider_type | string | Jenis penyedia sumber daya. Contoh: `first-party`, `cdn`, `ad`, `analytics`. |
resource.trace_id | string | ID jejak dari permintaan sumber daya. |
Ukuran
Metrik | Tipe | Deskripsi |
resource.success | number | Menunjukkan apakah sumber daya berhasil dimuat:
|
resource.duration | long (ms) | Total waktu yang dihabiskan untuk memuat sumber daya. Rumus: `responseEnd - redirectStart` |
resource.size | long (bytes) | Ukuran sumber daya, sesuai dengan `decodedBodySize`. |
resource.connect_duration | long (ms) | Waktu yang dihabiskan untuk membuat koneksi ke server. Rumus: `connectEnd - connectStart` |
resource.ssl_duration | long (ms) | Waktu yang dihabiskan untuk proses jabat tangan TLS. Metrik ini tidak muncul jika permintaan terakhir tidak dilakukan melalui HTTPS. Rumus: `connectEnd - secureConnectionStart` Jika nilai `secureConnectionStart` adalah 0, berarti tidak ada koneksi SSL-VPN yang dimulai. Dalam kasus ini, `ssl_duration` tidak dihitung dan diatur ke 0. |
resource.dns_duration | long (ms) | Waktu yang dihabiskan untuk menyelesaikan nama DNS untuk permintaan terakhir. Rumus: `domainLookupEnd - domainLookupStart` |
resource.redirect_duration | long (ms) | Waktu yang dihabiskan untuk pengalihan permintaan HTTP. Rumus: `redirectEnd - redirectStart` |
resource.first_byte_duration | long (ms) | Waktu yang dihabiskan menunggu menerima byte pertama dari tanggapan. Rumus: `responseStart - requestStart` |
resource.download_duration | long (ms) | Waktu yang dihabiskan untuk mengunduh tanggapan. Rumus: `responseEnd - responseStart` |
Metadata
Atribut | Tipe | Deskripsi |
resource.timing_data | string | String JSON dari PerformanceResourceTiming. |
resource.trace_data | string | Snapshot informasi Analisis Tracing: |
resource.snapshots | string | Snapshot Tampilan, terutama disertakan untuk aplikasi asli. |
resource.node_name | string | Jenis DOM yang memulai permintaan. |
resource.xpath | string | Lokasi terjadinya XPath. html. > body. > img. |
resource.provider_name | string | Nama penyedia sumber daya. Nilai default adalah `unknown`. |
resource.provider_domain | string | Nama domain penyedia sumber daya. |
Tabel Pengecualian
Pengecualian adalah event tak terduga yang terjadi selama eksekusi kode.
Crash: Aplikasi berhenti secara tak terduga.
ANR (Application Not Responding): Terjadi ketika pesan tertentu—seperti Key Dispatch, Broadcast, atau pesan Service—tidak diproses dalam batas waktu yang ditentukan di thread UI aplikasi (thread utama). Menurut definisi, ANR memiliki semua karakteristik pengecualian dan diklasifikasikan sebagai Pengecualian, bukan LongTask.
Pengecualian: Situasi abnormal lain yang tidak menyebabkan Crash atau ANR.
Kustom: Kesalahan kustom yang dilaporkan secara aktif oleh pengguna.
Error: Terutama digunakan untuk mencatat error terkait JavaScript.
Kosong: Digunakan untuk pemantauan layar kosong, terutama pada event layar kosong di browser.
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
view.id | string | Tampilan terkait. |
view.name | string | view.name terkait. |
exception.source | string | Sumber kesalahan. Contoh: `console`, `event`. |
exception.file | string | Berkas kesalahan. |
exception.type | string | Jenis kesalahan. Termasuk:
|
exception.subtype | string | Sub-kategori dari jenis kesalahan. |
exception.name | string | Nama kesalahan. |
exception.message | string | Pesan ringkas yang dapat dibaca manusia yang menjelaskan event tersebut. |
Metadata
Atribut | Tipe | Deskripsi |
exception.stack | string | Jejak stack atau informasi tambahan tentang kesalahan. |
exception.caused_by | string | Penyebab pengecualian. |
exception.line | long | Nomor baris tempat pengecualian terjadi. |
exception.column | long | Nomor kolom tempat pengecualian terjadi. |
exception.thread_id | string | ID Thread. |
exception.binary_images | string | Sumber kesalahan. |
exception.snapshots | string | Snapshot kesalahan. |
Tabel Aksi
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
view.id | string | Tampilan terkait. |
view.name | string | view.name terkait. |
action.type | string | Jenis perilaku pengguna. |
action.name | string | Nama semantik. Contoh: `Klik #checkout`. |
action.target_name | string | Elemen yang berinteraksi dengan pengguna. Hanya digunakan untuk aksi yang dikumpulkan secara otomatis. |
Ukuran
Metrik | Tipe | Deskripsi |
action.duration | long (ms) | Durasi perilaku. |
Metadata
Atribut | Tipe | Deskripsi |
action.snapshots | string | Snapshot perilaku. |
action.method_info | string | Callback perilaku. Contoh: `onClick()`. |
Tabel Kustom
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
view.id | string | Tampilan terkait. |
view.name | string | view.name terkait. |
custom.type | string | Jenis kustom. |
custom.name | string | Nama event kustom. |
custom.group | string | Grup event kustom. |
Ukuran
Atribut | Tipe | Deskripsi |
custom.value | number | Anda dapat menyesuaikan grup event. |
Metadata
Atribut | Tipe | Deskripsi |
custom.snapshots | string | Panjang karakter umumnya tidak melebihi 5.000 karakter. |
Tabel Aplikasi
Tabel ini mencatat event tingkat aplikasi, seperti startup dingin atau panas, keluar aplikasi, serta perpindahan aplikasi antara latar belakang dan latar depan.
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
application.type | string | Jenis enumerasi:
|
application.name | string | Jenis yang lebih rinci untuk `application.type`. Contoh:
|
Ukuran
Metrik | Tipe | Deskripsi |
application.duration | long (ms) | Durasi yang sesuai dengan jenis event aplikasi. |
Metadata
Atribut | Tipe | Deskripsi |
application.snapshots | string | Data snapshot dari event peluncuran aplikasi, yang umumnya merupakan metode thread. |
Tabel Sistem
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | Sesi terkait. |
system.type | string | Jenis perilaku pengguna. |
system.name | string | Nama semantik. Contoh: `Klik #checkout`. |
Metadata
Atribut | Tipe | Deskripsi |
system.snapshots | string | |
Desain tabel agregasi
Tabel Sesi
Atribut
Atribut | Tipe | Deskripsi |
session.id | string | ID yang dihasilkan secara acak untuk setiap sesi. |
session.ip | string | Alamat IP klien. |
session.referrer | string | URL halaman web sebelumnya tempat tautan ke halaman yang diminta saat ini diikuti. |
session.initial_view_id | string | ID Tampilan pertama yang dihasilkan pengguna. |
session.initial_view_name | string | Nama Tampilan pertama yang dihasilkan pengguna. |
session.last_view_id | string | ID Tampilan terakhir yang dihasilkan pengguna. |
session.last_view_name | string | Nama Tampilan terakhir yang dihasilkan pengguna. |
session.start | long | Timestamp mulai sesi. |
session.end | long | Timestamp akhir sesi. |
Metadata
Atribut | Tipe | Deskripsi |
session.initial_view.url | string | URL Tampilan pertama yang dihasilkan pengguna. |
session.last_view_url | string | URL Tampilan terakhir yang dihasilkan pengguna. |
Ukuran
Metrik | Tipe | Nama | Deskripsi |
session.time_spent | long (ms) | Durasi sesi | Durasi sesi pengguna. |
session.view_count | long | Jumlah tampilan | Jumlah total semua tampilan halaman yang dikumpulkan dalam sesi ini. |
session.exception_count | long | Jumlah pengecualian | Jumlah total semua pengecualian yang dikumpulkan dalam sesi ini. |
session.resource_count | long | Jumlah permintaan sumber daya | Jumlah total semua sumber daya yang dikumpulkan dalam sesi ini. |
session.resource_error_count | long | Jumlah kesalahan sumber daya | Jumlah total semua kesalahan sumber daya yang dikumpulkan dalam sesi ini. |
session.api_count | long | Jumlah permintaan API | Jumlah total semua permintaan API yang dikumpulkan dalam sesi ini. |
session.api_error_count | long | Jumlah kesalahan API | Jumlah total semua kesalahan permintaan API yang dikumpulkan dalam sesi ini. |
session.action_count | long | Jumlah event pengguna | Jumlah total semua aksi yang dikumpulkan dalam sesi ini. |
session.long_task_count | long | Jumlah tersendat | Jumlah total semua long task yang dikumpulkan dalam sesi ini. |