APM-数据模型与上报
APM 的上报系统不只是“把 JSON 发到服务端”。它要解决三件事:数据如何建模、事件如何关联、移动端如何可靠且低成本地上传。这一层设计不好,后面的服务端聚合、B 端下钻和告警都会变成补丁工程。 一、设计目标 数据模型与上报层要同时满足: 目标 说明 可关联 页面、操作、网络、错误、性能现场能被 Session 串起来 可聚合 同类问题能按 fingerprint、版本、机型、页面、接口聚合 可重试 弱网、后台、进程退出后数据不轻易丢 可去重 重试不会造成重复统计 可采样 高频数据不会压垮端侧、网络和服务端 可脱敏 敏感数据在端侧就被过滤或掩码 可演进 Schema 版本升级后新旧 SDK 可以共存 二、RUM 对象模型 推荐用 RUM 层级组织端侧事件: Session View Action Resource Error LongTask / Freeze Custom Event 对象 含义 示例 Session 一次用户前台使用会话 打开 App 到退后台 View 一个页面实例 首页、详情页、支付页 Action 一次用户操作 点击下单、搜索、提交表单 Resource 一次资源请求 HTTP 请求、图片资源、WebView 资源 Error 一次错误 Crash、业务错误、网络错误、JS 错误 LongTask / Freeze 一次长任务或卡顿 主线程阻塞 800ms RUM 模型的价值是把“点状指标”变成“用户故事”: ...