[关闭]
@gaoxiaoyunwei2017 2019-08-30T11:05:55.000000Z 字数 11522 阅读 704

Apache SkyWalking的观察之道

彭小阳


作者简介:高洪涛, Apache SkyWalking的核心贡献者,美国Servicemesh的一个供应,Tetrate的一个创始工程师,曾在华为云工作。
今天这个是分享的主题,包括四个部分。
01.png-156.7kB

一、SkyWalking的历史

SkyWalking的历史,这个东西最早是在2016年就已经产生出来了一个出行,它最早作为Java trace监控来使用的,Java trace在这个领域,大家如果听说过这个trace监控的,刚才颜老师也讲过了,调用链的跟踪,大家知道这个概念的有多少,用过的呢?还不错,有用过商业产品的吗?没有,都是自己用开源的。
最早这是国内来讲,就是属于第一款开源的调用链的一个产品,也是在世界范围内比较早开源的一个调动链,因为来讲比我们再早可能就只有Zimking,我们跟Zimking完全是两个不同的套路,因为Zimking大家知道它是作用在中间的,最早是完全手动的,比如说它Big brother整个B3的协议,也是为了大家更好的做扩展而使用。
我们最早就是面向于自动的探侦,就是说你加了我们这个探侦以后,基本上你的代码是不用带动的,所以我们最早的一批用户基本都是运维,最早的用户很少有开发,因为运维对这个事情就比较感兴趣。
02.png-25.6kB
紧接着在2018年的时候,我们那时候已经进入了Arbaqi基金会的孵化器,进入孵化器以后,我们做了比较大的调整。
第一点就是从简单的一个Java社区扩展为一个多元社区,这里面最重点的一点就是Donat,这个我们主要是上海的贡献这来做的,目前Donat社区里面,这个SkyWalking是唯一可以用的开源调用链产品,而且是世界范围内唯一可以用的,这个在Donat社区里面影响比较大,因为我们现在有些包括Selag群里面,好多用户都是Donat社区里面过来的。
紧接着在动态方面,我们有Node这样一个供大家用的,Node主要是后台的,我们这个前台目前还不包含。PHP最早有好几个版本,最早可能是当当网当年提供了一个版本,然后目前来讲我忘了是金服还是哪的同学,正在重新重构整个PHP的版本。
另外,在2019年我们面向ServiceMesh,后面我也会讲,大家有听说过ServiceMesh的吗?对于ServiceMesh有多少?还不错,因为我去年讲的时候,还就有一两个。我们在2018年,2019年之间,对ServiceMesh做了一个集成,我们主要是跟Eso社区做合作,然后来做了互相的支持,目前你可以去Esotaleimantri的页面里面,可以看到Apache SkyWalking的接入模式。
另外,我们UI做了一个这样的拓展。目前来讲,我刚才看了整个项目的Sta可能在9000多,可能今年再过几个月又突破10000。另外来讲SkyWalking是怎么在Apache里面过这一圈的,最早2016年的时候我们开始,2017年的时候提的申请,进Arbaqi基金会其实有点像进其它西方组织都是类似的,最早你得有介绍人,基本上没有介绍人是不行的。
03.png-33.9kB
因为当时我们刚进的时候,Arbaqi项目还很少,就是中国人还很少,当时只有Kally一个,所以说我们找了里面几个华人的成员,这些人基本都是IBM、Google,还有Rliehand来做我们的成员,你需要有3个介绍人,这样共同把你介绍到孵化器。
然后,Arbaqi来讲它对这个项目有什么要求,大家可以自己留心一下,就是说它并不是说你的项目功能有多好,或者说你的功能有什么独创性,有独创性是一个加分项,它不是一个必要项,它其实是对你整个项目的管理有比较高的要求。
项目管理来自于哪几个方面?
第一,你是有一个社区的,而不是你有一个人或者几个人来控制的,社区是什么贡献?就是你主要几个贡献者,至少不能是一个公司的,这个就是对有些刚要进孵化器的项目反应比较大的。
因为大部分我们想做开源出去的,基本上都是一个公司背景比较多,特别像当天Double进的时候也比较麻烦,就是阿里的Double它进的时候,因为它里面的人员全都是阿里的,后来它故意的去吸收了几个国外的,包括几个印度人进来以后,整个Diversity的性质发生一定变化,这样是比较容易进到孵化器里面。
孵化器到毕业来讲,主要是进行一些IP的清洗和发板,因为你进到孵化器以后,你整个产权已经属于Arbaqi基金会了,前一阵大家也知道我老东家被封那一阵,Arbaqi也发了生命,这个当时有很多人比较担心,国内的一些人比较担心的一点是怎么能够避免这个公司在法律上面有问题,如果你的IP清洗的比较彻底,其实对公司的本身影响是不大的,因为它整个的产权也不属于你这个公司。
另外来讲,在毕业阶段我们主要至少发了3个稳定的版本,而且我们的社区扩大了1倍多,我们原来是从10个人核心的贡献者,扩展到20多个核心贡献者,而且这个人员不仅来自于中国,还有日本,东南亚的人,然后只有一个欧美的。
这个可能还是文化的问题,其实说的不是特别好,但是我们整个的贡献过代码,我们刚才说的是核心的代码贡献者,我们翻了一倍,然后我们贡献过的,从最子可能有30几个贡献过的,我们现在可以增到200多个,曾经在这个项目提过代码,所以这点对于我们这个毕业帮助比较大。
04.png-76.7kB
下一章来介绍一下整体的功能图,让大家心里有个评估,核心来讲,它有一个接收器,接收SkyWalking它自己有的一套传输协议,在分析层面有2个分析器,一个是Tracing的,就是面向于全链路跟踪这一段,还有一个是Metric的,这是有一些监控指标的。
另外来讲,它有一个核心的分析器,同时配一个核心的分析语言,然后我们有一套自己的自定义语法,有自己的词法语法分析器,来分析这个语言而产生相应的流失数据。我们能接的数据,因为我们这个接收器分2类,我们能接的数据本身像上面这个部分也分2类,希望类就是Tracing跟踪的,这边可以支持我们自己的协议,当然肯定能支持我们自己的协议。
另外来讲,我们也可以接Zeepking的协议,我们既然能接Zeepking,我们就能接Yager的,Yager的协议当然就是复用的Zeepking协议。然后,我们协调在跟Opensansers谈,它是Google提的一个指标,不过他们最近人变动比较大,离职情况也比较严重,不知道以后怎么样。
另外来讲,从Baichoke这个层面说,我们以后完全支持了Esco的两种方式,第一种模式就是Makiser模式,第二种模式其实也不是Esco的,是Aovoed exserslog service的模式来接收数据。
存储上因为我们是一个比较高定制化的,最后一章我会给大家介绍。然后我们现在的主力存储是Elasiserach,然后我们同时也可以切一些关型数据库存储,因为我们有一些用户来讲,他们运维Elasiserach比较麻烦,而且是云化产品目前还是比较贵的,所以有些关键数据库。
然后,今年年初的时候跟Taidibi那边谈,他们对我们的底层存储也比较感兴趣,目前他们正在做测试,因为我们给他的量,跟他们正常接业务的量是不一样的,
而且数据的模式是不一样的,所以他们正在做内部测试。H2是我们最早做一些评估模型的,比如说你自己想玩一下SkyWalking,你可以用H2,你的进程在的话那数据就在。
另外,这是我另外参与的一个开源项目,京东的Sanesfier,这个作为一个对关型数据这种吞吐量的补充,这是整体的一个情况。

二、SkyWalking是为微服务来生的

这张图给大家介绍一下,因为我们从传统架构转到了微服务架构,好多人觉得我只是说把传统的API边界变成了一个网络化RPC调用的这么一个边界,看起来是这样的,实际上是会变成一个比较过拟合的这种情况。
各个服务耦合在一起,让整体的控制会比较难,原来很简单的一个内部的API调用,现在变成网络调用,它的延迟、它的吞吐量、它的可用性,这些指标都会对整体的服务有比较大的影响。
为了解决相关的问题,最早来讲有一些相关的微服务架构,我这边没画W架构,而是用现在比较常见的Service BUS这种架构,这种在下方比较常见,因为出了中国以后,几乎就没人用double了。
05.png-53.2kB
它基本上还是一个注册中心,两端是有这样的语言类的SDK来管理我们整个服务的调用,这是一个比较常见的一种模式,我们应该可以认为它是属于第一代的RPC或者微服务管理的模式。
目前也还在主要使用,不仅仅是在中国在主要的使用,因为我跟很多的在线的一些公司在聊,除非一些现在比如说实行Service比较重的这样一些公司,大部分的公司还都在用这个东西来做,而且有一些企业,因为这个模式在double出来那几年,有好多咨询公司,给传统公司做咨询。
因为那个时候正好赶上了一个什么潮流呢?大家也知道互联网化,传统企业要互联网转型,当时互联网转型,这些咨询公司给的建议就是用这种模式去做,当时也做了好多的落地,比如大企业,像TCL也跟他们聊,他们也落地一部分像这样的服务。
所以,目前来讲,这种模式虽然是从现在这个角度讲,稍稍有点过时,只能说是稍稍有点过时,但是落地的还是有很多的。
06.png-70.9kB
另外一种模式,应该是从3年前开始逐渐兴起的,就是Service Mesh模式,刚才颜老师也讲了Sidecar,他是用Sidecar去做了这种流量的导流,然后我们把流量导出来,导到另外一个点上,然后再给他流量再导回来。那这种是对于测试它的一个方便,对于线上像Sidecar模式,它就会另外的给予其它的方便。
我认为Sidecar模式是有三个层次的对我们整体的IT界影响比较深远的,第一点是从架构设计层面,它把纯的一些非业务性需求,以前做架构总是在讲非业务性需求,非业务性需求十几个门类,那么多,把那些非业务性需求提取出来,然后让它脱离到原来的代码。
所以,从架构设计层面来讲,它可以不太考虑一个具体的业务场景,给一个统一的架构设计方案,从架构层面是这样的。从我们整个的这个IT,我们的内部组织,它又变成另外的一个形态。
正因为有这样一个组织形态的出现,那么比如说我们原来的架构部可能是偏开发一些的,后来像是目前来讲比如说做Service Mesh这样的一个部门,我去了解它现在整个架构部门有点是偏向运维侧的,要不是它把这个架构部门独立成为一个单独的部门,要不是它把架构和运维合在一起,像京东的数科,数科就是白条这个部分,它们的架构部和运维部是在一起的对外就叫运维部。
但是它把原来的一些应用架构放在这个部门上,因为它们要做这样的,把中间件包括这种模式要放在一起,这是对我们组织有比较深远影响的。
然后,这个影响带来一个什么样的结果呢?如果你把运维的部门和你的架构部门,把你的平台部门放在一起,那这个东西是能商业化的,那我们就要说第三点,这个对我们带来另外一个深远影响就是说整体的方案就会可以被商业化,我现在所在的公司就是做这个商业化的。
大家可以试想一下,如果这个东西还是一个应用层面的产品,还是个SDK,其实做商业化是比较困难的,正常来讲研发部门的采购能力是有限的,基本的采购能力或决策权基本还是在运维层面,我们的成本控制,包括我们的预算批复,基本都是通过运维这边来走。那么你不把这个东西跟运维放在一起,你很难去推这个商业化。
所以,我认为一个小编车的模式,Sidecar模式,最终会导致我们整个行业的影响,也同时导致了比如说我们DevOps整个一个内涵。以前我们dayoubs都讲CACD,这原来是最核心的内涵,那么现在来讲,由于这种模式的产生,我们整个的,我们可以把Ops写在前面,尤其是以运维为主的研发,它逐步成为一个行业,这样一个领域。
另外,我们刚才是选了几个小点,从宏观上来讲,左侧这个图很形象的表明为什么叫Service Mesh,整体就是Mesh结构,调用的是一张网状的图,两点之间调用的关系是比较明确的可以显示出来。
Service Mesh从总体上来讲,它有一个这样的控制中心,去给实时的动态去下发,给Sidecar。然后底层网络基本都是再等于是二层打通的这样一个网络。
所以,没有控制中心从内部看,它是这样一种互联的网络形态。有控制中心,它是一个以中央形式下发控制的么一个形态,这是整个Service Mesh在形态上的一些比较有趣的点。

三、观测手段

我这边来介绍一下我们整个的微服务的发展历史,主要是给我们观测性做了一个铺垫,这个铺垫有点长。
这张图是每次都讲的,每次介绍O11y,因为大家都喜欢缩写嘛,像Observability一般叫O11y。O11y会包含三个方面的内容:
07.png-33.3kB
1、logging(日志)。
2、Metrics Monitoring(对于指标的监控)。
3、Distributingw Tracing(全链路的调用)。
三个点来解决三个问题,三个点有三个自己的特殊性,O11y的特殊性就是比较容易、比较灵活,是偏研发侧,像运维是不太能给这个东西加Logging的,我只能改改这个日志级别之类的。但这个具体出什么日志,基本都是研发来控制的。
所以,它可能是偏向于一些定位问题,它第一点是比较灵活,但是它最大的问题是什么呢?它的代价比较大,如果我要是平时来搜集日志的时候,大家可以发现这个日志大部分是没有用的,我平时可能只是收集放在那儿,它有用的时候、产生价值的时候,往往是我们系统出问题的时候。
但是有可能是像这种目前我们常见的收集模式,你出问题的时候,有可能你整个系统包括你的日志搜集都会有点问题,而导致这个日志并没有被搜集上来,这是它的一个问题。
08.png-108.7kB
然后,Metrics,这个是一个比较偏运维方向的,它最大的好处就是解决了logging它产生了大量、无用的数据,Metrics产生的一个我确定的,要观测的一个指标,而且它这个量是可控的,比如说我们用拉取采集的模式还是用推送的模式,它都会产生一些少量的数据。那这些少量的数据可以代表比较丰富的意涵。
但是,它的缺点也显而易见,它的灵活性比较差,我只能对一些我比较预计的指标做一些买点和采集,如果不预计的一些或者是说不能够以单值表示的这些值,其实是不太好看的,而且它最大的问题是它没有上下文,因为我一个日志过来,我可以知道我前面调的是什么,后面调的是什么。
但是Metrics来讲的话,我只能看到一个值,我其实没有一个上下文的概念,对我定位问题其实没有什么特别大的帮助,所以它更偏向于监控层面。
然后,Tracing是相对于Logging或者是Metrics是比较新的一个概念,它其实是将Logging的一部分做了一个上下文的拓展,因为我们微服务的这个概念,因为我们的后台微服务特别多,如果我要定位问题的话,我单看一个日志,单看一台机器的日志往往是不够的,但是你们说OK,把日志收集起来呢?
但是我不知道我这次调用的话体现在哪一台机器上的哪段日志,那么我们怎么把这段信息能给串起来呢?其实这个Distributing Tracing是提供了这么一样帮助。
刚才上一个演讲也提到了,他大家实验的方式就是通过像HTTP或者RPC有一些额外扩展的字段,记了一个所谓的全局Contacts的信息,这样的话去产生这样的一个链路的过程。
它也有Logging的问题,它的量会比较大,而且如果我要想盯这个问题的时候,其实也是很难去找的。但是,这个也可以通过一些优化手段来做,可能后来我们会再去介绍一下。
这边来讲,就是更细一步把我目前的这个观测性做了两方面的区分,通过刚刚那一页PPT的介绍,大家也了解了,一类的是面向于Debugging这个层面的,这是为了定位问题。另一类的是面向于监控稳定性这一层面,所以我们的使用上像Metrics,它有一部分的内容,加上Tracing和Logs,Logs有个特殊的比如说Events这种东西,它就是为了解决一些未知的问题。
另外,这一部分就做到我们的DayWops的层面来讲,就会偏研发一点,研发可能会更观测这一侧的问题。另外,一部分预警的Metrics,包括一些Healthchecks这种检查,这种的话就是偏运营侧的监控,它对整体的服务稳定性会有一些相关的影响。
所以,针对于这两个不同的层面,其实我们在自己设计我们自己的观测体系的时候,可以有不同层面这样的一个偏重。
09.png-73.7kB
我们再回到我们这个图,我们刚才讲了Metrics、Logging、Tracing。我们来讲的话,SkyWalking目前有Metric和Tracing,我们正在做Logging,因为我们底层主力的存储是Inlsercs,我们这边会把它作为我们的底层存储,然后依托于像Tracing这样的模块来搜集各端的数据,日志数据。现在社区里有一部分的用户,它们现在已经做了这方面的定制,通过我们来讲就是把日志收集出来。
因为SkyWalking在Agent来讲,它会自动的去修改大家的比如说Java的字节码,会埋点。所以我们的有些用户用我们的Agent去自动的在它的业务代码里去加日志,也就是说你可能研发的时候它没有写那一段打日志,但是他用我们的这个Agent,让这个方法去产生日志,来做这种动态日志,这个我们准备把社区这些经验再搜集起来。
所以,SkyWalking未来会完全实现O11y全部的能力和范围,然后提供给大家一个统一的解决方案,这样的话包括你的资源利用率这边也能比较好,因为我们来讲做Tracing最早,常常面对用户的一个问题是你到底是有N比1的问题,就是我一台的SkyWalking后端的单点可以支撑前端多少台的服务。
因为这个监控本身就是一个成本问题,如果你是一比一,这个成本比较高,我一共业务就有五台,但是你后面做监控就要五台,这个肯定是不能被接受的。
所以,我们有很多的话来做这样的问题,那我们把三者融合以后,就可以达到一个整体的我们的代价比较小的情况,大家做包括日搜集,包括这种金融体搭建,大家面向微服务,如果做的话会发现这边的成本比较大,因为现在这三个方向都是三个独立的方向。
目前比如说开源界,包括一些商业产品,它都是一些独立的东西,这个独立的东西他们之间是没有交集的,有一些能合作的点他们其实就没有挖掘出来,这个是我们目前和未来主要致力于解决的一个最主要的问题。
说了半天也干巴巴的,给大家放段视频,这个是通过UI的界面展示,给大家展示一下SkyWalking的功能。
这是我们的登陆界面,登陆界面最近可能又没有了,这边它是一个全局的视图,我们有这个Service,Service就是一组进程的组合,然后第二个是可以选择你的这个访问路径的,第三个你可以访问一个具体的进程,这是我们的三个的一个选择。
下面这边它是各种大时报的,上面有一个Touba页嘛,你可以定制你整个Touba页的显示内容,你可以显示你全局的一个指标,你可以显示针对于Service的指标,还是针对于每一个UI的指标,还是你要看比如说GVM相关的一些GC等的情况。
我们目前还对Detbes这个场景做了相关指标的挖掘,主要是一些包括Topwnesco、一些慢查询之类的。
目前还有两个人正在做缓存类的,下几个版本可能会再推出。现在这个界面展示的就是如何定制化我这个页面,大家可能用过比如像Gerfanda之类,有具备类似的功能。
上面这个热力图就可以展示我们整个系统的访问量。这个是我们比较独特的功能,因为这个是做的Tracing比较核心的东西,就是Topu图,它能显示我们目前系统整个Topu的情况,系统Topu图其实我们以前刚做的时候,以为应用最主要的还是做线上监控,但是其实不是,最早我们的用户不是做线上监控的,最早的用户是给领导做汇报用的。
因为最早开始做微服务的时候,你测试环境做完了之后,其实我根本就不知道我这个系统到底长什么样,所以好多人就拿我们这个测试上来以后给领导去看,系统里面拆成这个样子了。后来包括一些性能测试,也用的比较多。
这边是展示的Trees的图,我们用两种Trees的模式,刚才看到了,我们是一个List的形态,现在刚才看到是一个树状的结构,我们又可以看到每个服务被每个服务包含。目前如果比如说有些错误的调用,这边会把这个调用站打印出来。
这是我们整个的告警流水,我们这个告警,我们可以动态设置法值,因为我们现在有一些动态配置了,然后我们有一些Webhoke可以去发,因为我们最早还做了比如钉钉和微信的Webhoke,在最近的版本已经删掉了,因为这个东西是有IP问题的,所以不能发版。
但是社区里面已经有了相关的一些插件,大家可以去用,这样就可以把我们的这样一些指标发送到你想要的端,E-Maill,包括微信群、钉钉群这些都是可以发送的。
10.png-44.9kB
这是整体界面的一个情况,我们说前几个是有Tracing的结构,我们现在看一下目前SkyWalking今年最重要的一个部分,就是对Service Mesh的一个支持,我们跟Service Mesh的支持首先来讲,是我们重点支持的,对于envoy的这个数据的采集。Envoy在这个应该是0.08这个版本,开始支持了对于它访问日志,通过GRPC形式的向外打出。
大家知道这个访问日志它就是我们一条一条的访问记录,但是envoy的访问记录它的一是有双端信息的,它可以显示它这个调用是从哪儿来的,将要到哪儿去。
所以,我们是采集它这样的信息,然后进入到SkyWalking内部,然后再结合外边的一些原数据,我们现在目前开源支持是Comntis,但是我们有一些用户现在是可以自定义原数据的注册中心,来帮助分析我们这个调用的情况。
然后,这个就是目前我们做ALS的调用结果。这个土如果大家有玩过Estou的,有多少人玩过Estou?我还做过背景调查。
人比较少,我就大家介绍一下,这个应用是Estou的一个Example应用,叫Boginfor,它模拟的是一个输电的微服务,前端顶在最前面的服务是Product Page (产品页面),然后它有3个版本的一个子服务,Review1、Review2,它每个书有一个评分的服务Reting,还有一个显示这个书详细信息的服务叫Detaile。
然后,根据我们采集到Avoei的数据,我们就可以帮助它去生成整个的调用情况,我们就可以看到,因为它做这个Reting后面有V3两个版本,我们就可以看到它的流量是打在哪个上面的。
这样有什么好处呢?其实大家现在做微服务有些滚动升级,包括你的回滚,你看到滚动数据的流量,放了多少比例在上面,显示实时的。因为我们大家现在做的时候,有可能我下了一个配置,我给他20%,它具体产生了20%,可能我们这边也给你一个精确的反馈。

四、SkyWalking的定制化

最后一章来讲,我们讲一下整个后端系统的定制情况,刚才在开场的时候,我也给大家介绍了一下SkyWalking是面向定制的,我们刚才说为服务而生,其实目前来讲可能就是为定制而生,这个也是跟其它开源系统还不太一样的。
比如说,其它的开源系统它是希望自己能打造一个闭环,我们其实是反过来,我们是能接更多的生态,这也是SkyWalking目前做的一个比较成功的关键点。
11.png-23.2kB
我们主要分两块:
1、Agent。
2、OAP。
Agent,就是为了采集用户的一些数据,然后产生的,我们有两类的Agent,一个是自动的,Auto的,Auto的就是以Java,Donat为主,这种Agent你安装以后,然后你只需要一个简单的命令把你引到你这个预形态,它的就要会自动的跟你相关一些配置去采集你的数据,将这个数据组成成后端能识别的一些数据遗片段,发送过来,这是自动探侦。
手动探侦目前我们只有Gode,因为手动像有些语言它不支持这些方面动态的去修改代码,所以说我们同时提供了相关的手动探侦,目前做Gode比较多,我们整个Go是今年刚发布的。
另一点,对后端的定制,我们后端的程序叫做OAP,就是说它整段的是Oshiyiwai分析的平台,它包括两个方面的定制,第一点比较常见就是OAL,我们的指标为了支持大规模的吞吐流量,我们采用这个流失计算的。
然后,我们为了我们整个的流失计算,去做了一门流失计算的语言,如果有这个方面的扩展或者定制,可以用这门语言比较轻松去扩展整个后台的分析指标,你的指标你都可以做一些相关的,根据你自己的情况做裁减。
另外来讲,后端这个OAL是比较重要的一块,但是其它的部分几乎也全都可以定制,包括我们刚才讲过,我们的接收器可以去做定制,而且可以在不改源代码的情况下定制,也就是说我们整个后台的OAP不仅是一个可运行的进程,它还是个大的SDK,你可以把它引入引来,然后可以随意的替换它里面的各种组件,增删都是没有问题的,前端的接收我们可以定制,中间的流程流转可以定制,存储也可以定制。
比如说,你有特殊的存储,最近我们有一些应该是欧洲的用户,他希望我们能够把这个数据存在Soer里,所以我们给他做了一些简单的交流,目前他在自己去实现把这个数据存在Soer里,我也不知道什么原因,他不想用Elaiserach,所以我们可以做各种各样的定制,这就是我们的一个特制。
12.png-79.2kB
最后一点写到就是Everything is Module,就是我们各种都是模块,各种都可以定制。通过这张图可以给大家说一下,我们目前Agent整个社群情况,这是Java体系的,别的语言体系还没有列,Java体系最大的一个社群HTTP Client,RPC的Prameworkn,还有我们JDBC,然后对NoSQL的访问,SQL的访问,MQ的访问,这是主要的几个核心。
然后,我们市面上常见的一些框架组件,应该是基本都支持的,主席你用的不是开源的,那就需要你自己去实现。比如,我举个例子,我们原来是有Oracle的,后来因为在Arbaqi清洗我们IP的时候,Oracle被迫的就拿出去了,这个东西如果你不是开源的话,你这个产权是有问题的。
而且Java来讲,我们做的是侵入式的,Oracle整个的Java是不开源的,但是我是把它编译出来,我知道怎么去改它的,这个东西是有法律问题的,所以说我们目前的插件基本上都是以开源插件为主,大家如果有一些商业插件,比如说一些人用阿里Edas之类的,用户可以自己去修改,根据你当时买的license的情况,你可以自己用我们的,你可以去修改,但是社区就不会提供这样的支持。
13.png-44.2kB
这个就是我们所谓的Streaming OAL的情况,它是为了Streaming的分析,它主要是作用在我们这个Metrics上,另外来讲它的语法比较自然,这里面我举个例子,比如说它从Endpoint提取Latency指标,我只要Endpoint1和Endpoint2这两个,别的我不要,我summary统计一下它99%的Latency,这样我就可以生成出来Endpoint99%,Latency的指标。
因为我前台的UI可以定制化,我生成这个指标,前台UI就可以直接去使用,所以我们前端也可以定制化,后端也可以定制化,如果你是想把我们的前端,好多的一些用户其实是有自己的UI,因为每个公司的UI风格不一样,他这块可以直接用我们的Grupuy的查询语言,来跟它的系统做一个比较深度的集成。
所以说,这边来讲主要是介绍一下我们在定制方面的能力。
我要讲的就是这么多,最后说一句,现在来讲,后端的包括微服务的领域,有大量的新技术,其实我觉得对所有人都是一个机遇,然后会产生一些新的门类角色在整个的体系之中,也希望有我们的用户助力,我也希望在我们社区能够向着比较新的方向去发展。
因为我们也在思考,下一步我们向哪个方向做过渡,所以我们现在触及了几个前沿的点,然后也希望有更多的人对开源有兴趣的可以加入社区,因为SkyWalking现在社区比较大了,有很多需要去社区进行帮忙了,不仅是说有代码层面的,还有一些是单元测试。
因为我们最近提升了一个朋友,现在是我们的Coom mentener,他没有写过技术平台这部分的代码,他主要是写单元测试和端到端测试,这个其实考验是比较大的,因为我们后台集成特别复杂,它把端到端测试最近加进来了。
其实,对我们整体平台提升性,稳定性的提升也是比较大的,而且我们现在的社区比较缺翻译,因为是Arbaqi的要求,我们的文档都是英文的,但是我们的英文文档是最新的版本,我们的中文文档可能会稍微落后。
大家对从英文翻译成中文感兴趣的,也可以加入进来,进入进来有什么好处呢?当然就是一个Title的问题,如果大家有githop的时候,你会看到你的组织里面就会有Arbaqi的logo,到时候截个图贴在自己简历里面,可能对大家以后的职业发展也有更多的好处,也仆役让大家了解一下整个世界目前的一些潮流。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注