“可监控、可灰度、可回滚” 据说是阿里集团内部有关系统稳定性的“三板斧”,作为第一步的“可监控”自然是所有业务条线的一项“刚需”,那么到底如何实现“可监控”就让我们从阿里云的现有监控服务产品中来一窥究竟吧。
阿里云目前有两大监控服务体系,一个是偏向于云基础架构侧的“云监控”、一个是偏向于应用侧的“应用实时监控”,上一次我们介绍了云监控,这次我们再来了解一下应用实时监控这个体系。
应用实时监控又称ARMS是阿里云一个偏向应用层监控的产品家族,其中第一部分是应用服务监控,这个产品说白了就是一款APM应用性能管理(Application Performance Management)产品,这个市场里的产品过去主要面向的都是一些线下IDC的应用场景,虽然后来也出现了一些SaaS化的APM产品,但总体上面向的客户群还是以非互联网客户为主,而阿里云的这款APM是从阿里巴巴内部电商等业务里孵化出来的,因此天然具备的是互联网的基因,随后在很多的传统企业互联网转型项目中被大量的采用,只要是中台相关的项目建设,ARMS都是绕不过去的产品,由于之前对应用监控这块儿有过探讨,所以这次对于这个产品的细节我这里就不过多介绍了。
除了APM,ARMS还有前端监控这一部分的功能,通过在WEB或者小程序的前端代码中嵌入ARMS的埋点代码,就能对应用的前端运行状态进行掌控,监控的状态包括前端页面的打开和运行速度、运行过程中自身及API的出错等情况。
用户使用ARMS前端监控主要能够获得如下好处:
及时的获知用户在本站点遇到的JS错误信息。及时获知应用对外部调用的成功率等信息。及时获知前端页面在全球各地的打开速度。前端监控主要是被动的接收用户访问页面之后监控数据,假如客户希望更主动的改善用户的使用体验就引出了ARMS产品家族的另一个服务“云拨测”,这个云拨测有些类似于云监控的站点监控,都是利用阿里云遍布全球的探测站点对目标网站或服务的可用性进行“主动”的探测的服务。
相对于云监控中的站点监控,ARMS体系中的云拨测更加偏向于对应用服务返回的WEB元素进行更细粒度的探测和匹配,说白了就是云拨测能够创建对目标站点进行定时“浏览”的任务,在此期间对于页面的元素级错误进行及时的预警以改善用户体验。
最后一个ARMS家族的成员来自开源的监控体系,正是当下正炙手可热的Prometheus监控服务。使用ARMS Prometheus完全兼容开源Prometheus的客户端和查询语言(PromSQL),而不需要自行构建和运维Prometheus的各种后台服务,直接开箱使用即可,目前ARMS Prometheus 既支持对自建或者云上的K8S集群进行监控接入,又支持通过丰富的开源Exporter组件接入到ECS服务器中的MySQL、Redis、MongoDB、ElasticSearch、RocketMQ、Ngnix、ZooKeeper等中间件服务,随着Prometheus相关生态的日益繁盛,未来将会有更多的中间件服务以Exporter的方式接入到Prometheus体系中,这样一来通过ARMS的Prometheus服务就能完整的实现对在ECS上自建的各类应用中间件的监控,可以说ARMS Prometheus补上了阿里云上监控的最后一块拼图。
本文转自网络,原文链接:https://developer.aliyun.com/article/785418