Jaeger 插件开发及背后的思考

本文详细介绍了Jaeger插件开发流程,特别是gRPC插件的开发,包括Jaeger的架构、Go Plugin的原理和使用。Jaeger预留了StorePlugin和ArchiveStorePlugin接口,用于Trace/Span的读写操作。文章还提到了SLS Jaeger插件的开发,该插件提供了一种将Trace数据导出到SLS进行存储和分析的能力,以增强监控系统的分析和问题定位能力。
摘要由CSDN通过智能技术生成

随着云原生 + 微服务的推广和落地,服务监控也变得越来越重要了。中等规模的微服务场景下,运维同学已经无法通过日志还原请求的调用轨迹和请求所经过服务的执行耗时,更不用说去定位和分析服务异常根因,研发运维同学需要一个服务监控工具,它可以还原每次请求的服务调用轨迹以及服务执行时间,并以图的形式展现出来。分布式链路追踪系统孕育而生。

近些年市面上有大量优秀的商业产品,这些商业产品通常也叫APM(应用性能监控);比如国内商业公司有阿里云ARMS,听云,博瑞,云智慧等等,国外优秀的商业公司有AppDynamic,DynaTrace等等,它们在产品方面做非常完善,能够适配各种场景。同样地,开源也有非常优秀的解决方案。比如说 CNCF Jaeger,Apache SkyWalking,Cat, Pinpoint等。Jaeger作为CNCF毕业的顶级项目, 在云原生场景下,通常会成为运维同学首选监控解决方案。

Jaeger项目是Uber 在 2015 年开发的。2017 年,Jaeger 纳入云原生计算基金会(CNCF)的孵化项目,2019 年,Jaeger 正式毕业。下图是Jaeger架构图。图中包含两中架构模式,两种架构上大体一样,区别在于添加了Kafka作为缓冲,以解决峰值流量过载的问题。Jaeger Jaeger组件包括 :Client,Agent,Collector,DB,UI等组件,另外Jaeger支持还多种后端存储,其中包括:内存,Badger,Cassandra,ElasticSearch,gRPC插件。

今天我们就来说一说gRPC插件,这个强大且容易被人遗忘的功能。简单点来说,gRPC插件提供了一种能够将Trace数据从Jaeger系统中导出的能力。通过这个能力,开发同学可以很轻松的将Trace对接到一个具备Trace存储和分析的后端服务,这些服务可以对Trace进行二次分析加工,比如说异常根因分析,异常检测和告警等,帮助运维和开发同学更好的发现和定位系统潜在的问题

jaeger插件开发流程

为了更好的了解jaeger插件开发,需要先补充gRPC插件的底层实现原理,Jaeger gRPC插件是使用HashiCorp/go-plugin框架实现的。接下我们将介绍Go Plugin以及插件的开发流程。

Go Plugin由HashiCorp公司开源,它遵循设计模式中的开闭原则,通过接口固定上层业务逻辑,通过改变调用不同的RPC服务接口来改实现对业务的扩展。 目前Go Plugin包含两类插件:RPC Plugin和 GRPCPlugin,两类插件Client的底层调用不一样。一个通过net/rpc调用,一个是grpc服务调用,两个插件都提供了两个方法,Server和Client方法。Service方法的完成的功能是充当服务端的stub,服务端接受到请求后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jaeger链路追踪是一种用于监控和追踪分布式系统中请求的工具。它可以帮助开发人员跟踪请求在系统中的传递路径,并提供详细的性能指标和错误信息。Jaeger的安装可以参考官方地址\[1\]和相关教程\[2\]。Jaeger由多个组件组成,包括Agent、Collector、Query Service等\[2\]。 在使用Go语言进行Jaeger链路追踪时,可以通过Jaeger客户端发送单个或多个span来追踪请求\[3\]。同时,还可以使用grpc发送span消息\[3\]。在Gin框架中,可以通过添加拦截器实现Jaeger的注入\[3\]。此外,还可以修改grpc_opentracing源码来实现Gin和gRPC的追踪\[3\]。 总结来说,Jaeger链路追踪是一种用于监控和追踪分布式系统中请求的工具,可以帮助开发人员跟踪请求的传递路径和性能指标。在Go语言中,可以使用Jaeger客户端发送span来实现链路追踪,并通过拦截器和修改源码来实现Gin和gRPC的追踪。 #### 引用[.reference_title] - *1* [【链路追踪】Jaeger基于go的「Gin」「gRPC」进行链路追踪](https://blog.csdn.net/the_shy_faker/article/details/129044832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [35、jaeger链路追踪](https://blog.csdn.net/qq23001186/article/details/126339369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值