粉丝2580获赞1.3万

今天给大家讲一下什么是 apm 系统以及 apm 系统的基本原理。 嗯,现在市面上大部分的 apm 系统都是基于谷歌的那个 dape 的那个原理实现的。然后,嗯,这里呢,大家看到一个一个势力,哈,是说,嗯,这个一个是,嗯,有一个鸡群, 然后有一前端,前端 a, 然后呢中中间有两个 b 和 c 两个服务,然后呢后,这个这个服务后面呢?还有两,就是有一服务依赖,然后呢?嗯 嗯,分别是 d 和 e, 嗯,这个时候呢,当一个用户发起一个一个请求的时候,首先会达到 服务 a, 然后呢, a 分别请求 b 和 c, 嗯, b 的服务处理完以后会响应 a, 然后呃 c 的服务请求的时候,他还依赖 d 和 e, 嗯,等待 d 和 e 的结果返回以后 c 再返回 a, 嗯,首先,嗯, 如何实现追踪呢?嗯,呃,顾客的 day 盘设计了下面一个概念,然后实现练录。首先有一个 span 的概念,就是请求中的基本工作单位,每一次练录调用, 呃呃, rpc 的也好,或者是 restful 啊,或者是数据库调用码,就是任何调用它都可以 把它称为一个 span 最小工的单位。然后呢, span 的数结构呢?大概是这样的,一个是拆 sid, 当然也可以可以是就是数字类型的,就是思维的。然后 name, 呃,然后是 id, 这个 id 是 spin 的 id, 就是当前这个 spen id, 然后是他的 parent id, parent id 是他上层服务的 spen id, 当是潘特 id 为闹的时候,代表是是那个最外层的这个 a, 就类似类比这个,哎呀,这其实是就跟,就是请求的只最最跟上的服务,然后这个,呃,这个呢是就是意思说 是有一些其他信息吗?这些信息的话,呃,可以,可以,就是这这这个就是自定义的了,这这个可以放很多信息。嗯,是不是然后呢?刚才说到那个 spa 最小功能,然后接下来就是踹死,踹死呢是 一次完整的炼入吊用。就比如说我一个接口从用户端发起,然后呢他掉后,后面掉了很多个服务,最后最后响应用户,那这整这次吊用成为一个 ps, 然后会生成一个 ps id。 嗯,通过通过这个,因为刚才也看到啊,会形成很多个 span, 这个数结构会形成很多个 span, 然后通 通过这个每个 span 都会携带一个串 cid, 这个串 cid 就是当前调用的串 cid, 这样的话就根据这个串 cid 就可以串联多个 spa 形成树状结构,甚至说是调用结构,或者依赖这种调用树状结构。然后 嗯,最后呢?嗯,就是形成一个形,形成一个调用数。 然后呢? apm 呢?他,呃现在市面上有几大块吧? 嗯,就是这个 apm 系框架的几个,嗯,几几几几个重要组成部分。一个是探针,探针呢是说这个呢是从客户端,从端到服务到数据库 任意一个地方,他的调用环节都可以放上自就所谓的探针,是说这这个能够和前整个那个链路串起来,然后去 去发发送消息,发送给收集器。收集器呢?是说我就是每一个一个调用环节生成的 span 数据,然后会发给这个收集器让他保存下来。 然后呢?那加这个呢?接下来就是三,就是存储,就是存储这些嘛?这是收集,收集完了再存储,存储,然后呢?存储完了以后呢?其实肯定需要一个页面去展示这个整个数据调用的情况嘛, 然后一个合格的 apm 系统,就是各个这几个重要的这个 各个组合部分是稍微有一些差异的探,就比如说探针的性能,这个 aj 呢,他的吞吐量也好啊,他的 cpu 啊或者内存呢,都会影响他的他的效率,甚至说这个探针本身,如果说 当这个服务当负荷比较大的时候,如果说这个探针的实现方案不是特别好的话,会影响这个本身这个服务的运行。嗯,还有这个受气气,受气气这个是 就是也一期收集器,这个基本上这个方案其实有很多种啊,有一些是类似于先 先生成本地的一个日志文件,然后呢通过那个,呃, fube 他或者是这种就是类似于同步数同步,这个日就是集群同步这种这种 工具去把这个 gub 的统一收集到那个 es 也好啊,或者是这个存储的地方,然后,嗯,支持横向扩展,意思说我有多少个服务,我都可以去补多少个这种这种收集器。 嗯,全电路分析,这个是说就是这就是本身 apm 的一个一个重要的一个功能吧,咱把信息收集出来了,那为什么要解决,要解决什么问题呢?其实说要整个分析 整个这个系统,从从发际起球到整个响应,整个所有链路里边,哪个环节耗时长,哪个环节有异常,或者说甚至说他的频发高啊,这些都可以去分析这个东西。嗯,还有就是对开发是否透明 容易开关?一直说你这个东西是能够能不能说就是无业务代码侵入的那种方式去收集这些这些书记的,还是说是需要手动去 部署,或者是是说改一个配置加一个配置,甚至说要手动去写一些,写一些那个呃,拦截器 去去说。还有就是这个完整的貂绒垫已经脱谱,意思说这个脱谱关系就是很多系统这个脱谱关系是比较模糊的,那这个脱谱关系是否能够自动,根据 自动这个根据调用收集起来,甚至说他能够汇种啊,自自动去生成那个特殊关系,这也是一个重要的一个方向。嗯, 呃,这其中有三个目标,三个框架,现在比较多的又一 skywalking, pinpoint, zipkin, 这三个是各有各的优缺点吧?然后大家后边的话有感兴趣的可以呃,在网上多了解了解,嗯。
