无线App的性能分析和监控实践 Ricky Qiu (3007349@qq.com)
iOS Android
App相关监控的基本部署
Agenda 1. App端的考察和监控 2. 接口服务的设计和监控 3. 移动网络相关的监控 4. 讨论
电商App的特点 前端相对比较轻,依赖后端的接口比较多; 数据主要从接口拉取,网络流量不少; 运营的成分比较多,各种活动,促销,频道,专场。 和后端交互比较多。
1.1 App端的网络请求分析方法 1. Wifi + Proxy + Fiddler/Wireshark a. App PC AP + proxy + PC network 2 App Server b. App(proxyPC) PC(eth0) + proxy + PC(eth1) App Server 2. App(tcpdump) nc, pipe PC(wireshark) http://www.freebuf.com/articles/wireless/6517.html 3. Calculate and Show on App
1.2 App缓存 网站侧的做法 App的缓存需要代码来控制策略 基础数据和控制数据的分离 考虑运营策略和时效性。
1.3 功能点和网络请求的映射 拉取一个商品的信息,一个CGI请求和响应。
拉取一个运营频道的商品信息… 需要考虑的点: 有无批量拉取的接口? 一次拉取所有 vs 拉取第一 页,然后加载更多 屏幕适配,第一页多少个? 是否可以缓存?
1.4 App角度的质量监控
1.5 App运营层面的监控 研发关注: 用户量和趋势,页面访问统计,分布比例(网络,终端,设备OS版本,产品版本)… * 上图是友盟网站的sample,自研的指标大同小异。
2 接口服务的设计和监控
2.1 App服务接口的选择 Q: 和网站共用接口还是单独的接口? A1: 完全相同的接口, app端做过滤 A2: 同一个接口,参数控制,服务端做过滤 A3: 剥离出专用的接口,和网站接口并列。 A4: 适配层。无线的应用网关,更底层的基础服务是 共用的。
如果app还不支持购买合约机 类目接口是否能返回合约机? 搜索可以返回吗? 可以展示商品详情也吗? 点加入购物车或购买如何处理? 可以查看这样的订单吗?
Q: 那一种更合适? 出发点: - 体验上的考虑 - 性能上的考虑 - 目前对业务的支持,迭代? - 开发的灵活性,耦合的代价; - 维护的代价,是否有重复effort; - 流量是否有重叠,可否分流?
2.2 App和网站不一样的需求和定位 App的展示空间,无法承受大的数据量 一些做法: 图片大小 运营频道的取舍 页面内容的丰富度 http://img1.icson.com/product/small/01/201/01-201-051.jpg http://img1.icson.com/product/middle/01/201/01-201-051.jpg 运营频道的取舍 页面内容的丰富度
商品详情页的对比 运营的取舍。App的定制。
2.3 CGI层面的监控 类似网站侧CGI监控,目标:可用性、性能、功能回归 针对App使用的外层服务接口,基于HTTP(S)协议; 现网7x24小时运行,发现频率为分钟级; 类似功能测试的做法,可以覆盖业务逻辑; 测试流量,和真实流量并行; 对外接口的采样数据 + 告警(邮件/RTX/短信/微信) 统一的监控和报表服务,运营质量考核
2.4 模块间调用的监控 调用内部/外部系统的接口,次数、速率、成功 率、响应情况。 全量真实数据 + 告警!
2.5 其他运维监控 和web相似,复用之前的实践
3 移动网络层面
APN接入点的比对
运营商分地域的对比
地域的对比
网络部署需要考虑的点 跨运营商IDC的部署,服务或者代理 不同网络情况下的App端策略,是否在2G/3G的情 况下做退化处理 分链路的异常流量的监控和告警 问题的定位 是否有和网络部署相关的特征 用户的反馈
Thanks
同事们要求我放的 We’re hiring… Testing of WEB/App/ERP/BI @SH, SZ 3007349@QQ 同事们要求我放的 We’re hiring… Testing of WEB/App/ERP/BI @SH, SZ 3007349@QQ.COM
4 讨论: 大家App的监控和上报怎么做的,用什么平台? crash 上报如何做的,如果跟进? 服务端的监控是怎么做的?可以第一时间收到告警 吗? 你们有灰度发布的策略吗? 有的话是怎么做的? 有旧版本强制升级的策略吗?