x应用性能管理(APM系统)项目立项书2016年4月目录一、应用性能管理系统项目概述 (1)1.1项目背景 (1)1.2建设目标 (1)1.2.1 远期目标 (1)1.2.2 本期目标 (2)二、应用性能管理APM系统的服务 (2)2.1 APM系统实现 (2)2.2 APM系统服务 (3)2.2.1 主动页面性能监控 (3)2.2.2 Web页面及H5页面监控 (3)2.2.3 移动端APPs性能监控 (4)2.2.4 应用服务器端性能监控 (5)三、应用性能管理APM系统的价值 (6)3.1 APM对运维部门的价值 (7)3.2 APM对研发部门的价值 (7)一、应用性能管理系统项目概述1.1 项目背景随着云计算和移动互联网的发展,支持随时随地进行业务交易的便利也进一步推动着企业和政府部门开发互联网和移动互联网业务。
各类APP和网站数量急剧增长,同类业务竞争进入白热化阶段,而国家提出的“互联网+”战略,也表明基于互联网和移动互联网业务是国家未来发展的驱动力。
经过近10年的发展,互联网业务所必需具备的一些属性也逐步明确,用户体验是其中重要的一个因素。
用户体验是否良好成为业务成功与否的关键。
影响应用体验的环节是贯穿从终端到服务端的,初步分析需要考虑的因素如下:•终端:终端性能,接入方式,OS版本;•APP应用:布局渲染,进程调用,代码效率,闪退,崩溃;•浏览器端:客户端时间,DNS,TCP连接,页面渲染,JS错误,Ajax请求;•网络传输:异常路由,延迟,抖动,CDN节点设计和选择;•云端即服务器端:硬件性能,设备延迟,并发压力,应用架构,代码效率,外部接口调用,数据库调用;以上的任何一个环节出现问题都会影响用户体验,更何况中国的网络环境南北互通复杂,网络运营商众多,OS次生系统和智能终端数量众多,机房设备品牌众多等因素的影响,用户体验的优化更加难以把握。
基于业务层面的用户体验管理体系的建设可以让业务系统的用户体验透明化,可有效的保障线上业务开展。
随着XX电子政务平台整体信息化建设的加快,业务规模的不断发展,为了能够给用户提供高效、可靠、稳定的业务服务,提升OA、门户、信息系统等业务的整体业务性能,建立一整套体系的涵盖浏览器,网络,应用服务器端的端到端应用性能管理平台显得尤为重要。
1.2 建设目标1.2.1 远期目标建设XX信息系统从浏览器,APP,网络到应用服务器的全过程端到端应用性能管理平台,从用户体验角度全面掌控管理信息系统的服务状态及业务支撑能力,夯实IT运维管理工作,并奠定业务和系统性能分析数据基础,并与XX电子政务平台云监管服务模块对接关联,从而为XX管理决策提供数据支持。
1.2.2 本期目标为XX管理信息系统提供端到端应用性能监控和管理能力,对访问过程中出现的异常第一时间做到“知其然”,更要“知其所以然”;扩大监测范围,对现有的所有业务系统实现APP,浏览器,网络和应用的数字化,切片化应用性能指标收集,对于访问慢的问题可精确到代码级的定位能力。
对现有监控系统形成有效补充,基于业务全过程管理,实现代码级性能和用户体验的监控、预警、分析和定位,满足业务系统在运行和维护阶段的性能管理需求,实现性能剖析,帮助提前发现性能瓶颈,实现持续性优化;帮助快速定位和解决问题,提升系统的稳定性和高可用性,以满足各层级人员的使用需求。
本期应用性能管理系统建设项目建设内容如下:•Web页面及APP文件下载主动拨测监控;•Web/wap页面被动监控;•APPs的前端性能监控;•后端应用系统性能监控;二、应用性能管理APM系统的服务2.1 APM系统实现APM服务在性能监测领域是一种成熟的服务模式,此业务的特点是部署比较简单。
且采取的都是业界成熟的监控手段。
具体而言:•主动页面性能监控:采取业界通用的主动拨测的方案,对业务系统无需做任何更改;•web页面及H5页面监控:通过页面注入JS代码的方式进行监控,被动式采集真实用户访问的性能数据,从而分析H5应用分析的性能问题;•移动端APPs性能监控:采用业界成熟的SDK方案,无需修改APPs的业务代码,被动式采集用户访问APPs的性能数据;•应用服务器端性能监控:采取业界成熟的探针部署方案,无需修改服务端的业务代码。
被动式采集真实用户请求服务端的真实性能数据;通过采用以上监控手段,即可对包括XX在内的电子渠道业务实现全场景,端到端的性能监控。
2.2 APM系统服务按照移动互联网性能问题影响因素,APM系统建设后可为我部带来如下方面的性能数据分析和服务内容:2.2.1 主动页面性能监控1)主动的全页面性能监测:通过主动拨测的方式对目标页面发起访问,并实现浏览器性能,网络性能的采集,包括首屏时间,总下载时间,DNS,TCP连接,首包时间等2)全页面访问性能分析:通过报表展示可视化了解网站运行情况,以用户视角了解网站运营表现。
支持单页面监测、PING监测、事务处理监测等3)业务交易流程监测:完整模拟用户的Web事务流程,对一个完整的事务流程进行监测,从而定位整个事务流程中具体的性能瓶颈所在。
比如:转账流程。
从用户登录,到转账信息填写,直至最后的付款,整个完整的事务流程。
在此过程中,可以了解到哪个步骤是整个流程的薄弱环节,如何去优化流程,提高用户的体验4)CDN监测:主动的CDN性能监测;5)端到端跨应用追踪:从主动拨测端跨应用追踪到Server端具体代码;6)真实用户压力测试:可提供至少5000并发以上真实的用户访问压力,并结合后端应用性能监控系统,可真实评估在高并发压力下定位系统的瓶颈或者不可用的性能临界点,在重大活动开展或新功能上线前发现全访问链路上的系统瓶颈并针对系统优化,给予业务系统最大的保障。
2.2.2 Web页面及H5页面监控1)页面性能指标监控:支持受访页面列表排序,提供当前应用系统页面加载耗时最长的页面列表,点击后可进入该页面分析页,支持的指标包括DNS解析,TCP建连,阻塞耗时,应用耗时,首包时间,网络耗时,DOM处理,页面渲染,总响应时间(从开始浏览计时),首次渲染时间(从开始浏览计时)。
2)自定义加载时间:自定义监控页面中某个Ajax请求的加载时间3)AJAX分析:支持AJAX页面吞吐量数据采集及支持Ajax调用页面统计,从请求量占比、平均响应时间、调用次数、平均传输字节数(KB)、错误率。
4)JS错误分析:提供浏览器JS错误分析,根据错误类型、浏览器UA数据、请求页面和JS文件等相关指标,帮助对浏览器页面打开错误进行分析,并可提供详细的错误堆栈信息。
5)用户访问慢页面追踪:针对单个用户慢可展示当次页面加载性能分解包括服务端响应时间,DOM处理时间,页面加载时间,Ajax请求时间,首屏时间。
且可提供详细的加载时序缩略图展示资源加载、Ajax请求、用户交互和其他四大类事件发生的时序,以及JS 脚本错误发生的位置以及相关的脚本错误日志信息。
6)多维度组合分析:分运营商、地域、接入方式对页面进行随意组合分析,迅速确定和诊断区域性网络错误及故障,地域维度可以细化到地市级别。
需提供的分析指标包括平均页面加载时间,平均吞吐率,平均加载网络延时,Apdex不满意比率。
7)页面聚合分析:支持根据预设的规则对REST等格式的页面URL进行合并统计,即能对页面和AJAX请求的URL链接地址不区分路径和文件名进行合并处理,进行性能数据统计和分析。
8)端到端跨应用追踪:支持从前端慢的元素跨应用追踪到后端Server具体代码2.2.3 移动端APPs性能监控1)原生Native APP监控•崩溃分析:能够抓取的用户崩溃轨迹、崩溃堆栈、上下文信息;•网络分析:能够对应用层http进行分析,并能够分析到DNS、TCP、SSL、网络延时、首包时间;•SOCKET分析:通过DNS耗时和TCP耗时对SOCKET连接的URL进行分析;•劫持分析:能够对域名劫持和DNS劫持进行地域,运营商和访问量多维度分析与定位;•慢交互分析:能够分析主线程、异步线程、设备使用情况,对线程的执行逻辑,线程使用情况进行具体分析;•组合分析:能提供用户访问地域,运营商,接入方式的组合性能分析;•ANR分析:提供安卓系统发生ANR时刻的线程和日志信息、硬件环境、用户自定义附加信息(电话号码、账号、商品ID、用户ID)等,便于在用户投诉之前发现问题并解决。
•动作分析:提供手机发生页面卡顿(加载超过4s(可自定义)耗时的动作)分析,给出具体的页面,动作名称,控件等详细信息,定位最慢的方法并提供优化的依据•跨应用追踪支持:支持从APP发现的慢交互中定位由于服务器响应慢导致的问题,并能自动生成跨应用追踪链接分析Server端具体的慢代码/数据库/API端口。
2)Webview监控•Http分析:能够分析域名的DNS时间、TCP、SSL、网络延时、首包时间;•IP分析:能够分析域名具体对应的IP主机,并能够分析主机IP的DNS时间、TCP、SSL、网络延时、首包时间;•页面分析:能够分析页面加载时间及页面js错误;•JS分析:能够统计JS异常记录;3)报表展示•APP健康评分:能参考崩溃率、http响应时间、网络错误、http错误多个指标对app 性能进行直观的评分;•仪表盘:能提供仪表盘添加所有指标监控;•组合分析:提供运营商、地域、接入方式多个指标组合分析2.2.4 应用服务器端性能监控1)应用逻辑拓扑自动发现和可视化:支持应用组件和外部接口的自动发现和关联,展示每个应用组件的调用和被调用关系,以及吞吐率、响应时间、Apdex和错误率等指标;支持增加,删除操作;支持不同语言应用的拓扑发现和关联,包括Java,PHP,.NET,Node.JS,Python等2)代码分析:支持用户设定关键应用过程慢追踪阀值来进行关键应用过程的详细追踪3)关系型数据库性能监控:支持MySQL, Oracle等数据库实施监控,定位性能最差的表名及其操作,定位调用者耗时,可以深入追踪慢SQL,将对其进行详细追踪,提供包括完整SQL语句,SQL执行堆栈Trace等信息4)非关系型数据性能监控:支持非关系型数据库Memcache、Redis、MongoDB进行性能监测分析,提供操作耗时,吞吐率,调用者耗时指标,并可深入追踪跳转到具体调用者的性能数据5)应用外部服务性能监控:可区分自身调用和第三方调用的性能,支持多种协议的外部端口监测,包含但不限于HTTP、Thrift、Dubbo,通过响应时间占比、平均响应时间、响应总时间、吞吐率四个指标对包括Web Service, REST等服务的调用的监测分析。
每一个调用url可以监控到调用者的耗时、吞吐率等性能参数6)不同版本的性能环比:支持用户可对监控平台所监控的应用系统进行版本维护,用以记录每次版本的迭代时间,从而根据维护的版本时间进行每个版本的性能比较。