Android 应用数据采集¶
应用数据采集到观测云后,可以通过观测云控制台进行自定义配置场景和配置异常检测事件。
数据类型¶
观测云的用户访问监测包括六种数据类型。其中 Android SDK 原生直接上报 view、resource、error、long_task、action 五类数据,session 为基于会话维度的聚合数据。
| 类型 | 描述 |
|---|---|
| session | 用户会话信息记录,当前会话中,将会基于会话维度用户页面、资源、操作、错误、长任务相关访问数据。 |
| view | 每次用户访问移动端应用程序的页面时,都会生成一个查看记录。当用户停留在同一页面上时,资源,长任务,错误和操作记录将通过 view_id 属性链接到相关的 RUM 视图。 |
| resource | 用户访问页面时,加载的资源信息记录。 |
| error | 移动应用程序发出的异常或崩溃。 |
| long_task | 对于应用程序中任何阻塞主线程超过指定持续时间阈值的任务,都会生成一个长任务事件。 |
| action | 记录移动应用程序中的用户活动(应用程序启动,点击,滑动,后退等)。每个动作都附加有唯一的 action_id。 |
全局属性¶
用户访问监测的场景构建和事件告警都可以通过下面的全局属性进行查询。
SDK 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
sdk_name |
string | 采集器名称,固定名称:df_macos_rum_sdkdf_linux_rum_sdkdf_windows_rum_sdkdf_web_rum_sdkdf_miniapp_rum_sdkdf_ios_rum_sdkdf_android_rum_sdk |
sdk_version |
string | 采集器版本信息 |
sdk_pkg_info |
string | 采集器版本信息集合,包含 SDK 内部模块版本信息。 |
应用属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
app_id |
string | 必填,用户访问应用唯一 ID 标识,在观测云控制台上面创建监控时自动生成。 |
env |
string | 必填,环境字段。属性值:prod/gray/pre/common/local。其中: prod:线上环境 gray:灰度环境 pre:预发布环境 common:日常环境 local:本地环境 |
version |
string | 必填,版本号。 |
service |
string | 可选,所属业务或服务的名称。固定名称:df_rum_iosdf_rum_androiddf_rum_windowsdf_rum_linux |
application_uuid |
string | 应用唯一标识。 |
用户 & 会话属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
userid |
string | 未登录用户使用随机 UUID 作为 userid,登录用户使用应用后台生成的用户 ID。 |
visitor_id |
string | 可选,SDK 自动生成的匿名访客标识。默认关闭,通过 FTRUMConfig.setVisitorIdConfig(...) 传入有效配置后,原生 RUM 数据会关联该字段。按进程持久化,默认有效期为 24 小时,可通过 FTSdk.resetVisitorId() 主动重置。详见 访客标识 Visitor ID。 |
user_name |
string | 可选,用户名称。 |
user_email |
string | 可选,用户邮箱。 |
session_id |
string | 会话 ID,未操作 15分钟以上,会生成一个新的 session_id。 |
session_type |
string | 会话类型。参考值:user & synthetics user:RUM 功能产生的数据; synthetics:headless 拨测产生的数据。 |
is_signin |
boolean | 是否是注册用户,属性值:T & F。 |
session_has_replay |
boolean | 当前会话是否关联 Session Replay 数据。 |
设备 & 分辨率属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
device |
string | 移动设备厂商 |
model |
string | 移动设备型号 |
device_uuid |
string | 移动设备唯一 ID. 使用 ANDROID_ID 生成 |
os |
string | 操作系统信息 |
os_version |
string | 操作系统版本 |
os_version_major |
string | 操作系统主要版本 |
screen_size |
string | 屏幕分辨率 |
arch |
string | 处理器架构 |
地理 & 网络属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
ip |
string | 用户访问IP地址 |
isp |
string | 运营商 |
network_type |
string | 网络连接类型,属性值参考: wifi & 2g & 3g & 4g & 5g & unknown(未知网络)& unreachable(网络不可用) |
country |
string | 国家 |
country_iso_code |
string | 国家 iso_code |
province |
string | 省 |
city |
string | 城市 |
自定义属性¶
除全局属性以外,还可以通过自定义属性(SDK 支持用户打自定义的 tag 数据)构建场景和配置事件告警。自定义属性是非全局属性,通过自定义属性,可以跟踪用户访问应用的整个过程,定位和发现用户受影响的访问情况,监控用户访问性能。
其他数据类型属性¶
Session¶
Session 相关数据为服务端会话维度聚合数据,并非 Android SDK 原生直接上报的 measurement。
属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
session_id |
string | 会话 ID |
session_type |
string | 会话类型。参考值:user & synthetics user:RUM 功能产生的数据; synthetics:headless 拨测产生的数据。 |
session_referrer |
string | 会话来源。一般是记录来源的页面地址。 |
session_first_view_id |
string | 当前会话的第一个页面的 view_id |
session_first_view_name |
string | 当前会话的第一个页面的 URL |
session_last_view_id |
string | 当前会话的最后一个访问页面的 view_id |
session_last_view_name |
string | 当前会话的最后一个页面的 URL |
统计指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
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 | 当前会话产生长任务次数 |
View¶
属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_id |
string | 每次访问页面时产生的唯一 ID |
view_referrer |
string | 页面来源,页面的父级 |
view_name |
string | 页面名称 |
指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
loading_time |
number(ns) | 页面加载时间 |
time_spent |
number(ns) | 页面停留时间 |
network_settled_time |
number(ns) | 从 View 开始到所选初始 Resource 最晚结束的间隔。 默认选择该 View 下满足 Resource 起始时间 - View 开始时间 < 100 ms 的所有请求,恰好 100 ms 不计入;“初始 Resource”是一组请求,不是第一个请求。 |
interaction_to_next_view_time |
number(ns) | 新 View 开始时间减去上一 View 最后一次有效交互的时间,结果写在新 View 上。 默认要求时间差严格大于 0 且小于 3000 ms,等于 0 或 3000 ms 不生成该字段。简称 INV。 |
is_active |
boolean | 判断用户是否还在活跃状态,参考值: true & false |
session_sample_rate |
number | RUM 会话采样率 |
session_on_error_sample_rate |
number | 错误会话采样率 |
sampled_for_error_session |
boolean | 当前会话是否为错误采样会话,参考值:true & false |
sampled_for_error_replay |
boolean | 当前会话是否为错误 Session Replay 采样,参考值:true & false |
session_error_timestamp |
number(ns) | 会话触发错误采样时的错误发生时间 |
network_settled_time 和 interaction_to_next_view_time 仅适用于原生 View,不改变 WebView 中 Browser SDK 的指标计算。
network_settled_time 不代表首屏绘制完成或页面可交互:请求结束后仍可能需要数据处理和绘制,默认窗口之外启动的请求也不参与计算。例如,两个初始请求分别在 View 开始后的 150 ms 和 400 ms 结束,满足写入条件后该字段为 400000000,不是两个请求耗时之和。
如需调整时间窗口、自定义判断条件或关闭指标,请参阅 View 耗时指标自定义规则。
统计指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_error_count |
number | 每次页面加载时发生的错误次数 |
view_resource_count |
number | 每次页面加载时请求的资源个数 |
view_long_task_count |
number | 每次页面加载时产生的长任务个数 |
view_long_task_rate |
number | 页面生命周期内长任务耗时占比 |
view_action_count |
number | 页面查看过程中操作的次数 |
监控指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
cpu_tick_count |
number | 可选,该页面 CPU 跳动次数 |
cpu_tick_count_per_second |
number | 可选,每秒平均 CPU 跳动次数 |
fps_avg |
number | 可选,页面平均每秒帧数 |
fps_mini |
number | 可选,页面最小每秒帧数 |
memory_avg |
number | 可选,页面内存使用平均值 |
memory_max |
number | 可选,页面内存峰值 |
battery_current_avg |
number | 可选,页面电池电流平均值 |
battery_current_max |
number | 可选,页面电池电流最大值 |
Resource¶
View 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_id |
string | 每次访问页面时产生的唯一 ID |
view_referrer |
string | 页面来源,页面的父级 |
view_name |
string | 页面名称 |
Action 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
action_id |
string | 用户页面操作时产生的唯一 ID |
action_name |
string | 操作名称 |
Resource 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
resource_url |
string | 资源 URL |
resource_id |
string | 资源唯一 ID |
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 | 资源请求返回的状态分组值 |
resource_host_ip |
string | 资源 URL 访问目标 IP |
response_connection |
string | 资源响应头 Connection 的值 |
response_content_type |
string | 资源响应头 Content-Type 的值 |
response_content_encoding |
string | 资源响应头 Content-Encoding 的值 |
resource_http_protocol |
string | 资源请求使用的 HTTP 协议 |
resource_connection_reuse |
boolean | 资源请求是否复用连接 |
span_id |
string | 应用性能监测链路 Span ID |
trace_id |
string | 应用性能监测链路 Trace ID |
session_has_replay |
boolean | 当前资源是否关联 Session Replay 数据 |
指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
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_request_size |
number | 资源请求大小,默认单位:byte |
resource_dns_time |
object | 资源 DNS 解析时间,格式:{duration: number(ns), start: number(ns)} |
resource_connect_time |
object | 资源连接耗时,格式同 resource_dns_time |
resource_first_byte_time |
object | 资源加载首包时间,格式同 resource_dns_time |
resource_ssl_time |
object | 资源 SSL 连接耗时,格式同 resource_dns_time |
resource_download_time |
object | 资源下载耗时,格式同 resource_dns_time |
request_header |
string | 资源请求头 |
response_header |
string | 资源响应头 |
网络快照指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
network_available |
boolean | 资源请求开始时网络是否可用 |
network_validated |
boolean | 资源请求开始时网络是否已通过系统验证 |
network_downlink_kbps |
number | 资源请求开始时网络下行带宽,单位:kbps |
network_uplink_kbps |
number | 资源请求开始时网络上行带宽,单位:kbps |
network_signal_strength |
number | 资源请求开始时网络信号强度 |
Error¶
View 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_id |
string | 每次访问页面时产生的唯一 ID |
view_referrer |
string | 页面来源,页面的父级 |
view_name |
string | 页面名称 |
Action 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
action_id |
string | 用户页面操作时产生的唯一 ID |
action_name |
string | 操作名称 |
Error 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
error_source |
string | 错误来源,参考值:logger | network |
error_type |
string | 错误类型 logger error type: java_crash | native_crash | anr_error | anr_crash network error type:network_error |
error_situation |
string | 错误发生的时机,参考值:startup (启动时)和 run (运行时) |
type=network时,新增以下Network Error属性。
| 字段 | 类型 | 描述 |
|---|---|---|
resource_status |
string | 资源请求返回的状态值 |
resource_status_group |
string | 资源请求返回的状态分组值 |
resource_id |
string | 资源唯一 ID |
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 | 资源请求方式 |
Error 监控属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
memory_total |
string | 可选,内存总量 |
memory_use |
number | 可选,内存使用率 |
cpu_use |
number | 可选,CPU 使用率 |
battery_use |
number | 可选,当前电手机的电池量 |
carrier |
string | 可选,移动蜂窝运营商 |
locale |
string | 当前系统语言 |
指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
error_message |
string | 错误信息 |
error_stack |
string | 错误堆栈 |
foreground_crash_free_duration |
number(ns) | 前台无崩溃持续时长 |
background_crash_free_duration |
number(ns) | 后台无崩溃持续时长 |
Long Task¶
View 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_id |
string | 每次访问页面时产生的唯一 ID |
view_referrer |
string | 页面来源,页面的父级 |
view_name |
string | 页面名称 |
Action 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
action_id |
string | 用户页面操作时产生的唯一 ID |
action_name |
string | 操作名称 |
指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
duration |
number(ns) | 卡顿时长 |
long_task_stack |
string | 卡顿堆栈 |
session_has_replay |
boolean | 当前长任务是否关联 Session Replay 数据 |
Action¶
View 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
view_id |
string | 每次访问页面时产生的唯一 ID |
view_referrer |
string | 页面来源,页面的父级 |
view_name |
string | 页面名称 |
Action 属性¶
| 字段 | 类型 | 描述 |
|---|---|---|
action_id |
string | 用户页面操作时产生的唯一 ID |
action_name |
string | 操作名称 |
action_type |
string | 操作类型(冷热启动,click 点击等操作) |
app_launch_type |
string | 冷启动 Action 的启动类型,参考值:foreground(前台启动)和 background(后台启动)。ft-sdk 1.7.2 以上版本支持 |
指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
duration |
number(ns) | 页面操作花费时间 |
app_pre_application_init_time |
object | 冷启动时,从进程启动到 Application.onCreate() 之前的初始化耗时,格式:{duration: number(ns), start: number(ns)} |
app_application_init_time |
object | 冷启动时,从 Application.onCreate() 到首个 Activity preOnCreate() 的初始化耗时,格式同 app_pre_application_init_time |
app_first_frame_init_time |
object | 冷启动时,从首个 Activity preOnCreate() 到首帧绘制完成的耗时,格式同 app_pre_application_init_time |
session_has_replay |
boolean | 当前操作是否关联 Session Replay 数据 |
统计指标¶
| 字段 | 类型 | 描述 |
|---|---|---|
action_long_task_count |
number | 操作关联长任务次数 |
action_resource_count |
number | 操作关联资源请求次数 |
action_error_count |
number | 操作关联的错误次数 |