蓝印花布的历史由来( 二 )


,三者主要的区别体现在埋点方式的差异上 。
4.1 skywalking

蓝印花布的历史由来

文章插图
SkyWalking 是观察性分析平台和应用性能管理系统 。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案 。
Skywalking采用探针的方式进行埋点 。以java为例,Skywalking只需要在java程序启动时指定其为java agent即可,以这种二进制注入的方式,拦截应用程序的流量 , 截取其中的链路流转信息 。Skywalking支持多语言探针,提供了Java,.NET Core和Node.JS等主流开发语言的探针插件 。

蓝印花布的历史由来

文章插图
探针埋点示意图
4.1 istio
蓝印花布的历史由来

文章插图
【蓝印花布的历史由来】 Istio提供了 Service Mesh 方式服务治理的完整的解决方案,服务运行的监控数据可以动态获取和输出,提供了强大的调用链、监控和调用日志收集输出的能力 , 通过非侵入的方式提供了服务的连接、控制、保护和观测能力 。
Envoy代理埋点 。在 Istio 中,所有的治理逻辑的执行体都是和业务容器一起部署的 Envoy 这个 Sidecar,拦截所有的流入和流出业务程序的流量,根据收到的规则执行执行各种动作 。
Iptables 脚本通过 Iptables 规则拦截 pod 中流量,并发送到 Envoy 上 。Envoy 拦截到 Inbound 和 Outbound 的流量会分别作不同操作,执行上面配置的操作,另外再把请求往下发,对于 Outbound 就是根据服务发现找到对应的目标服务后端上,对于 Inbound 流量则直接发到本地的服务实例上,Envoy在此进行埋点,截取Inbound和Outbound的链路信息,参照OpenTracing标准生成标准的调用链数据 。


蓝印花布的历史由来

文章插图
Envoy埋点示意图
4.1 zipkin
蓝印花布的历史由来

文章插图


Zipkin分为client端和server端,client端需要应用系统代码引入,并可以进行灵活的二次开发,client端实现数据采集,server端负责链路数据的分析入库等 。
框架埋点 。应用系统引入client端代码,应用请求会被Trace框架拦截,将调用链信息添加到Header中,并传递到后续的服务调用中 , 每次跳转都会传递调用信息,上报trace信息(时间戳、耗时等),server端的Collecter会汇总所有的跳转信息,合并成一条完整的调用链信息 。


蓝印花布的历史由来

文章插图
框架埋点示意图
4.4 综合对比

蓝印花布的历史由来

文章插图
综合对比图
5、参考文献1. java agent 详细介绍
https://segmentfault.com/a/1190000015977174
2. Skywalking分析
https://blog.csdn.net/Saphulot/article/details/81739411
3. zipkin的工作原理浅析
https://blog.csdn.net/shida_hu/article/details/89450177
4. Istio 调用链埋点原理剖析—是否真的“零修改”?
https://mp.weixin.qq.com/s?src=https://www.masfls.com/knowledge/11×tamp=1581385567&ver=2151&signature=msOWkdym*Cm-1XIXl6VFAlsjQlTOFmXZB4NjcMuXVnTw1iV*SE3Nbew4rGsKhPCQdxg6vfKZ18jeVA2JoqrFNOnscHI21R3JCcNYK-2jub5DMYeDoW43iM4*Xx5PDBEX&new=1
5. google dapper论文 中文
https://blog.csdn.net/yangzishiw/article/details/79402084
,

相关经验推荐