全部產品
Search
文件中心

Application Real-Time Monitoring Service:日誌資料說明

更新時間:Jul 06, 2024

本文介紹使用者體驗監控日誌中的資料含義。

概覽

使用者體驗監控日誌包含明細表和彙總表。

明細表:View表Resource表Exception表Action表Custom表Application表System表

彙總表:Session表

其中,Application表和System表只有原生App監控使用。

名詞解釋

  • 屬性(Attribute):索引,一般為String類型,對資料進行分組、過濾、彙總等作用,不可量化但具備有限可枚舉性、索引。

  • 度量(Measure):索引,一般為Number類型,是可量化的值。

  • 中繼資料(Metadata):預設非索引,作為描述資料的資料,主要是描述資料屬性的資訊。

公用屬性

公用屬性需要建立索引,是資料過濾和彙總的重要組成部分,在明細表和彙總表中都將存在。同一SessionID在一般情況下公用屬性的值保持一致,但也有可能不同,例如Session內切換帳號後uid不同導致的差異。

屬性名稱

類型

指標項

說明

timestamp

long

發生時間

事件發生的開始時間,如果沒有則取系統時間補齊。

event_type

string

事件類型

view、resource、exception、longtask、action、custom,以及彙總表session。

event_id

string

事件ID

除view和session之外的resource、exception、longtask、action和custom。

app.id

string

應用ID

建立RUM應用產生的唯一應用ID。

app.version

string

應用版本

使用者自己定義的版本號碼。

app.channel

string

應用渠道

應用渠道。

app.env

string

環境資訊

環境類型,用於區分生產pord(預設)、灰階gray、預發pre等。

app.type

string

應用類型

對應使用者建立應用時的應用類型,由上報和資料流雙邊指定,取值:

  • android

  • ios

  • browser

  • miniapp

app.package

string

應用程式套件名

Package在不同的平台下對應著不同定義:

  • Android:PackageName

  • iOS:BundleIdentifier

  • 小程式:AppId

  • 瀏覽器:使用者自訂

user.id

string

使用者ID

使用者ID,初始化SDK時可主動傳入,不配置SDK隨機產生。

user.name

string

使用者名稱

使用者名稱稱,需要自訂配置。

user.tags

string

使用者標籤

使用者標籤。

device.id

string

裝置ID

裝置ID。

device.type

string

裝置類型

裝置報告的裝置類型,例如:移動手機、PC。

device.brand

string

裝置品牌

裝置報告的裝置品牌,例如:mac、iPad、華為、小米。

device.model

string

裝置型號

裝置報告的裝置型號。

device.name

string

裝置名稱

裝置報告的裝置名稱。

os.type

string

作業系統

裝置報告的作業系統名稱。

os.version

string

作業系統版本

裝置報告的作業系統版本。

os.container

string

容器類型

例如:Chrome、微信小程式、App(應用程式名稱)。

os.container_version

string

容器版本

例如:Chrome的版本。

geo.country

string

國家

國家名稱。

geo.country_id

string

國家ISO

國家的ISO代碼。

geo.province

string

省份/地區

省份或地區名稱。

geo.province_id

string

地區 Code

省份或地區Code。

geo.city

string

城市

城市名稱。

geo.city_id

string

城市 Code

城市Code。

isp.id

string

電訊廠商ID

電訊廠商ID。

isp.name

string

電訊廠商名稱

電訊廠商名稱。

net.model

string

接入方式

網路接入方式:2G、3G、4G、5G、WIFI、Unknown等,根據具體平台資訊返回。

net.name

string

網路名稱

Ethernet名稱。

公用Measure

指標

類型

描述

times

int

事件發生的次數,預設值是1。

公用Metadata

欄位名

類型

描述

os.user_agent

string

上報要求標頭。

net.ip

string

用戶端IP

device.sr

string

螢幕解析度。

os.container_vp

string

頁面大小解析度。

明細表設計

View表

可互動的使用者視圖,關注訪問量和相關效能資料,View是針對視圖的歸類,分為:

  • PV:用於計算View被訪問的數量,每次View的訪問PV必須上報,是關聯各種事件,計算各種時序指標的基礎資料。

  • Webvitals:基於Google提出的視圖效能三大指標,由於採集時機差異較大且標準邊界清晰,採取單獨儲存。

  • Perf:視圖常見效能資料,是一個相對比較雜指標類別,基於Perfmonce標準,此類型關注頁面客觀效能,可因主觀改變的效能不包含在內()。

    說明

    看主觀改變的效能例如:頁面停留時間長度。從定義角度來說,頁面停留時間長度是使用者的一種行為資料,放在Action中去管理更合理。

Webvitals和Perf為可選上報的類型,原生視圖可能不適用。

Attributes

屬性名稱

類型

指標項

描述

session.id

string

會話ID

關聯的Session。

view.id

string

視圖ID

為每個整頁模式隨機產生的ID。

view.name

string

視圖名稱

針對一類別檢視的別名,預設為URL的path部分,可以基於規則進行匹配或使用者主動配置。

view.loading_type

string

視圖載入方式

視圖載入類型:

  • initial_load

  • route_change

view.type

string

視圖事件類型

View事件類型:

  • pv

  • perf

view.view_type

string

視圖渲染類型

-

Measures

屬性

類型

指標項

描述

view.time_spent

long (ms)

頁面

在當前視圖上花費的時間。

view.largest_contentful_paint

long (ms)

最大內容渲染耗時

頁面載入時間軸中呈現視圖中最大DOM對象(螢幕上可見)的時刻,大於2.5秒標記為慢。

view.first_input_delay

long (ms)

首次輸入延遲耗時

從使用者第一次與頁面互動到瀏覽器響應之間經過的時間。

view.cumulative_layout_shift

long

累積布局配置位移

量化由於動態載入的內容(例如第三方廣告)而導致的意外頁面移動,其中0表示沒有發生變化。

view.first_contentful_paint

long (ms)

首次內容渲染耗時(白屏時間)

FCP瀏覽器首次呈現text、image(包括背景映像)、非白色Canvas或SVG的時間。

view.dom_interactive

long (ms)

首次可互動時間

內容可互動時間。

view.dom_content_loaded

long (ms)

HTML完全載入時間(DOM Ready 耗時)

當初始HTML文檔完全載入和解析時觸發事件,無需等待非渲染阻塞stylesheets、images和subframes完成載入。

view.dom_complete

long (ms)

DOM

頁面和所有子資源都準備好了。對於使用者Loading已停止旋轉。

view.load_event

long (ms)

頁面完全載入時間

頁面完全載入時觸發的事件。通常是附加應用程式邏輯的觸發器。

說明

小於2秒的頁面載入時間被認為是優良的,而且高達4秒是可接受的。 大於5秒的頁面載入時間不僅影響網站的搜尋引擎排名,還會嚴重影響使用者體驗。

Metadata

屬性名稱

類型

描述

view.referrer

string

上一個網頁的URL,從該網頁連結到當前請求的頁面。

view.url

string

View對應的URL,完整的URL包含了scheme協議、host、path、query、hash部分。

view.timing_data

string

PerformanceResourceTiming的JSONString。

view.snapshots

string

View快照JSONString,主要用於原生App。

Resource表

Resource事件是針對網路請求的歸納,基於HTTP協議和Perfmonce標準制定的RUM事件類型。由於 Perfmonce在不同的平台環境下有不少的差異,RUM針對這部分差異做了修正拉齊。

從業務和習慣出發,Resource分為靜態資源和API兩大類別,本質上來說,靜態資源和API沒有任何區別,都是HTTP請求的資源,但關注點上有比較大的區別,具體如下:

  • 靜態資源(resource.type為css、javascript、image、media等)關注的是資源類型、CDN、網路穩定性等。其中,當resource.type為navigation時,關聯View視圖(view.id相同)的資源資料。

  • API(resource.type為XHR、fetch和API)會更加關注與服務端之間的關聯,如響應碼、Response內容等,還會和Tracing有強關聯。

    XHR和fetch主要出現在瀏覽器和WebView中,或有類似週期性情境中。

    API是在不確定API類型時的預設值,常見於原生和小程式情況下。

一般來說Resource只關注發起了真實網路請求的情況,對於從緩衝中擷取的情況上報前推薦過濾不上報。對於確有上報價值的情況(如計算快取命中率,資源使用量)需要對該類型進行緩衝打標,以區分發起了網路請求的資源。

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

view.id

string

關聯的View。

view.name

string

關聯的view.name。

resource.type

string

採集的資源類型。如:css、javascript、media、XHR、image、navigation。

說明

如果是XHR或者fetch,則資源類型會被認為是API。

resource.method

string

HTTP要求方法。如:POST、GET。

resource.status_code

string

資源狀態代碼。

resource.message

string

一般錯誤時補充的返回結果內容,對應resource.error_msg。

resource.url

string

資源URL。

resource.name

string

預設為URL的Path部分,可以基於規則進行匹配或使用者主動配置。

resource.provider_type

string

資源提供者類型。如:first-party、cdn、ad、analytics。

resource.trace_id

string

資源請求的TraceID。

Measure

指標

類型

描述

resource.success

number

資源載入是否成功:

  • 1(預設):成功

  • 0:失敗

resource.duration

long (ms)

載入資源所花費的全部時間。

計算公式:responseEnd - redirectStart

resource.size

long (bytes)

資源大小,對應decodedBodySize。

resource.connect_duration

long (ms)

與伺服器建立串連所花費的時間。

計算公式:connectEnd - connectStart

resource.ssl_duration

long (ms)

TLS握手所花費的時間。如果最後一個請求不是通過HTTPS,則不會出現此指標。

計算公式:connectEnd - secureConnectionStart

此處需要特別判斷一下,如果secureConnectionStart的值為0, 說明沒有發起SSL串連,此時不計算ssl_duration,ssl_duration賦值為0。

resource.dns_duration

long (ms)

解析最後一個請求的DNS名稱所花費的時間。

計算公式:domainLookupEnd - domainLookupStart

resource.redirect_duration

long (ms)

重新導向HTTP請求的時間。

計算公式:redirectEnd - redirectStart

resource.first_byte_duration

long (ms)

等待接收響應的第一個位元組所花費的時間。

計算公式:responseStart - requestStart

resource.download_duration

long (ms)

下載響應所用的時間。

計算公式:responseEnd - responseStart

Metadata

屬性

類型

描述

resource.timing_data

string

PerformanceResourceTiming的JSONString。

resource.trace_data

string

鏈路追蹤資訊快照:

{
  "propagatorType": "tracecontext",
  "traceId": "57599e11233cc6ebe1a3f539bbb1f238",
  "spanId": "3be6827e9b4f0956",
  "sample": 1,
}

resource.snapshots

string

View快照,主要用於原生App包含。

"resource.flavor": "1.0",
"resource.client.tcp.ip": "127.0.0.1",
"resource.client.tcp.port": 8080,
"resource.request.content_length": 1024,
"resource.request.header.content_type": [
   "application/json"
],
"resource.request.header.accept_encoding": [
   "gzip",
   "deflate",
   "br"
],
"resource.response.content_length": 2048,
"resource.response.header.eagleid": [
   "670f632716687515436056344e"
],

resource.node_name

string

發起請求的Dom類型。

resource.xpath

string

發生xpath的位置。

html. > body. > img.

resource.provider_name

string

資源提供者名,預設為unknown。

resource.provider_domain

string

資源提供者網域名稱。

Exception表

Exception是代碼執行過程中發生了預期之外的情況。

  • Crash:應用發生崩潰。

  • ANR:即Android應用程式無響應(Application No Responding),特定的Message(如Key Dispatch、Broadcast、Service) 在應用的UI線程(主線程)內沒有按規定的時間處理完,將會觸發ANR異常。根據定義ANR具備異常的所有特徵,是Exception的一種類型,而非LongTask。

  • Exception:沒有引起Crash和ANR的其他異常情況。

  • Custom:使用者主動上報的自訂錯誤。

  • Error:主要用於記錄JavaScript相關的錯誤。

  • Blank:用於白屏監控,主要針對瀏覽器下的白屏情況。

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

view.id

string

關聯的View。

view.name

string

關聯的view.name。

exception.source

string

錯誤來源。如:console、event。

exception.file

string

錯誤檔案。

exception.type

string

錯誤類型包括:

  • crash(崩潰)

  • custom(自訂錯誤)

  • error(執行錯誤)

exception.subtype

string

是錯誤類型的二級分類

exception.name

string

錯誤名稱。

exception.message

string

一個簡潔可讀的、解釋事件的訊息。

Metadata

屬性

類型

描述

exception.stack

string

有關錯誤的堆疊追蹤或補充資訊。

exception.caused_by

string

異常原因。

exception.line

long

異常發生程式碼數。

exception.column

long

異常發生代碼列數。

exception.thread_id

string

線程ID。

exception.binary_images

string

錯誤來源。

exception.snapshots

string

錯誤快照。

Action表

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

view.id

string

關聯的View。

view.name

string

關聯的view.name。

action.type

string

使用者行為類型。

action.name

string

語義化的名稱。如:單擊#checkout。

action.target_name

string

使用者與之互動的元素。僅用於自動收集的動作。

Measure

指標

類型

描述

action.duration

long (ms)

行為期間。

Metadata

屬性

類型

描述

action.snapshots

string

行為快照。

action.method_info

string

行為回調。如:onClick()。

Custom表

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

view.id

string

關聯的View。

view.name

string

關聯的view.name。

custom.type

string

自訂類型。

custom.name

string

自訂事件名稱。

custom.group

string

自訂事件分組。

Measure

屬性

類型

描述

custom.value

number

自訂事件分組。

Metadata

屬性

類型

描述

custom.snapshots

string

字元長度一般不超過5000個字元。

Application表

應用級事件,如:冷/暖開機、應用退出、應用切出/入等。

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

application.type

string

枚舉類型:

  • launch:啟動

  • exit:退出

  • background:切入後台

  • forground:切入前台

application.name

string

作為application.type的細粒度類型,如:

  • cold-lunch:冷啟動

  • hot-lunch:暖開機

  • first-lunch:初次開機

  • background:切入後台

  • forground:切入前台

Measure

指標

類型

描述

application.duration

long(ms)

對應應用事件類型的耗時。

Metadata

屬性

類型

描述

application.snapshots

string

應用啟動事件的快照資料,一般為線程方法。

System表

Attributes

屬性

類型

描述

session.id

string

關聯的Session。

system.type

string

使用者行為類型。

system.name

string

語義化的名稱,例如單擊#checkout。

Metadata

屬性

類型

描述

system.snapshots

string

"sys.net_change.before.ip": "1.1.XX.XX",
"sys.net_change.before.standard": "wifi",
"sys.net_change.after.ip": "2.2.2.2",
"sys.net_change.after.standard": "4G",

彙總表設計

Session表

Attributes

屬性名稱

類型

描述

session.id

string

每個會話隨機產生的ID。

session.ip

string

用戶端IP地址。

session.referrer

string

上一個網頁的URL,從該網頁連結到當前請求的頁面。

session.initial_view_id

string

使用者產生的第一個View ID。

session.initial_view_name

string

使用者產生的第一個View Name。

session.last_view_id

string

使用者產生的最後一個View ID。

session.last_view_name

string

使用者產生的最後一個View Name。

session.start

long

Session的開始時間戳。

session.end

long

Session的結束時間戳記。

Metadata

屬性

類型

描述

session.initial_view.url

string

使用者產生的第一個View URL。

session.last_view_url

string

使用者產生的最後一個View URL。

Measure

指標

類型

名稱

描述

session.time_spent

long (ms)

會話時間長度

使用者會話的期間。

session.view_count

long

視圖數量

此次會話收集的所有瀏覽次數。

session.exception_count

long

異常數量

此次會話收集的所有異常的計數。

session.resource_count

long

資源請求數

此次會話收集的所有資源的計數。

session.resource_error_count

long

資源錯誤數

此次會話收集的所有錯誤資源的計數。

session.api_count

long

API請求數

此次會話收集的所有API請求的計數。

session.api_error_count

long

API錯誤數

此次會話收集的所有API請求錯誤的計數。

session.action_count

long

使用者事件數目

此次會話收集的所有操作的計數。

session.long_task_count

long

卡頓次數

此次會話收集的所有長任務的計數。