Flashduty Docs
中文
EnglishRoadmapAPI官网控制台
中文
EnglishRoadmapAPI官网控制台
  1. 分析看板
  • 简介
  • 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. 分析看板

Native

概述#


Flashduty Native RUM 分析看板提供了开箱即用的可视化仪表板,自动采集并分析用户会话、应用性能、崩溃异常、网络请求等多维度数据,助力您全面洞察移动应用真实运行状况,快速定位性能瓶颈与异常问题,持续优化用户体验。
分析看板主要包含 4 个分析维度:概览、性能分析、异常分析、资源分析

1. 概览 — 关键指标一目了然#

2026-01-13-11-46-18
概览模块聚焦于移动应用多维度的核心指标,主要内容包括:
流量指标:监控 UV(独立访客数)、会话数,帮助您把握整体用户活跃趋势。
核心健康指标:突出显示三个移动应用核心指标:崩溃次数、无崩溃率、应用卡顿率,快速识别应用稳定性问题。
用户访问趋势:通过时序图追踪 UV 和 Session 的变化趋势,洞察用户活跃规律。
用户分布:结合地理位置分析用户来源,了解区域用户活跃情况。
会话分析:统计会话平均时长分布趋势,评估用户粘性与使用深度。
版本分布:监控不同系统版本(Android/iOS)和应用版本的用户占比,为兼容性优化与版本迭代提供数据支撑。

2. 性能分析 — 全面掌控应用体验#

2026-01-13-11-47-14
性能分析模块专注于应用启动、页面渲染、交互流畅度等核心体验指标的全链路监控,主要内容包括:

核心性能指标#

顶部展示四个关键性能指标的 P75 分位值:
应用启动时间(P75):监控应用启动耗时的 P75 分位数,评估启动性能表现。启动时间直接影响用户的第一印象和使用意愿。
帧率(P75):展示应用运行时帧率的 P75 分位数,衡量画面流畅度。目标为 60fps,数值越高表示交互越流畅。
CPU 消耗(P75):追踪 CPU 占用率的 P75 分位数,识别计算密集型操作。过高的 CPU 消耗会导致设备发热和耗电增加。
内存使用(P75):监控应用内存占用的 P75 分位数,及时发现内存泄漏或异常增长。

APP 启动时间分析#

启动时间趋势图:展示应用启动时间随时间的变化趋势,帮助您评估启动优化效果,及时发现性能退化。
样本分布柱状图:按时间区间统计启动耗时的分布情况(如 0.9425s-0.9642s、1.1162s-1.1379s 等),了解用户真实启动体验的分布特征,识别性能长尾问题。

视图性能明细#

按视图名称(页面/Activity/ViewController)统计各项性能指标:
访问次数:展示各视图的访问量,识别核心高频页面。
启动时间:监控各视图的加载耗时,定位加载缓慢的页面。
帧率:追踪各视图运行时的帧率表现,识别渲染性能问题。
CPU 消耗:统计各视图的 CPU 占用情况,优化计算密集型页面。
内存使用:监控各视图的内存占用,发现内存泄漏风险。

流畅度分析#

按视图名称统计应用流畅度相关指标:
慢帧数:统计渲染耗时超过阈值的帧数(通常为 16.67ms,即低于 60fps),识别卡顿问题。慢帧会导致用户感知到明显的界面不流畅。
冻结帧数:记录界面完全冻结的帧数(通常超过 700ms),这些是严重影响用户体验的性能问题。
长任务数:追踪主线程长时间运行的任务数量(通常阈值为 100ms 或更长),定位性能瓶颈。长任务会阻塞用户交互和界面更新。
卡顿频率:统计应用卡顿的发生频率(次/秒),评估整体流畅度表现。

内存分析#

按视图名称统计内存使用详情:
平均内存:展示各视图的平均内存占用,了解常规内存消耗水平。
峰值内存:记录各视图运行期间的内存使用峰值,识别内存压力高峰,预防因内存不足导致的系统终止(OOM)。
P75 内存:显示内存占用的 P75 分位数,反映大部分用户的内存使用情况,比平均值更能代表真实体验。
有关性能指标的详细说明,请参阅 Android 数据收集 和 iOS 数据收集。

3. 异常分析 — 快速定位与诊断错误#

2026-01-13-11-48-16
异常分析模块为您提供全方位的错误监控与诊断能力,主要内容包括:

核心稳定性指标#

崩溃次数:监控应用崩溃的发生总数和趋势,及时发现异常峰值。崩溃会导致应用强制退出,严重影响用户体验。
无崩溃率:跟踪无崩溃会话占比,评估应用整体稳定性表现。行业标准建议无崩溃率应保持在 99.5% 以上。
ANR 率:统计 Android 应用无响应(Application Not Responding)的发生比例。ANR 表示应用主线程被阻塞超过 5 秒,用户会看到"应用无响应"对话框。
应用卡顿率:监控发生卡顿的会话占总会话的比例,用于评估应用流畅度问题的影响范围。卡顿通常指主线程长时间阻塞导致的界面冻结、响应延迟或帧率下降,影响用户交互体验。

错误数据统计#

错误数:展示错误总数和时序趋势,了解应用健康状况的整体变化。
错误类型分布趋势图:通过堆叠面积图展示崩溃错误(crash_count)与非崩溃错误(non_crash_count)随时间的分布变化,快速识别异常时段和错误类型变化趋势。
崩溃错误(crash_count):导致应用强制退出的严重错误
非崩溃错误(non_crash_count):被捕获的异常,应用可继续运行但功能可能受影响

页面 Crash 排行(Top10)#

列出崩溃次数最多的页面或视图控制器,每条记录包含:
错误类型:崩溃的异常类型(如 java.lang.RuntimeException、SIGTRAP 等)
错误信息:错误的详细描述,帮助快速定位问题
错误数:该错误在该页面发生的总次数
会话数:受该错误影响的会话(用户访问)数量
此排行帮助您优先处理影响最大的页面崩溃问题。

热门 Issue(Top10)#

展示影响用户最多的问题排行,每个 Issue 是经过聚合的错误集合,包含:
错误类型:Issue 的主要错误类型(如 java.lang.RuntimeException、TypeError、ReferenceError 等)
错误信息:Issue 的典型错误描述,点击可查看详细堆栈和会话信息
错误数:该 Issue 包含的错误总次数
会话数:受该 Issue 影响的会话数量
注意:一个 Issue 可能聚合了多次相同根因的错误。关于 Issue 聚合策略,可查看异常聚合。

错误类型分布#

错误类型占比(饼图):展示不同错误类型的占比(如 ReferenceError、java.lang.RuntimeException 等),快速识别主要错误来源。
错误类型分布趋势(堆叠面积图):监控各错误类型随时间的变化趋势,及时发现新增错误类型或某类错误的异常增长。

版本 Crash 分布#

版本 Crash 分布(饼图):统计不同应用版本的崩溃分布情况,识别高风险版本。
版本 Crash 分布趋势(堆叠面积图):监控各版本崩溃随时间的变化,评估新版本质量,必要时进行热修复或回滚。

系统版本异常分布#

系统版本异常分布(饼图):统计不同操作系统版本(如 Android 11、Android 12、iOS 15 等)的异常分布情况,识别系统兼容性问题。
系统版本异常趋势(堆叠面积图):监控各系统版本异常随时间的变化,为系统兼容性优化提供数据支撑。
如需深入分析具体错误,可参阅错误跟踪了解如何调查关键错误、查看错误堆栈、追踪新错误的出现,以及如何在问题修复后验证效果。

4. 资源分析 — 精细化网络性能优化#

2026-01-13-11-48-55
资源分析模块帮助您深入了解应用的网络请求性能,识别优化机会:
请求数:监控网络请求总量的变化趋势,了解应用网络活跃度。
请求成功率:跟踪请求成功的比例,及时发现网络异常。
中位数请求时间:展示请求耗时的中位数变化(如 p50、p75、p95),评估整体网络性能水平。
慢请求:统计响应时间超过阈值的慢请求趋势,定位性能瓶颈。
异常请求:监控失败或错误请求的发生情况,快速识别接口问题。
资源请求状态分布:
请求状态码占比:通过饼图展示不同 HTTP 状态码的分布(如 200、404、500),识别异常请求类型。
请求状态码趋势:监控各状态码随时间的变化,及时发现异常峰值。
请求方式分布:
请求方法占比:展示不同 HTTP 方法(GET、POST 等)的使用分布。
请求方法趋势:分析各请求方法的时序变化。
静态资源:
静态资源调用排行:列出调用频率最高的静态资源(如图片、字体、配置文件等),了解资源使用热度。
静态资源响应排行:识别响应最慢的静态资源,优化资源加载性能。
网络调用排行:
Host 排行:按请求来源(Host)统计请求数,识别主要依赖的服务端点。
资源耗时排行:列出耗时最长的网络请求,包含耗时详情(DNS 解析、TCP 连接、SSL 握手、首字节时间、响应时间等),精准定位性能瓶颈。

常见问题#


为什么部分网络请求的状态码为 0?#

1.
请求被取消:用户在请求完成前离开页面或取消操作,导致请求中断。
2.
网络中断或超时:请求在发送过程中遇到网络中断、超时等异常情况,可能导致状态码无法正常返回。
3.
证书验证失败:HTTPS 请求的 SSL 证书验证失败,连接建立前就被中断。
4.
SDK 兼容性:在极少数情况下,特定系统版本或设备可能存在兼容性问题,导致数据采集不完整。

错误数和 Issue 数量有什么区别?#

错误数:指原始错误事件的总数,包括每一次错误发生的记录。
Issue 数量:指经过聚合后的问题数量。Flashduty 会根据错误堆栈、错误类型、发生位置等信息,将相似的错误聚合为同一个 Issue。
示例:
错误总数:100 次
Issue 数量:5 个
这表示 100 次错误被聚合成了 5 个不同的 Issue,每个 Issue 可能由不同的根因导致。
为什么需要聚合:
便于定位问题根因:相同根因的错误归为一个 Issue,避免重复处理
优先级排序:通过影响范围(错误数、会话数)识别最需要修复的问题
追踪修复效果:修复一个 Issue 后,可观察该 Issue 下所有错误是否消失
详细了解 异常聚合策略。

如何提升无崩溃率?#

1.
定位高频崩溃:通过"页面 Crash 排行"和"热门 Issue"快速定位影响最大的崩溃问题。
2.
分析堆栈信息:点击具体 Issue 查看详细的错误堆栈和用户环境信息,精准定位问题代码。
3.
关注系统兼容性:通过"最全 Crash 分布"识别特定系统版本的兼容性问题。
4.
监控版本质量:通过"最全版本分布"评估新版本质量,必要时进行热修复或回滚。
5.
增强异常捕获:合理使用 try-catch、全局异常处理器,避免未捕获异常导致崩溃。

如何优化应用启动性能?#

1.
分析启动数据:
查看"应用启动时间(P75)"指标,了解大部分用户的启动体验
通过"启动时间趋势图"评估优化效果,避免性能退化
查看"样本分布柱状图"识别长尾问题,确保少数用户也能获得良好体验
2.
延迟非关键初始化:将非必要的初始化操作延迟到首屏渲染后执行,缩短启动时间。
3.
优化依赖加载:减少启动期间加载的第三方 SDK 和库,采用懒加载策略。
4.
简化首屏布局:降低首页视图层级复杂度,减少首次渲染耗时。
5.
使用启动优化工具:
Android:使用 App Startup Library 管理组件初始化顺序
iOS:利用 Lazy Initialization 延迟初始化非关键组件
6.
监控启动阶段耗时:通过自定义计时点追踪各阶段耗时,精准定位瓶颈环节。

P75、P50、P90 这些分位数是什么意思?#

分位数(Percentile)是统计学中衡量数据分布的重要指标:
P50(中位数):50% 的用户体验优于此值,50% 的用户体验劣于此值
P75:75% 的用户体验优于此值,25% 的用户体验劣于此值
P90:90% 的用户体验优于此值,10% 的用户体验劣于此值
P95:95% 的用户体验优于此值,5% 的用户体验劣于此值
为什么使用 P75 而不是平均值?
平均值容易被极端值影响,可能不能代表大多数用户的真实体验
P75 更能反映大部分用户的体验情况,是业界常用的性能评估标准
Google 推荐使用 P75 作为核心性能指标
示例:
应用启动时间 P75 = 1.7s:表示 75% 的用户启动时间在 1.7s 以内,25% 的用户超过 1.7s
内存使用 P75 = 233MB:表示 75% 的场景下内存占用在 233MB 以内

什么是慢帧、冻结帧和长任务?#

这些都是衡量应用流畅度的重要指标:
慢帧(Slow Frame):
渲染耗时超过 16.67ms(60fps 标准)的帧
用户会感知到轻微卡顿
偶尔出现可接受,频繁出现需要优化
冻结帧(Frozen Frame):
渲染耗时超过 700ms 的帧
界面完全冻结,用户无法交互
严重影响用户体验,必须修复
长任务(Long Task):
主线程执行超过 100ms 的任务
会阻塞用户交互和界面更新
常见原因:复杂计算、大数据处理、同步 I/O
优化建议:
将耗时操作移至后台线程
分批处理大量数据
优化算法复杂度
避免在主线程进行同步网络请求或磁盘 I/O

如何提升页面加载性能?#

1.
定位慢页面:通过"页面加载耗时排行"识别加载最慢的页面,优先优化。
2.
优化数据加载:
采用分页加载或虚拟列表技术,避免一次性加载大量数据
使用数据预加载和缓存策略,减少等待时间
优化网络请求,合并接口调用
3.
简化页面布局:
减少视图层级嵌套,降低布局计算复杂度
避免过度使用透明视图和圆角效果
延迟加载非首屏内容
4.
优化图片资源:
使用合适的图片格式和尺寸
采用渐进式加载或占位图
对图片进行压缩和缓存
5.
异步渲染:将复杂视图的渲染操作放到后台线程执行。

什么是 ANR,如何降低 ANR 率?#

ANR(Application Not Responding) 是 Android 系统的应用无响应机制:
当应用主线程被阻塞超过 5 秒时,系统会弹出"应用无响应"对话框
用户可以选择"等待"或"关闭应用"
ANR 严重影响用户体验,可能导致用户卸载应用
ANR 常见原因:
1.
主线程执行耗时操作:
同步网络请求
大文件读写
复杂计算
数据库操作
2.
主线程等待锁:
多线程死锁
等待其他线程释放锁
3.
系统资源不足:
CPU 被其他应用占用
内存不足导致频繁 GC
如何降低 ANR 率:
1.
避免主线程阻塞:
将耗时操作移至后台线程(使用 AsyncTask、Coroutines、RxJava 等)
使用异步 API 而非同步 API
避免在主线程进行网络请求和文件 I/O
2.
优化锁使用:
减少锁的持有时间
避免嵌套锁
使用无锁数据结构
3.
优化生命周期方法:
onCreate/onResume 等生命周期方法要快速返回
延迟加载非关键资源
4.
监控和分析:
使用 StrictMode 在开发期间发现主线程违规
通过 RUM 看板的"长任务数"和"卡顿频率"定位问题
查看 ANR 堆栈信息定位具体代码

如何降低应用卡顿率?#

1.
定位卡顿来源:通过"长任务监控"和"卡顿时长分布"识别导致卡顿的具体代码。
2.
优化主线程任务:将耗时操作(如网络请求、数据库读写、复杂计算、大文件 I/O)移至后台线程。
3.
优化 UI 渲染:
减少视图层级,降低布局复杂度
避免在主线程进行复杂的视图计算
使用 RecyclerView(Android)或 UITableView/UICollectionView(iOS)的优化技巧
合理使用硬件加速
4.
优化列表性能:
实现视图复用机制
优化 item 布局复杂度
避免在 item 绑定时执行耗时操作
5.
监控工具配合:结合性能分析看板和系统工具(Android Profiler、Xcode Instruments)定位具体卡顿代码。
6.
设置合理阈值:根据业务特点和用户预期,设置合理的卡顿检测阈值(建议 200-500ms)。

如何采集用户信息?#

1.
登录态用户识别:对于需要用户登录的应用(如电商、社交、金融等),您可以在用户登录后调用 SDK 的用户标识方法:
Android: 参考 Android 用户会话配置
iOS: 参考 iOS 用户会话配置
2.
设备指纹识别:对于无登录态的应用,推荐基于设备信息生成稳定的设备指纹并上报用户标识:
Android:可使用 Android ID、IMEI(需权限)、广告 ID 等
iOS:可使用 IDFV(Identifier for Vendor)或 IDFA(需用户授权)

如何优化网络请求性能?#

1.
识别慢请求:通过"资源耗时排行"定位响应时间最长的接口。
2.
分析耗时分布:查看 DNS 解析、TCP 连接、SSL 握手、首字节时间等各阶段耗时,精准定位瓶颈。
3.
优化建议:
DNS 优化:使用 DNS 缓存、HTTPDNS
连接优化:启用 HTTP/2、连接复用、减少重定向
传输优化:启用 GZIP 压缩、优化数据格式、减少请求体积
接口优化:优化后端接口性能、使用 CDN 加速静态资源

数据延迟是多少?#

Flashduty RUM 通常在数据产生后的 1-3 分钟内完成采集和展示。在网络状况良好的情况下,大部分数据可实现准实时更新。

延伸阅读#


SDK 接入与配置#

Android SDK 接入指南 - 了解如何在 Android 应用中集成 RUM SDK
iOS SDK 接入指南 - 了解如何在 iOS 应用中集成 RUM SDK
Android 高级配置 - 深入配置 Android RUM SDK 高级功能
iOS 高级配置 - 深入配置 iOS RUM SDK 高级功能
Android 数据收集 - 了解 Android RUM SDK 收集的数据类型
iOS 数据收集 - 了解 iOS RUM SDK 收集的数据类型

数据分析与监控#

RUM Explorer 使用指南 - 学习如何使用 RUM Explorer 深入分析数据
错误跟踪 - 掌握错误追踪和调试技巧
异常聚合策略 - 理解错误聚合机制

性能优化#

Android 性能优化最佳实践
iOS 性能优化最佳实践

添加官方技术支持微信

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

微信扫码交流
修改于 2026-01-13 06:56:24
上一页
Web
下一页
概览
Built with