跳转到主要内容
iOS RUM SDK 会自动生成包含相关指标和属性的事件。每个 RUM 事件都包含默认属性(如 view.urldevice.typegeo.country)以及事件特定的指标和属性(如 view.time_spentresource.method)。

应用启动指标

在应用启动期间,iOS SDK 会自动记录应用启动时间并创建相应的视图。
启动时间测量从进程启动到第一个 applicationDidBecomeActive 通知之间的时间间隔。
属性类型描述
view.is_start_view布尔值标识该视图是否为应用启动时创建的初始视图
action.type字符串应用启动操作的类型,值为 application_start
action.loading_time数字(纳秒)应用启动所需的时间

视图监测

在 iOS 应用中,视图会在用户访问不同屏幕时自动创建。当用户打开屏幕时,视图开始记录;当视图不再可见时停止。
视图生命周期管理:
  • 视图停止时不会立即结束,而是保持在 inactive 状态一段时间
  • 如果在此期间启动了新视图,之前的视图将完全结束
  • 如果没有新视图启动,之前的视图将恢复为 active 状态
后台行为:
  • 当应用进入后台时,SDK 会保留最后一个活动视图并监控后台事件
  • 后台时间不会计入活动视图的 time_spent 指标
  • 如果用户立即返回应用,SDK 会恢复原始的 time_spent 测量

默认属性

iOS RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设备、网络状态和应用上下文。
属性类型描述
date整数事件的时间戳(毫秒)
type字符串事件的类型(如 sessionviewresourceerroraction
service字符串生成此事件的服务名称
application.id字符串应用的唯一标识符
以下设备相关属性会自动附加到所有事件上:
属性类型描述
device.type字符串设备类型(如 MobileTabletTVDesktopOther
device.brand字符串设备品牌,iOS 设备为 Apple
device.model字符串设备型号(如 iPhoneiPadiPod TouchApple TV
device.name字符串设备的名称
以下操作系统相关属性会自动附加到所有事件上:
属性类型描述
os.name字符串操作系统名称(如 iOSiPadOStvOS
os.version字符串操作系统版本号(如 15.4.116.0
os.version_major字符串操作系统主版本号(如 1516
以下网络相关属性会自动附加到资源和错误事件上:
属性类型描述
connectivity.status字符串设备网络连接状态(如 connectednot_connected
connectivity.interfaces字符串数组可用的网络接口类型(如 wificellularethernet
connectivity.cellular.technology字符串蜂窝网络技术类型(如 3G4GLTE5G
connectivity.cellular.carrier_name字符串蜂窝网络运营商名称
以下属性与 IP 地址的地理位置相关:
属性类型描述
geo.country字符串国家名称
geo.country_iso_code字符串国家的 ISO 代码(如 USCN
geo.country_subdivision字符串国家的一级行政区划(如美国的州、中国的省)
geo.continent_code字符串洲的 ISO 代码(如 EUAS
geo.continent字符串洲名称
geo.city字符串城市名称
地理位置信息由 Flashduty 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。
您可以在所有 RUM 事件上启用用户追踪,以关联用户会话并简化问题排查。
属性类型描述
usr.id字符串用户的唯一标识符
usr.name字符串用户友好名称,默认显示在 RUM UI 中
usr.email字符串用户电子邮件地址,如果没有用户名则显示电子邮件
用户属性是可选的,但建议至少提供一个。详见 追踪用户信息

事件特定属性

不同的事件类型具有特定的属性和指标。
属性类型描述
session.id字符串会话的唯一标识符。
session.type字符串会话类型(如 usersynthetic)。
session.is_active布尔值会话是否处于活动状态。
session.initial_view.id字符串会话中初始视图的 ID。
session.initial_view.url字符串会话中初始视图的 URL。
session.initial_view.name字符串会话中初始视图的名称。
session.last_view.id字符串会话中最后一个视图的 ID。
session.last_view.url字符串会话中最后一个视图的 URL。
session.last_view.name字符串会话中最后一个视图的名称。
session.has_crash布尔值会话是否包含崩溃事件
session.has_replay布尔值会话是否启用了会话重放
属性类型描述
view.id字符串视图的唯一标识符。
view.url字符串视图的 URL,对应 UIViewController 类名。
view.name字符串视图的可自定义名称。
view.referrer字符串前一个视图的 URL。
view.action.count数字该视图中收集的用户操作数。
view.error.count数字该视图中收集的错误数。
view.resource.count数字该视图中收集的资源数。
view.time_spent数字(纳秒)用户在该视图上花费的时间。
view.network_settled_time数字(纳秒)视图启动时完全初始化所需的时间。
view.is_active布尔值视图是否处于活动状态。
view.is_slow_rendered布尔值视图渲染是否缓慢。
view.crash.count数字该视图中发生的崩溃数。
view.frozen_frame.count数字该视图中的冻结帧数。
view.refresh_rate_average数字视图的平均刷新率。
view.refresh_rate_min数字视图的最低刷新率。
view.memory_average数字视图的平均内存使用量。
view.memory_max数字视图的最大内存使用量。
view.cpu_ticks_count数字视图的 CPU 时钟周期数
view.cpu_ticks_per_second数字视图每秒的 CPU 时钟周期数
属性类型描述
resource.id字符串资源的唯一标识符。
resource.url字符串资源 URL。
resource.method字符串HTTP 方法(如 GETPOSTPATCHDELETE)。
resource.type字符串资源类型(如 xhrimagefontcssjs)。
resource.status_code数字HTTP 响应状态码。
resource.size数字(字节)资源大小。
resource.duration数字(纳秒)加载资源所需的总时间。
resource.connect.duration数字(纳秒)建立服务器连接所需的时间(connectEnd - connectStart)。
resource.ssl.duration数字(纳秒)TLS 握手所需的时间。
resource.dns.duration数字(纳秒)DNS 解析所需的时间(domainLookupEnd - domainLookupStart)。
resource.first_byte.duration数字(纳秒)等待接收响应首字节的时间(responseStart - requestStart)。
resource.download.duration数字(纳秒)下载响应的时间(responseEnd - responseStart)。
resource.redirect.duration数字(纳秒)后续 HTTP 请求所需的时间(redirectEnd - redirectStart)。
resource.provider.name字符串资源提供者名称,默认为 unknown
resource.provider.domain字符串资源提供者域名
resource.provider.type字符串资源提供者类型(如 first-partycdnadanalytics
错误事件收集异常和崩溃信息,错误消息和堆栈跟踪会被自动包含:
属性类型描述
error.source字符串错误来源(如 webviewloggernetwork)。
error.type字符串错误类型(在某些情况下为错误代码)。
error.message字符串简洁、易读的单行错误消息。
error.stack字符串错误的堆栈跟踪或补充信息。
error.issue_id字符串错误问题的唯一标识符。
error.category字符串错误类型的高级分组。可能的值包括:ANRApp HangExceptionWatchdog TerminationMemory WarningNetwork
error.file字符串错误追踪发现问题的文件。
error.is_crash布尔值该错误是否导致应用崩溃
freeze.duration数字(纳秒)主线程冻结的持续时间(仅适用于 App Hang)
网络错误:网络错误包含有关失败 HTTP 请求的信息,额外收集以下属性:
属性类型描述
error.resource.status_code数字HTTP 响应状态码。
error.resource.method字符串HTTP 方法(如 GETPOST)。
error.resource.url字符串资源 URL。
error.resource.provider.name字符串资源提供者名称,默认为 unknown
error.resource.provider.domain字符串资源提供者域名
error.resource.provider.type字符串资源提供者类型(如 first-partycdnadanalytics
属性类型描述
action.id字符串用户操作的唯一标识符。
action.type字符串用户操作类型(如 tapapplication_start)。
action.name字符串用户操作的名称。
action.target.name字符串用户交互的元素(仅适用于自动收集的操作)
action.loading_time数字(纳秒)操作的加载时间
action.resource.count数字该操作触发的资源数
action.error.count数字该操作触发的错误数
action.long_task.count数字该操作触发的长任务数
当应用发生崩溃时,会收集以下额外属性:
属性类型描述
error.signal字符串导致崩溃的信号名称(如 SIGABRTSIGSEGV
error.binary_images数组崩溃时加载的二进制映像列表
error.threads数组崩溃时所有线程的状态
error.meta对象崩溃相关的元数据

数据存储与安全

本地存储机制

在上传到 Flashduty 之前,数据以明文形式存储在应用沙盒的缓存目录(Library/Caches)中。
安全保护:
  • 缓存目录受 iOS 应用沙盒保护
  • 设备上安装的其他应用无法读取此目录

数据管理策略

为确保 SDK 不会占用过多磁盘空间,SDK 会自动管理本地数据:
策略说明
智能上传当网络可用且设备电量充足时,数据以批次形式发送
失败重试如果网络不可用或上传失败,批次会被保留直到成功发送
自动清理超过一定时限的数据会被自动清理
即使用户在离线时使用应用,数据也会被保留并在网络恢复后上传,不会丢失任何监控数据。

相关文档