网站性能指标设计详解
观测云是如何设计网站性能指标的?
数据类型
用户体验数据包括六种数据类型。
session
用户会话信息记录,当前会话中,将会基于会话维度用户页面、资源、操作、错误、长任务相关访问数据。
view
用户访问页面时,都会生成一个页面查看记录。当用户停留在同一页面上时,资源,长任务,错误和操作记录将通过view_id属性链接到相关的RUM视图。
resource
用户访问页面时,加载的资源信息记录。
error
用户访问监测采集器收集浏览器上的所有前端错误。
long_task
对于浏览器中的任何阻塞主线程超过50ms的任务,都会生成一条长任务记录。
action
跟踪用户页面浏览过程中所有的用户交互记录。
应用数据信息
app_id
必填,用户访问应用唯一ID标识
env
必填,环境字段。属性值:prod/gray/pre/common/local。
version
必填,版本号。
用户 & 会话属性
| userid | string | 未登录用户使用cookie作为userid,登录用户使用应用后台生成的用户id。 |
|---|---|---|
| session_id | string | 会话id。 |
| session_type | string | 会话类型。参考值:user |
| is_signin | boolean | 是否是注册用户,属性值:True / False。 |
设备 & 分辨率属性
| 字段 | 类型 | 描述 |
|---|---|---|
| os | string | 操作系统 |
| os_version | string | 操作系统版本 |
| os_version_major | string | 设备报告的主要操作系统版本 |
| browser | string | 浏览器提供商 |
| browser_version | string | 浏览器版本 |
| browser_version_major | string | 浏览器主要版本信息 |
| screen_size | string | 屏幕宽度*高度,分辨率 |
地理 & 网络属性
| 字段 | 类型 | 描述 |
|---|---|---|
| ip | string | 用户访问IP地址 |
| isp | string | 运营商 |
| network_type | string | 网络连接类型,属性值参考: wifi |
| country | string | 国家 |
| country_iso_code | string | 国家 iso_code |
| province | string | 省 |
| city | string | 城市 |
View 属性
| 字段 | 类型 | 描述 |
|---|---|---|
| view_id | string | 每次访问页面时产生的唯一ID |
| is_active | boolean | 判断用户是否还在活跃状态,参考值: true |
| view_loading_type | string | 页面加载类型, 参考值:initial_load |
| view_referrer | string | 页面来源 |
| view_url | string | 页面URL |
| view_host | string | 页面URL域名部分 |
| view_path | string | 页面URL path部分 |
| view_path_group | string | 页面URL path分组 |
| view_url_query | string | 页面URL query部分 |
用户属性
除了默认属性以外,还可以通过用户属性构建场景和配置事件告警。用户属性是非全局属性,通过用户属性,可以跟踪用户访问应用的整个过程,定位和发现用户受影响的访问情况,监控用户访问性能。
其他数据类型属性
Session
统计指标
| 字段 | 类型 | 描述 |
|---|---|---|
| time_spent | number(ns) | 当前会话持续时长 |
| session_view_count | number | 当前会话关联view_id个数 |
| session_error_count | number | 当前会话产生错误个数 |
| session_resource_count | number | 当前会话加载资源个数 |
| session_action_count | number | 当前会话用户操作次数 |
| session_long_task_count | number | 当前会话产生长任务次数 |
属性
| 字段 | 类型 | 描述 |
|---|---|---|
| session_id | string | 会话id(后台停留30s以上,会生成一个新的session_id) |
| session_type | string | 会话类型。参考值:user |
| session_referrer | string | 会话来源。一般是记录来源的页面地址。 |
| session_first_view_id | string | 当前会话的第一个页面的view_id |
| session_first_view_url | string | 当前会话的第一个页面的URL |
| session_first_view_host | string | 当前会话的第一个页面的域名 |
| session_first_view_path | string | 当前会话的第一个页面的地址 |
| session_first_view_path_group | string | 当前会话的第一个页面的地址分组 |
| session_first_view_url_query | string | 当前会话的第一个页面的query信息 |
| session_last_view_id | string | 当前会话的最后一个访问页面的view_id |
| session_last_view_url | string | 当前会话的最后一个页面的URL |
| session_last_view_host | string | 当前会话的最后一个页面的域名 |
| session_last_view_path | string | 当前会话的最后一个页面的地址 |
| session_last_view_path_group | string | 当前会话的最后一个页面的地址分组 |
| session_last_view_url_query | object | 当前会话的最后一个页面的query信息 |
View
注意:view属性为全局参数,以下仅展示view的其他参数信息
指标
| 字段 | 类型 | 描述 |
|---|---|---|
| first_contentful_paint | number(ns) | 首次内容绘制时间(FCP) 计算方式:firstPaintContentEnd - firstPaintContentStart |
| largest_contentful_paint | number(ns) | 最大内容绘制(页面加载时间轴中的一刹那,其中呈现了视口中最大的DOM对象) 参考链接:LCP 计算方式:统计最近上报的一次 PerformanceEntry 时间 |
| cumulative_layout_shift | number | 累计布局版面转移(CLS),0 表示载入过程没有版面移动变化 |
| first_input_delay | number(ns) | 首次输入延时(FID) 计算方式:performance.now() - event.timeStamp |
| loading_time | number(ns) | 页面加载时间 initial_load模式下计算公式: ① loadEventEnd - navigationStart ② 页面首次无活动时间 - navigationStart route_change模式下计算公式:用户点击时间 - 页面首次无活动时间 页面首次无活动时间:页面超过100ms无网络请求或DOM突变 |
| dom_interactive | number(ns) | DOM结构构建完毕时间 获取方式:time = performanceTiming.domInteractive; 参考链接:MDN dom_interactive |
| dom_content_loaded | number(ns) | DOM 内容加载时间 计算方式:domContentLoadedEventEnd - domContentLoadedEventStart |
| dom_complete | number(ns) | DOM树解析完成时间 获取方式:time = performanceTiming.domComplete; 参考链接:MDN dom_complete |
| load_event | number(ns) | 事件加载时间 计算方式:loadEventEnd - loadEventStart |
| first_meaningful_paint | number(ns) | 首屏时间 计算方式:firstPaintContentEnd - firstPaintContentStart |
| first_paint_time | number(ns) | 首次渲染时间 计算方式:responseEnd - fetchStart |
| resource_load_time | number(ns) | 资源加载时间 计算方式:loadEventStart - domContentLoadedEventEnd |
| time_to_interactive | number(ns) | 首次可交互时间 计算方式:domInteratice - requestStart |
| dom | number(ns) | DOM解析耗时 计算方式:domComplete - domInteractive |
| dom_ready | number(ns) | DOM Ready时间 计算方式:domContentLoadedEventEnd - navigationStart |
| time_spent | number(ns) | 页面停留时间 |
统计指标
| 字段 | 类型 | 描述 |
|---|---|---|
| view_error_count | number | 每次页面加载时发生的错误次数 |
| view_resource_count | number | 每次页面加载时请求的资源个数 |
| view_long_task_count | number | 每次页面加载时产生的长任务个数 |
| view_action_count | number | 页面查看过程中操作的次数 |
| view_apdex_level | number | 页面Apdex满意度。 基础指标:first_paint_time(换算成秒单位) 参考值:0/1/2/3/4/5/6/7/8/9 (根据first_paint_time值,9表示>= 9秒) |
Resource 指标
| 字段 | 类型 | 描述 |
|---|---|---|
| resource_size | number | 资源大小,默认单位:byte |
| resource_dns | number(ns) | 资源加载DNS解析时间 计算方式:domainLookupEnd - domainLookupStart |
| resource_tcp | number(ns) | 资源加载TCP连接时间 计算方式:connectEnd - connectStart |
| resource_ssl | number(ns) | 资源加载SSL连接时间 计算方式:connectEnd - secureConnectStart |
| resource_ttfb | number(ns) | 资源加载请求响应时间 计算方式:responseStart - requestStart |
| resource_trans | number(ns) | 资源加载内容传输时间 计算方式:responseEnd - responseStart |
| resource_first_byte | number(ns) | 资源加载首包时间 计算方式:responseStart - domainLookupStart |
| duration | number(ns) | 资源加载时间 计算方式:duration(responseEnd-startTime) |
属性
| 字段 | 类型 | 描述 |
|---|---|---|
| resource_url | string | 资源URL |
| resource_url_host | string | 资源URL 域名部分 |
| resource_url_path | string | 资源URL path部分 |
| resource_url_query | string | 资源URL query部分 |
| resource_url_path_group | string | 资源URL path分组 |
| resource_type | string | 资源的类别 |
| resource_method | string | 资源请求方式 |
| resource_status | string | 资源请求返回的状态值 |
| resource_status_group | string | 资源请求返回的状态分组值 |
Error 指标
| 字段 | 类型 | 描述 |
|---|---|---|
| error_message | string | 错误信息 |
| error_stack | string | 错误堆栈 |
属性
| 字段 | 类型 | 描述 |
|---|---|---|
| error_source | string | 错误来源,参考值:console |
| error_type | string | 错误类型,参考链接:error type |
| resource_status | string | 资源请求返回的状态值 |
| resource_url | string | 资源URL |
| resource_url_host | string | 资源URL 域名部分 |
| resource_url_path | string | 资源URL path部分 |
| resource_url_path_group | string | 资源URL path分组 |
| resource_method | string | 资源请求方式 |
Long Task 指标
| 字段 | 类型 | 描述 |
|---|---|---|
| duration | number(ns) | 页面加载时产生的长任务花费时间 |
Action 指标
| 字段 | 类型 | 描述 |
|---|---|---|
| duration | number(ns) | 页面操作花费时间 |
| 统计指标 |
| 字段 | 类型 | 描述 |
|---|---|---|
| action_long_task_count | number | 操作关联长任务次数 |
| action_resource_count | number | 操作关联资源请求次数 |
| action_error_count | number | 操作关联的错误次数 |
属性
| 字段 | 类型 | 描述 |
|---|---|---|
| action_id | string | 用户页面操作时产生的唯一ID |
| action_name | string | 操作名称 |
| action_type | string | 操作类型 |
Get a tailored plan
Contact us
Join the community
Scan with WeChat
to join the community
to join the community
Try Guance
Start online and pay only for what you use.
Get startedChoose a Guance plan