在互联网高速发展的时代,应用成为连接企业与用户的载体,网络购物、实时交易、游戏娱乐、办公邮件等各种各样的使用场景中,网络响应无延迟,用户访问无槽点成为企业应用能否在激烈的市场竞争中脱颖而出的重要影响因素。
体验为王时代,应用性能监控盲点成为企业面临的核心问题
据相关研究表明:当页面加载时间从 1 秒到 3 秒,跳出的机会增加了30%左右。1s到5s的机会增加到90%,如果你的网站需要10s的加载,跳出的机会将会超过120%。所以,在这个“用户体验为王”的时代,应用性能管理盲点已经成为企业面临的核心问题之一。
随着现代应用系统变得愈发复杂,越来越多的企业开始将服务往公有云迁移,对于云上应用性能监控的需求激增,基于此,阿里云推出全栈式性能监控服务ARMS,为客户提供涵盖服务层、应用层、用户体验层、业务交易层的性能管理监控产品,价格相较市场而言,不到10%,极具诱惑力。
这样一款极具价格竞争力的产品,性能上是否也有优于市场的表现呢?结合实例,我们进行使用过程全解析,真实展示这款产品的使用体验。
步骤一:多渠道实时报警,随时掌握网站访问情况
“Ding!网站无法访问,请速查!“开发人员接到ARMS系统push、短信、邮件等全方位报警信息,得知企业门户网站无法访问,立即调出ARMS监控系统开始排查任务。
图1:样本分布图
从样本分布图来看,用户在访问站点的时候,在最近的一段时间内有245个用户访问超时,响应时间在5-5.5s 之间。对于门户网站而言,5s以上的响应时长意味着用户流失,对于网站营收来说影响巨大,开发人员必须迅速找出问题点。
步骤二:网站响应超时,查看API接口成功率
图2:API请求页
用户访问超时,可能的问题在于前端页面加载时间过长,或者后端服务层出现问题。从 “API 请求”页面可以看出,这段时间内,API请求成功率有大幅下降,所以基本判断是后端出现问题导致用户访问超时。
步骤三:无需修改应用代码,快速定位接口问题
图3:后端架构图
应用可以通过挂载javaagent的方式接入, 不需要任何代码改动。对代码是0侵入的,只需要在启动参数中 -javaagent 挂载一个应用监控的agent,从应用监控架构总览中可以看出有一条红色标注的线条,意味着主要问题源于此,红色的线表明:问题出现在 Dubbo 应用 item-center中。
步骤四:接口拓扑图概览,清晰定位调用异常
图4:item-center应用接口图
这时,开发人员将视角切换到 item-center 应用,并定位是哪个接口出现问题,从item-center 的接口拓扑图可以具体定位到:该接口调用47.104.139.155:8081出现异常。对于应用负责人而言,已经可以定位到是应用的哪个依赖出现问题。
步骤五:异常故障详情图,快速知晓故障类型
图5:异常故障图
从异常页面中可以看出:存在两个异常,“Read time Out“的标注揭示了故障类型,主要是由于网络外部调用超时导致。
图6:traceID详情图
步骤六:traceID异常,追踪代码级别情况
从跟踪的详情图来看,该接口有很多的调用 traceID,并且有部分的 traceID 有异常,耗时在2347ms。这里可将问题对应到前端访问时延问题上,用户访问时间在5-5.5s 之间。打开一个 异常traceID,查看这个超时在代码级别系统情况。
图7:代码级别耗时详情图
步骤七:代码级别详情图,清晰了解入参及异常
再进入代码级别的耗时详情图,可以清晰看到具体哪一步消耗了多少的时长,而且还可以看到方法的入参及异常。
图8:SQL解析图
步骤八: SQL详情页,排查数据库运行情况
最后再次确认数据库是否与该次故障存在关联,打开应用监控SQL 详情页,在数据库页面中,可以看出这次故障与数据库没有关系,数据库运行正常。
通过一系列步骤的问题排查与追踪,开发人员全程只需耗时1-2min即可定位页面性能出现问题的根本原因,快速采取措施恢复应用。
从使用全过程来看,ARMS能够帮助企业进行关键业务应用进行监测、优化,快速提高应用的可靠性和质量,在大幅降低IT成本的同时,为用户带来良好的访问体验,帮助企业赢得用户,赢得市场。