ARMS在APM工具选型中的实践

简介: 当前的系统在数字化转型需求以及互联网架构实施的影响下,越来越普遍地使用了微服务架构,我们在享受微服务带来的好处(开发效率高, 独立部署, 水平扩展, 故障与资源隔离等等)外,也带来测试,事务,应用监控等各方面的困难。

前言

当前的系统在数字化转型需求以及互联网架构实施的影响下,越来越普遍地使用了微服务架构,我们在享受微服务带来的好处(开发效率高, 独立部署, 水平扩展, 故障与资源隔离等等)外,也带来测试,事务,应用监控等各方面的困难。

image.png
从上图可以看出,在以分布式为主的互联网架构下,应用间的调用变得越来越复杂,我们传统使用的开发工程师主动埋点,运维人员到主机上查日志,组合调用链,监控应用的运行情况,显得越来越力不从心。

为了更好地做到应用层面的监控,包括应用运行环境的基础设施数据,系统业务调用情况,性能消耗分析,在发生性能,异常与故障问题时,能够快速定位和解决问题,诞生了很多优秀的APM(Application Performance Management)工具。

这些APM工具都提供了包括指标统计信息与调用链路跟踪信息。

常见的APM工具

APM工具包括指标收集与调用链收集。指标收集例如在某一段时间的请求数,异常数,错误数,响应时间RT, IAAS层的资源使用情况(例如cpu, memory, IO, load, 网络), 也包括JVM的各种运行参数(例如 各内存分区情况,gc情况)。调用链收集包括业务请求中访问过的各应用,类,方式,在每个运行节点/方法上的时间消耗情况。
常见的APM工具有:
1、ARMS:由阿里巴巴自研开发的一款APM工具。由于分布式微服务框架以阿里为主体的企业很早就开始探索,阿里集团内很早就有配套的鹰眼系统做相关的应用监控,为适应产品上云输出,阿里在2016-08-04的时间就以ARMS的产品形式正式对外提供应用监控服务。
2、开源系的APM
u Pinpoint:基于java编写的开源APM工具,由韩国人开发贡献,功能完善,发展快,影响了很多其它的APM工具实现,在国内外使用比较广泛。
u Skywalking:支持open tracing标准,由我国的吴晟主导开发的分布式追踪,分析,告警的开源工具,当前是Apache旗下的开源项目,发展非常迅速,在各类开源APM工具里国内的使用比较广泛。
u ZipKin:支持open tracing标准,由Twitter公司开发贡献,于2012年的时候就开始开源发展,是比较成熟的开源APM工具。
u Jaeger:支持open tracing标准,由Uber公司开发贡献,是比较成熟的开源APM工具。

APM工具原理

尽管这些APM工具功能与实现各有不同,但基本上原理都是一样的,这个原理基于google dapper的分布式追踪技术论文,把APM工具实现总体上分为两大部分:
1、对应用运行节点上进行应用埋点,在业务运行期间进行埋点数据的生成;

image.png
2、通过APM的后端服务日志收集,数据清洗与聚合,把相应的处理结果持久化,并且提供丰富的可视化控制台。
image.png

在这个调用链追踪技术里,还原调用链的功能主要依赖于两个ID.

第一个ID是TraceID, 这个代表一个业务调用,就好像在电商系统里发起的一个下单结算; 在线教育里的一个选课流程; 物流系统里的揽收; 这些业务从客户触发到获得响应结果就是一个完整的请求,就是一次业务调用,它每一次的业务请求的都会获得维一的TraceID;

第二个ID是RpcID (或者称为SpanID), 在一次业务请求中,可能经过的应用会有多过,以一个电商下单业务为例: 它需要经过订单系统创建订单; 支付系统接受支付;库存系统扣减产品库存;会员系统给买家进行积分处理; 购物车系统会清理购物清单。这样对于业务流经的每一个应用,都有一个有层次的RpcID, 这个RpcID可以认为是使用目录层级记录的,从这个RpcID来看,那怕它在同一个业务中被调用了多次,它的每一次进入的RpcID都是一样的。

依赖于TraceID & RpcID,我们可以很方便地还原整个调用链。
image.png

ARMS功能上的优势:

客观来说, 优秀的APM工具发展到现在,基础功能上的差异都不大。例如以前开源APM比较薄弱的自动埋点功能也跟进了ARMS这些先发的产品; 在异步产品如各类MQ的支持上也慢慢拉平;SQL/API参数抓取的功能方面也是补足。我们再来列一下ARMS的优点:

1、指标数据的准确性
ARMS的agent把指标数据与调用链数据是分开两种类型来采集统计的, 相应的指标数据不受调用链的采样率的影响,会在具体的运行节点进行完完全全的统计后,精准到上传加载到ARMS后端。(而有些优秀的APM工具是通过采样上来的调用链进行加工处理,再来产出相应的指标,这在准确性上会有一定的丢失。)
2、线程栈捕获
因为是JAVA自动埋点的原理是对已知的框架进行字节码加强,当某框架不在已支持的范围内,那么这段访问的信息就不会被记录下来。ARMS可以通过设定调用超过一定时长后,可以通把整个线程栈捕获下来,这样我们就可以通过线程栈的分析进行补充定位。
3、线程分析
ARMS可以通过线程分析页签,清淅地看到各类线程的资源占用情况。例如可以知道当前的某线程池线程数是多少, 占用cpu最多的线程是那个, 占用的百分比情况,并且可以看到线程的运行状态。
4、业务关联日志
ARMS这边可以通过给合传统的log4j等技术,在输出业务日志上可以把相应的TraceID 就像线程ID那样通过方便的配置就可以与业务日志同时输出。另外,ARMS与阿里云的SLS进行整合,可以通过ARMS的页面方便地根据调用链的TraceID查找到关联的业务日志,这样需要结合业务日志定位时,更方便实用。
5、智能合并能力
ARMS对于相同的调用,例如递当,循环会进行智能合并,显示循环的次数,执行的最大时长,最小时长,平均时长。
image.png
6、主动诊断能力
ARMS提供了主动诊断能力,可以通过选定具体的时间,执行主动诊断,ARMS会分析这一段时间内的应用运行情况,自动总结这一段时间内的问题,并且结合阿里的经验,产出具体的报表。我们依据这个报表,可以加速我们的定位与优化。
7、丰富的报警能力
完善报警体系,ARMS提供了丰富的报警规则,我们可以对相应的规则进行开启/关停,编辑,这样可以快速搭建报警体系。在报警通道方面,可以直接发对接钉钉/WebHook/Email/短信网关等。

运维能力上的优势

1、 按需监控启停管理 
通过ARMS的管理控制台,我们可以批量在管理应用的启停,可以一键停止所有的ARMS监控,也可以一键启动相关应用的监控。非常符合上云的按需要使用观念。
2、动态采样率变更
在面对特殊的时间点或者异常出现机率的时候,我们希望动态调整采样率,例如通过调大采样率来捕获这些概率极少的调用链,借助ARMS的配置管理,我们可以非常方便地把更齐全的调用链收集起来;通过调小采样率来保证存储空间的合理使用(其它的APM工具在做采样率的变更时,需要应用的重新配置,启动,这不但处理起来麻烦,并且影响业务的边续性,在实际操作上很难下定决心去在运行期间中断业务去做改变采样率的变更。)
3、 绑定参数的开关
虽然很多APM工具都可以提供绑定参数的功能。但很多时候,如果对于业务数据敏感的系统,并不希望这类APM工具在非必要的时候采集SQL/API的运行参数。所以ARMS在它的配置管理里提供这么一个功能非常有意义,也就是当需要收集这些运行的业务参数进行问题定位分析的时候,那么只要打开就可以了,使用完毕后,再通过把这些开关关上,那么就可以保护我们的业务数据不外泄漏出去了。
4、接入简易
可通过更简易的方式如阿里容器ACK/EDAS/SAE等各种非常便捷的接入方式,只需要简单的YAML注解或按钮即可完成接入。
5、 组件稳定免运维
因为ARMS是商业化的产品,所以所有的组件都是不需要我们使用方运维的。如果使用开源自建,那么我们就需要对日志收集,计算清洗服务,存储产品本身进行运维,包括相应的集群规模,清理处理,扩容处理,如果在峰值过后,不进行资源回收,也会产生额外的使用浪费。

成本使用上的优势

1、 ARMS是按接入节点,接入的小时(时长)计费的,这样可以充分发挥云上产品的优势。按需要使用,按需要的应用节点付费。另外ARMS单纯地按照节点数来计算,并不受采样率的变动而产生变化,这样对于大采样率的应用是有一定的优势。
2、 ARMS有相应的资源包,可以通过购买资源包的方式进一步节省费用。
3、 因为产品的组合因素,ARMS如果搭配阿里云的容器(ACK)使用,计费会自动5折。

最后,这里列一下开源与ARMS的一个成本的比较供大家参考:
image.png

备注

1、开源的按照统一统计数据存15天,全量明细数据存3天计算(ARMS的数据是全天24小时使用,存储60天,在非容器下按年包折下来的月费用。)
2、人力成本以具有开发能力的运维人员月薪3万计算。人力成本,主要参数变动带来的发布,后端系统的不稳定带来的效率损失,后端系统的维护操作。中大型的会做一些定制的开发(例如采样的动态配置化生效)

综述

在阿里云上,ARMS在APM层面提供了足够丰富的功能;可以友好地运维操作;另外通过合理地按需使用,结合资源包,以及容器的方式运行,使用起来还高效与节省。作为基础设施的实用监控,不重复发明轮子,不重人力资源投入,综合考虑各方面因素,最终选择使用ARMS。

 

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机、IoT 设备都有漏洞?专访以色列老牌安全公司 Check Point|拟合

从无序中寻找踪迹,从眼前事探索未来。 2021 年正值黄金十年新开端,CSDN 以中立技术社区专业、客观的角度,深度探讨中国前沿 IT 技术演进,推出年度重磅企划栏目——「拟合」,通过对话企业技术高管大咖,跟踪报…

从零入门 Serverless | 函数计算的可观测性

简介: 本文主要分为三个部分:概述中介绍可观测性的基本概念,主要包括 Logging、Metrics、Tracing 三个方面;然后详细介绍函数计算上的 Logging、Metrics、Tracing;最后以几个常见场景为例,介绍在函数计算中…

宜家:打造新零售时代的智能客户身份管理系统

简介: 宜家选择了阿里云应用身份服务(IDaaS)来为其提供一个包括统一认证、统一账户管理的CIAM解决方案,为所有前端提供统一的安全、可扩展和可靠的身份认证服务,包括灵活的认证配置、单点登录、多因素认证、社交平台登…

生意参谋牵手Quick BI 让数据再次驱动店铺经营

刚刚过去的一周,超两百家店铺体验了阿里巴巴官方全渠道、全链路、一站式数据平台生意参谋推出的全新功能,自助分析。 作为生意参谋联合Quick BI的初次尝试, “自助分析”面向店铺提供自助分析解决方案,支持店铺个性化数据报表制作…

到底是谁发明了物联网?

来源 | 鲜枣课堂作者 | 小枣君头图 | 下载于视觉中国1965年的越南战场,美军正深陷战争泥潭。突然有一天,北越士兵在胡志明小道发现了一些奇怪的东西。这些东西看上去像树枝,但实际上由金属构成,里面包含一些神秘的电子元件。这些士…

八种经典排序算法总结

前言 算法和数据结构是一个程序员的内功,所以经常在一些笔试中都会要求手写一些简单的排序算法,以此考验面试者的编程水平。下面我就简单介绍八种常见的排序算法,一起学习一下。 一、冒泡排序 思路: 比较相邻的元素。如果第一…

docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_部署01

文章目录1. 创建onlyoffice容器2. 启动在线案例3. 开放防火墙4. 浏览器验证5. 上传文件测试6. 在线编辑7. 测试主页面1. 创建onlyoffice容器 下面命令作用:拉取镜像、映射宿主机端口和docker内部端口、创建宿主机和docker容器挂载目录、拉取指定版本的onlyoffice/d…

漫画 | 程 序 员 脱 单 指 南

本文纯属娱乐,切勿模仿,模仿后果难以评估,务必小心再小心,谢谢!

基于JindoFS+OSS构建高效数据湖

为什么要构建数据湖 大数据时代早期,Apache HDFS 是构建具有海量存储能力数据仓库的首选方案。随着云计算、大数据、AI 等技术的发展,所有云厂商都在不断完善自家的对象存储,来更好地适配 Apache Hadoop/Spark 大数据以及各种 AI 生态。由于…

docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02

文章目录一、 onlyoffice添加中文字体1. 下载字体2. 上传字体3. 删除原版自带字体4. 字体复制5. 安装字体6. 重启容器7. 清除缓存8. 效果验证二、 onlyoffice添加中文中文字号2.1. 拷贝配置文件2.2. 编辑配置2.3. 上传配置2.4. 配置覆盖2.5. 重启容器2.6. 效果验证一、 onlyoff…

重磅报告 | 《中国企业2020:人工智能应用实践与趋势》

文章导读 AI设计师“鹿班”每秒可设计海报8000张,赋能30万商家备战“双十一”;光伏电池生产商天合光能运用人工智能算法将A品率提升7%,创造利润数千万;AI帮助优酷分析舆情选出爆款影视剧IP,打造了10天播放量超过60亿的…

OnlyOffice 修改文件大小限制

文章目录1. 拷贝配置到宿主机2. 配置调整3. 配置覆盖4. 容器重启5. 启动案例测试6. 查看日志1. 拷贝配置到宿主机 docker cp 58f75f6ca6f7:/etc/onlyoffice/documentserver/default.json ./2. 配置调整 vim default.json默认下载大小"maxDownloadBytes": 104857600,…

启明星辰集团:文化筑底,战略引领信息安全之路

4月30日,“启明星辰集团年度业绩说明与战略发布会”在上海成功举办,启明星辰集团总裁严立、集团CFO张媛、集团董秘姜朋出席会议,为投资者、用户、媒体解读企业未来战略布局,就行业状况、生产经营、财务状况进行说明,探…

【数据湖加速篇】 —— 如何利用缓存加速服务来提升数据湖上机器学习训练速度

简介: JindoFS提供了一个计算侧的分布式缓存系统,可以有效利用计算集群上的本地存储资源(磁盘或者内存)缓存OSS上的热数据,从而减少对OSS上数据的反复拉取,消耗网络带宽。 背景介绍 近些年,机…

OnlyOffice 二次开发定制化部署

文章目录一、与前准备1. 功能点总览2. 上传中文字体3. 上传镜像包4. 创建目录5. 字体挂载6. 加载镜像二、与前准备2.1. 创建容器2.2. 浏览器验证2.3. 在线编辑一、与前准备 1. 功能点总览 功能兼容性说明并发20限制去除√并发数999中文字体√41种常用字体中文字号√文件下载大…

何为“边缘计算”?

来源 | 无敌码农责编 | 寇雪芹头图 | 下载于视觉中国在云原生除了K8S、微服务,还有...?中和大家聊了下关于云原生的话题,在云原生的概念中比较明确的一个特点就是云原生是基于云计算的。在这种模式下用户的计算请求会被发送到云端服务进行处理&#xff…

用尽每一寸GPU,阿里云cGPU容器技术白皮书重磅发布!

简介: 云原生已经成为业内云服务的一个趋势。在云原生上支持异构计算有助于提升CPU的利用率。一文分析业内主流GPU共享方案,并告诉你阿里云cGPU牛在哪里!阿里云异构计算推出的cGPU(container GPU)容器技术,…

钉钉轻松顶住信息洪流的原因,竟然是它

简介: 在9月18日云栖大会上,阿里云智能高级技术专家木洛就为我们详细介绍了,表格存储Tablestore是如何助力钉钉消息存储架构的升级,帮助钉钉顶住持续增长的流量。 今年的疫情来势汹汹,新冠病毒作为2020最具代表性的黑…

说到 SASE,新的安全范式有哪些

来源 | 好奇瞅瞅责编 | 寇雪芹头图 | 下载于视觉中国前言本系列目录:深入理解SASE(一):什么是云化深入理解SASE(二):网络云化及演进方向深入理解SASE(三):什么…

从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践

简介: 本节课程包含三部分内容:单应用的负载均衡配置、多应用的路由策略配置以及自建微服务网关。 作者 | 落语 阿里云云原生技术团队 本文整理自《Serverless 技术公开课》,“Serverless”公众号后台回复“入门”,获取 Serverle…