Flashduty Docs
中文
EnglishRoadmapAPI官网控制台
中文
EnglishRoadmapAPI官网控制台
  1. Android
  • 简介
  • On-call
    • 快速开始
      • 快速开始
      • 常见问题
      • 产品对比
    • 故障管理
      • 什么是故障
      • 检索与查看故障
      • 处理与更新故障
      • 升级与分派故障
      • 自定义字段
      • 自定义操作
      • 了解降噪过程
      • 了解历史故障
      • 了解新奇故障
      • 状态页
    • 配置On-call
      • 协作空间管理
      • 多种方式接入告警
      • 配置路由规则
      • 配置标签增强
      • 配置告警降噪
      • 配置分派策略
      • 故障静默与抑制
      • 配置值班规则
      • 配置通知模板
      • 配置服务日历
      • 配置个人信息
      • 配置过滤条件
      • 通知配置
      • 告警处理 pipeline
    • 高级功能
      • 引用变量
      • 动态分派
      • 分析数据
      • 作战室
    • 集成引导
      • 告警集成
        • 邮件 Email 集成指引
        • 夜莺 Flashcat 集成指引
        • Prometheus 集成指引
        • 标准告警事件集成指引
        • Grafana 集成指引
        • Zabbix 集成指引
        • Uptime Kuma 集成指引
        • 阿里云 ARMS 集成指引
        • 阿里云监控 CM 事件集成指引
        • 阿里云监控 CM 指标集成指引
        • 阿里云 SLS 集成指引
        • AWS CloudWatch 集成指引
        • Azure Monitor 集成指引
        • 百度云监控 BCM 集成指引
        • 华为云监控 CES 集成指引
        • 腾讯云 CLS 集成指引
        • 腾讯云监控 CM 集成指引
        • 腾讯云 Event Bridge 集成指引
        • Influxdata 集成指引
        • Open Falcon 集成指引
        • Pagerduty 集成指引
        • 蓝鲸智云集成指引
        • OceanBase 集成指引
        • Graylog 集成指引
        • Skywalking 集成指引
        • Sentry 集成指引
        • 监控宝告警集成指引
        • AWS EventBridge 集成指引
        • Dynatrace 集成指引
        • 华为云 LTS 集成指引
        • GoogleCloud 集成指引
        • Splunk 集成指引
        • AppDynamics 集成指引
        • SolarWinds 集成指引
        • 火山引擎CM 指标集成指引
        • 火山引擎CM 事件集成指引
        • 火山引擎日志服务 TLS 集成指引
        • Opmanager 告警事件
        • Meraki 告警事件
        • 天翼云告警集成
        • 观测云告警事件
        • zilliz 告警事件
        • 华为云 APM 告警事件
        • zstack 告警事件
        • Keep 告警集成指引
        • ElastAlert2 告警集成
        • Monit 告警集成指引
        • RUM 告警集成指引
      • 即时消息
        • 飞书 Lark 集成指引
        • 钉钉 Dingtalk 集成指引
        • 企业微信 Wecom 集成指引
        • Slack 集成指引
        • Microsoft Teams 集成指引
      • 单点登录
        • Authing 集成指引
        • Keycloak 集成指引
        • OpenLDAP 集成指引
      • Webhooks
        • 告警 webhook
        • 故障 webhook
        • 自定义操作
        • Jira 同步
        • ServiceNow 同步
        • ServiceDesk Plus 同步
      • 变更集成
        • 标准变更事件集成指引
      • 其他集成
        • Link 集成
    • 最佳实践
      • 基于标签增强实现动态分派
  • RUM
    • 快速开始
      • 入门介绍
      • 快速开始
      • 常见问题
      • 应用管理
    • SDK接入
      • Android
        • SDK接入
        • 高级配置
        • 数据收集
        • 兼容性
      • iOS
        • SDK接入
        • 高级配置
        • 数据收集
        • 兼容性
      • Web
        • SDK接入
        • 高级配置
        • 数据收集
        • 兼容性
    • 分析看板
      • Web
      • Native
    • 性能监控
      • 概览
      • 指标上报
      • 诊断优化
      • 性能分析
    • 查看器
      • 概览
      • 数据查询
    • 异常追踪
      • 概览
      • 异常上报
      • 异常聚合
      • Issue状态
      • 异常查看
      • 源码映射
      • Issue告警
    • 会话重放
      • 概览
      • SDK配置
      • 查看 RUM 会话重放记录
      • 隐私保护说明
    • 最佳实践
      • 分布式追踪
    • 其他
      • 术语说明
      • 数据收集
      • 数据安全
  • Moniors
    • 快速开始
      • 产品介绍
      • 快速开始
    • 告警规则配置
      • Prometheus
      • ElasticSearch
      • Loki
      • ClickHouse
      • MySQL
      • Oracle
      • PostgreSQL
      • Aliyun SLS
      • VictoriaLogs
    • 常见问题
      • 常见问题
  • 平台功能
    • 团队和成员
    • 了解权限设计
    • 配置单点登录
  • 服务协议
    • 服务条款
    • 用户协议/隐私政策
    • SLA承诺
    • 数据安全
中文
EnglishRoadmapAPI官网控制台
中文
EnglishRoadmapAPI官网控制台
  1. Android

数据收集

概述#

FlashCat Android RUM SDK 默认收集所有 RUM 事件的多个指标和属性。您还可以添加自定义属性以扩展默认收集的数据集。

应用启动#

FlashCat 从应用启动收集以下指标:
指标描述
cold_start_duration冷启动持续时间:从应用进程创建到首个 Activity 渲染完成的时间。
warm_start_duration温启动持续时间:应用进程已存在,从 Activity 开始到渲染完成的时间。
hot_start_duration热启动持续时间:应用和 Activity 都在内存中,从 Activity 恢复到渲染完成的时间。
activity_start_durationActivity 启动持续时间:从 onCreate 到首帧绘制完成的时间。
is_pre_warmed布尔值,指示应用是否通过预热启动(Android 11+)。
启动类型说明:
冷启动:应用首次启动或进程被终止后启动。需要加载所有资源并初始化应用状态。
温启动:应用进程在内存中,但 Activity 需要重新创建。
热启动:应用和 Activity 都在内存中,只需将 Activity 带回前台。

Views 监控与应用生命周期#

View 代表用户在应用中看到的唯一屏幕。每个 View 开始时会创建一个新的 RUM 事件,并在 View 的整个生命周期内更新该事件。View 会收集其生命周期内发生的所有资源、操作、错误和长任务的相关信息。
在 Android 中,Activities 和 Fragments 被视为 View。默认情况下,SDK 使用以下策略自动追踪 View:
ActivityViewTrackingStrategy:基于 Activity 生命周期追踪每个 Activity 为一个 View。
FragmentViewTrackingStrategy:基于 Fragment 生命周期追踪每个 Fragment 为一个 View。
MixedViewTrackingStrategy:同时追踪 Activity 和 Fragment。
NavigationViewTrackingStrategy:适用于 Jetpack Navigation 组件的追踪策略。
您也可以通过手动调用 RumMonitor.startView() 和 RumMonitor.stopView() 来自定义 View 追踪。

默认属性#

FlashCat RUM SDK 为所有事件附加以下默认属性。这些属性可帮助您了解用户设备、网络状态和应用上下文。

通用核心属性#

属性名类型描述
application.idstringFlashCat 应用 ID。
application.namestring应用包名(例如 com.example.app)。
application.versionstring应用版本名称。
application.buildstring应用构建版本号。
session.idstring唯一会话 ID,用于将用户旅程中的事件分组。
session.typestring会话类型:user。
view.idstring为每个 View 生成的唯一 ID。
view.urlstringView 的规范化 URL(Activity 或 Fragment 的类名)。
view.namestring可自定义的 View 名称。
envstring应用的环境名称(例如 prod、dev)。
servicestring服务名称,用于区分应用的不同模块或微服务。
versionstring应用版本。
sdk_versionstringFlashCat SDK 版本。
datenumber事件发生的时间戳(epoch 毫秒)。
typestring事件类型(例如 view、resource、action、error、long_task)。

设备属性#

以下属性与设备相关,在所有 RUM 事件中自动收集:
属性名类型描述
device.typestring设备类型,如 mobile、tablet、tv 等。
device.namestring设备商业名称(例如 Samsung Galaxy S21)。
device.modelstring设备型号(例如 SM-G991B)。
device.brandstring设备品牌(例如 Samsung)。
device.architecturestring设备架构(例如 arm64-v8a)。
device.marketing_namestring设备的市场营销名称。

连接性属性#

以下网络相关属性在所有 RUM 事件中自动收集:
属性名类型描述
connectivity.statusstring设备网络可达性状态(connected、not_connected、maybe)。
connectivity.interfacesarray可用网络接口列表(例如 wifi、cellular、ethernet)。
connectivity.cellular.technologystring蜂窝网络技术类型(例如 LTE、5G)。
connectivity.cellular.carrier_namestring运营商名称(例如 中国移动)。

操作系统属性#

以下操作系统相关属性在所有 RUM 事件中自动收集:
属性名类型描述
os.namestring操作系统名称(例如 Android)。
os.versionstring操作系统版本(例如 13)。
os.version_majorstring操作系统主版本号(例如 13)。
os.buildstring系统构建号(例如 TQ2A.230505.002)。

地理位置属性#

FlashCat RUM 可以从用户的 IP 地址推断出地理位置信息:
属性名类型描述
geo.countrystring国家名称。
geo.country_isostring国家的 ISO 代码。
geo.citystring城市名称。
注意: 地理位置信息由 FlashCat 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。

全局用户属性#

您可以通过 setUser() API 设置用户信息,这些信息会被附加到所有 RUM 事件中:
属性名类型描述
usr.idstring用户的唯一标识符。
usr.namestring用户的友好名称。
usr.emailstring用户的电子邮件地址。
您还可以添加自定义用户属性,例如 usr.plan、usr.role 等。

事件特定属性#

除了默认属性外,不同类型的 RUM 事件还会收集特定的指标和属性。

Session 属性#

属性名类型描述
session.idstring唯一会话 ID。
session.typestring会话类型:user。
session.has_replaybool会话是否包含会话重放录制。
session.is_activebool会话是否处于活动状态。

View 属性#

View 事件包含以下特定属性和性能指标:
属性名类型描述
view.idstring每个 View 的唯一 ID。
view.namestringView 的自定义名称。
view.urlstringView 的 URL(Activity 或 Fragment 类名)。
view.time_spentnumber(ns)用户在此 View 上花费的时间。
view.loading_timenumber(ns)View 加载完成所需的时间。
view.loading_typestringView 加载类型:initial_load、activity_display、fragment_display。
view.first_contentful_paintnumber(ns)首次内容绘制时间(仅适用于 API 29+)。
view.action.countnumberView 中收集的所有操作的数量。
view.resource.countnumberView 中收集的所有资源的数量。
view.error.countnumberView 中收集的所有错误的数量。
view.long_task.countnumberView 中收集的所有长任务的数量。
view.crash.countnumberView 中收集的所有崩溃的数量。
view.is_activeboolView 是否仍处于活动状态。

Resource 属性#

Resource 事件表示应用中的网络请求。收集的属性包括:
属性名类型描述
resource.idstring资源的唯一标识符。
resource.typestring资源类型(例如 xhr、fetch、image、css、js、font、media、other)。
resource.urlstring资源的 URL。
resource.methodstringHTTP 方法(例如 GET、POST)。
resource.status_codenumberHTTP 响应状态码。
resource.durationnumber(ns)加载资源所花费的总时间。
resource.sizenumber资源大小(字节)。
resource.dns.durationnumber(ns)DNS 解析时间(domainLookupEnd - domainLookupStart)。
resource.connect.durationnumber(ns)建立连接的时间(connectEnd - connectStart)。
resource.ssl.durationnumber(ns)TLS 握手时间(connectEnd - secureConnectionStart),仅适用于 HTTPS。
resource.first_byte.durationnumber(ns)等待首字节响应的时间(responseStart - requestStart)。
resource.download.durationnumber(ns)下载响应的时间(responseEnd - responseStart)。
resource.redirect.durationnumber(ns)后续 HTTP 重定向所花费的时间(redirectEnd - redirectStart)。
resource.provider.namestring资源提供商名称,默认为 unknown。
resource.provider.domainstring资源提供商域名。
resource.provider.typestring资源提供商类型(例如 first-party、cdn、ad、analytics)。

Error 属性#

前端错误通过 RUM 收集,错误消息和堆栈跟踪(如果可用)会被包含在内:
属性名类型描述
error.sourcestring错误来源(例如 webview、logger、network、source、console)。
error.typestring错误类型或错误代码。
error.messagestring简洁、人类可读的单行错误消息。
error.stackstring堆栈跟踪或错误的补充信息。
error.issue_idstring错误问题的唯一标识符。
error.categorystring错误的高级分类,可能的值:ANR(应用无响应)、Exception(异常)。
error.filestring发生错误的文件名(用于错误追踪问题)。
error.linenumber发生错误的行号。
error.is_crashbool指示该错误是否导致应用崩溃。

网络错误#

网络错误包含有关失败的 HTTP 请求的信息,并收集以下属性:
属性名类型描述
error.resource.status_codenumberHTTP 响应状态码。
error.resource.methodstringHTTP 方法(例如 POST、GET)。
error.resource.urlstring资源 URL。
error.resource.provider.namestring资源提供商名称,默认为 unknown。
error.resource.provider.domainstring资源提供商域名。
error.resource.provider.typestring资源提供商类型(例如 first-party、cdn、ad、analytics)。

Action 计时属性#

Action 代表用户与应用的交互(例如点击、滑动、滚动)。
属性名类型描述
action.loading_timenumber(ns)操作的加载时间。
action.long_task.countnumber此操作收集的所有长任务数量。
action.resource.countnumber此操作收集的所有资源数量。
action.error.countnumber此操作收集的所有错误数量。

Action 属性#

属性名类型描述
action.idstring用户操作的 UUID。
action.typestring用户操作类型(例如 tap、scroll、swipe、application_start)。
action.namestring用户操作的名称。
action.target.namestring用户交互的元素,仅适用于自动收集的操作。

数据存储#

在数据上传到 FlashCat 之前,会以明文形式存储在应用的缓存目录中。此缓存文件夹受 Android 应用沙箱保护,这意味着在大多数设备上,其他应用无法读取这些数据。但是,如果移动设备已 root 或有人篡改 Linux 内核,存储的数据可能会变得可读。
存储位置: /data/data/<package_name>/cache/com.flashcat.rum/
注意: 敏感数据不应包含在 RUM 事件中,或者应在发送前通过 beforeSend 回调进行混淆或过滤。

数据上传#

FlashCat RUM Android SDK 在保证数据传输的同时,会考虑用户的带宽影响。SDK 以批次方式上传事件,具体流程如下:

批处理机制#

1.
事件收集时:
FlashCat SDK 将未压缩的事件追加到批次文件中(使用 TLV 编码格式,即 Tag-Length-Value)。
2.
上传时(当批次被视为"关闭"时):
读取批次文件并提取事件
对 RUM 事件进行去重优化(删除冗余的 View 事件;其他追踪不进行优化)
构建特定于每个追踪的有效载荷
压缩有效载荷并发送

上传触发条件#

批次在以下情况下会被上传:
批次文件大小达到阈值(例如 4MB)
批次中的事件数量达到阈值
应用切换到后台
定期上传(例如每 5 秒)

上传策略#

网络可用时: 优先通过 WiFi 上传,移动网络也支持上传。
电量充足时: 确保不会过度消耗设备电量。
失败重试: 如果上传失败,批次会保留在本地,直到成功发送。

数据压缩#

上传前,FlashCat SDK 会对批次数据进行 gzip 压缩,以减少网络流量和上传时间。

Direct Boot 模式支持#

如果您的应用支持 Direct Boot 模式(在设备解锁前启动),请注意:在设备解锁前捕获的数据将不会被记录,因为此时凭据加密存储尚不可用。
FlashCat SDK 会在设备解锁后开始收集数据。如果您需要在 Direct Boot 模式下收集数据,请确保使用设备加密存储而非凭据加密存储。

更多阅读#

Android SDK 接入指南:了解如何接入 Android SDK
Android SDK 高级配置:了解如何配置 SDK 的高级功能
RUM 分析看板:查看和分析 RUM 数据

添加官方技术支持微信

在这里,获得使用上的任何帮助,快速上手FlashDuty

微信扫码交流
修改于 2026-01-13 07:47:21
上一页
高级配置
下一页
兼容性
Built with