上一篇文章讲解了EMAS平台“移动测试”中的兼容性测试、功能测试、性能测试、远程真机和用例管理等内容,帮助读者了解到移动测试的重要性。这篇文章我们将介绍如何使用阿里云的ARMS平台,来对业务进行实时监控,本篇文章也是整个系列的的最后一篇。
应用实时监控也是运维工作的重要环节,之前老系统都是运维自行搭建的,新系统我们决定使用阿里云的应用实时监控服务 ARMS 来协助运维人员,对软件项目进行实时监控,能有效的帮助企业实现全栈式的性能监控和端到端的全链路追踪诊断,简化运维人员工作量,及时定位到问题所在,方便高效。
下面从几个方面来进行讲解:
一、什么是应用实时监控服务ARMS?
应用实时监控服务 (Application Real-Time Monitoring Service) 作为一款云原生可观测产品平台,包含应用监控、前端监控、Prometheus监控、云拨测、Grafana服务、告警管理等一系列子产品。其覆盖浏览器、小程序、APP、分布式应用、容器等不同可观测环境与场景,帮助企业实现全栈性能监控与端到端追踪诊断。提高监控效率,减少运维工作量。
二、如何把应用接入ARMS?
之前我们在EDAS里面,把微服务部署上去后,在每个服务的“应用监控”菜单中,找到“高级监控”,点击后,可以看到ARMS的入口,点击“跳转到ARMS应用监控”,就打开了ARMS控制台。
1、接入应用
点击“接入应用”,在跳出对话框中,选择合适的应用程序,这里我选择Java应用,然后会提示如何接入ARMS的详细步骤。
2、下载Agent
有两种方法,我通过阿里云的workbench方式登录到ECS上,通过wget方式下载Agent,注意要使用Agent必须要打开多个端口,确保使用的云服务器ECS实例的安全组已开放8442、8443、8883、9092或9093端口的TCP出方向权限。这些在安全组中设置。
3、解压Agent
进入Agent压缩包所在目录并将其解压至任意工作目录下。
unzip ArmsAgent.zip -d /myworkspace/
4、获取AppName以及LicenseKey参数
5、配置参数,并重新启动微服务。
根据阿里云提示保存好这两个参数,然后打开ECS命令行,直接再重新启动服务即可。
java -javaagent:./test/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=ebd73vz7p2@a7a -Darms.appName=test-server -jar demo.jar
6、启动成功后,稍等片刻,再ARMS应用列表中,如果能看到有应用列表就代表成功了,应用进入了ARMS监控范围。
三、如何在ARMS中进行业务实时监控
通过上面两步后,运维工程师可以闲下来买杯咖啡了,其他就交给ARMS助手了,后面只要边喝咖啡,边看监控界面即可以了解到应用程序的所有情况,真是太nice了。
ARMS应用监控能够自动发现和监控应用代码中常见的Web框架和RPC框架,并自动统计Web接口和RPC接口的调用量、响应时间、错误数等指标。
在界面中,可以看到异常信息,及时定位到问题,其实最有用的,我感觉还是慢SQL,很多应用程序慢,是因为SQL语句执行的慢,在监控中都会显示出来是哪个SQL执行慢了,花了多少时间,这样可以针对这些地方进行调优。
还有实时诊断功能,当开启实时诊断后,ARMS应用监控会持续监控应用5分钟,并在这5分钟内全量上报调用链数据。接下来,您就能以出现性能问题的调用链路为起点,通过方法栈瀑布图和线程剖析等功能定位问题原因。
所以ARMS平台是一款优秀的监控平台,我记得之前开发,这些平台都是自己搭建的,现在都有现成的阿里云平台可以使用了,应该来说,技术越来越先进,给我们程序员也腾出不少时间,可以好好的做其他更有意义的事情。如果您对本文感兴趣,可以在评论中留言,谢谢!
本系列文章也告一个段落了,最近都放开了,祝大家早日康复,我们明年再见。