本实践详细描述了三个微服务应用安装ArmsAgent及部署的过程。并在实践最后简单介绍了ARMS监控应用的部分功能及图片效果展示。
背景信息
最佳实践概述
应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款应用性能管理产品,包含前端监控、应用监控和Prometheus监控三大子产品,涵盖了浏览器、小程序、APP、分布式应用和容器环境等性能管理,借助本产品,您可以基于前端、应用、业务自定义等维度,迅速便捷地为企业构建秒级响应的业务监控能力。
本次最佳实践基于ARMS对EDAS部署的应用进行监控,总共准备了三个微服务应用。将微服务应用Jar包打成镜像并上传至阿里云容器镜像仓库,然后通过EDAS的自定义部署功能,把应用部署在EDAS上。在应用打成镜像的过程中,在Dockerfile里添加了安装ARMS探针和日志采集文件,实现EDAS部署完成后,ARMS将能够监听到EDAS部署的应用。
最佳实践价值
在开源Spring Cloud微服务开发过程中对应用进行监控需要使用Hystrix Dashboard和Turbine组件结合,而对调用链的监控则需要使用Seluth结合Zipkin组件,然后启动Zipkin Jar包,以访问其对应控制台的形式监控微服务应用。而对于Arms,无需编写过多对应的监控代码,便捷微服务应用无侵入式监控,并且ARMS的功能丰富,可以对应用进行多方面的监控,还能对数据库MySQL、RocketMQ使用等的监控。因此本次最佳实践描述ARMS的使用,提供给广大客户参考。
应用环境
- ARMS基于专有云企业版V3.9.0。
- Spring Cloud框架基于Finchley.SR1版本。
- EDAS注册中心Nacos是基于V2.1.0 RELEASE版本。
步骤一 创建Kubernetes集群
您需要按照以下步骤填写需要配置的一系列集群参数来创建Kubernetes集群。
步骤二 安装ArmsAgent
你需要按照以下步骤在Spring Cloud服务中安装ArmsAgent。
步骤三 部署应用
您可以按照以下操作步骤部署应用。
应用监控
当应用成功接入ARMS后,ARMS将全方位监控您的应用。您可以在应用总览页面快速查看应用的健康状况关键指标,通过应用拓扑图预览应用的上下游依赖组件。
您可以按照以下步骤进入功能入口:
- 功能介绍
- 应用关键指标
概览分析页签上展示以下关键指标:
- 选定时间内的总请求量、平均响应时间、错误数、实时实例数、FullGC次数、慢SQL次数、异常次数和慢调用次数,以及这些指标和上一天的环比、上周的同比升降幅度。
- 应用提供服务:应用提供服务的请求量和平均响应时间的时序曲线。
- 应用依赖服务:应用依赖服务的请求量、平均响应和应用实例数的时序曲线,以及HTTP-状态码统计。
- 系统信息:CPU、MEM和负载的时序曲线。
- 统计分析:异常类型分析。
- 应用拓扑
在拓扑图页签上,您可以通过拓扑图更加直观地看到应用的上下游组件以及与它们的调用关系,从而更快速地找出应用的瓶颈。
- 应用关键指标
- 应用详情
在左侧导航栏中单击应用详情,可以查看被调用应用、数据库和MQ的概览图。
- JVM 监控
JVM 监控页签内展示了GC瞬时次数、GC瞬时耗时、堆内存详情、非堆内存详情和JVM线程数的时序曲线。
- 主机监控
主机监控页签内展示了CPU、MEM(内存)、Disk(磁盘)、Load(负载)、网络流量和网络数据包的时序曲线。
- SQL分析
SQL 分析页签展示的是左侧选中服务的代码段内所发起的 SQL 请求列表。借助此页签,您可以找出是哪一个SQL造成某个服务过慢。您还可以单击某个SQL中的接口快照来查看一个SQL执行逻辑所处的完整代码链路。
- 异常分析
异常分析页签展示的是左侧选中服务的代码段内所抛出的Java异常。您还可以单击某个异常中的接口快照来查看一个异常堆栈所处的完整代码链路。
- 错误分析
错误分析页签展示应用的错误和HTTP状态码统计数据。您还可以单击需要查看的TraceId,即可在新页面查看调用链路相关信息。
- 接口快照
在服务链路快照中,您可以看到该服务接口中单次调用的调用堆栈、执行的明细SQL、抛出的具体异常信息,以及接口中的参数详情。
- JVM 监控
- 接口调用
在左侧导航栏中单击接口调用,可以查看调用接口名称、调用接口响应时间、请求数、错误数和异常数。
- 数据库调用
数据库调用页面可展示各 SQL 语句的调用次数、平均耗时和相关调用链路,帮助您定位 SQL 性能问题。
在左侧导航栏中单击数据库调用,然后在 SQL 分析页签上查看以下指标:
- 选定时间内的每分钟 SQL 调用次数和平均耗时图表。
- 选定时间内具体 SQL 语句的调用次数和平均耗时。
在 SQL 分析页签上,按需执行以下操作:
- 在操作列中单击调用统计,即可查看选定时间内具体 SQL 语句的每分钟调用次数和平均耗时图表。
- 在操作列中单击链路查询,即可在调用链路页签上查看与对应 SQL 语句相关的所有调用链路。
- MQ监控
ARMS应用监控的MQ监控可展示消息队列Apache RocketMQ版的Topic发布和订阅消息的情况。
MQ监控页面具备以下功能:
- 在拓扑图中展示应用与MQ数据源之间的消息发布和订阅关系。
- 展示消息发布的统计数据,包括请求数、响应时间和错误数。
- 展示消息订阅的统计数据,包括消息请求数、响应时间和错误数。
- 提供关于消息发布和订阅的接口快照,您可以通过TraceId链接查看完整调用链以及诊断问题原因。
MQ监控页面支持的操作如下:
- 在页面右上角的时间选择框内选择需要查看统计数据的起止时间。
- 单击发布端统计和订阅端统计页签,查看消息发布和订阅的统计数据。
- 单击接口快照页签,查看关于消息发布和订阅的接口快照,必要时可通过TraceId链接查看完整调用链以及诊断问题原因。
- 单击返回总览,回到MQ监控页面。