dubbo Observability Task:Tracking the Facade Framework Research(可观测性任务链路追踪门面框架调研)

wf82jlnq  于 2022-12-31  发布在  其他
关注(0)|答案(3)|浏览(174)
  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the proposal

English: As a low-level framework middleware, Dubbo needs to reduce the coupling with the third-party link tracking system as much as possible, so a solution is needed to realize it. Currently, the more popular link tracking facades that can be referred to are: opentracing and micrometer tracing. Of course, there are other better options that you can also try.

中文:Dubbo作为一个底层的框架中间件,需要尽可能的降低与第三方链路追踪系统的耦合,所以需要一个解决方案来实现,目前可以参考的比较流行的链路追踪门面为:opentracing与micrometer tracing。当然还有其他更好的也可以尝试选择。

ffscu2ro

ffscu2ro1#

assign to me, thanks

bz4sfanl

bz4sfanl2#

assign to me, thanks

ok

wz8daaqr

wz8daaqr3#

Opentelemetry与Micrometer tracing选型调研

二者对比

 OpentelemetryMicrometer
语言异构,支持多种语言只支持Java,spring-boot3默认集成
Trace标准统一APImicrometer-tracing-bridge-otel可转为OT
支持第三方Zipkin, Jaeger, skywalking, Prometheus等通过bridge机制可对接第三方
背景CNCF孵化项目之一后起之秀
文档地址https://opentelemetry.io/docs/https://micrometer.io/docs

为什么SpringBoot选择Micrometer( 参考 )?

SpringBoot 使用 Micrometer 而不是 OpenTelemetry,可能有以下几点原因:

  1. 在之前的一些版本中,Micrometer关注更多是metrics,而OpenTelemetry则更多关注tracing,但是随着版本的迭代完善,Micrometer和OpenTelemetry在metrics和tracing API上基本都具备了。重要的是,在此之前,SpringBoot已经对Micrometer Metrics进行了支持,所谓近水楼台先得月。
  2. OpenTelemetry的目标是厂商无关,语言无关,openTelemetry更适合在异构技术栈中发挥作用;而Micrometer一直以来都是基于Java语言,这与 Spring体系从根上是一致的。
  3. Micrometer API 进行大量更改。最重要的变化是引入了一个新的 API:Observation API,这样便于使用者能够使用统一的 API 来观测业务代码,包括metrics,tracing以及logging。

SpringBoot3在Spring Boot Actuator中为Micrometer Tracing的依赖性管理和自动配置。Micrometer Tracing充当了类似日志领域内slf4j门面的角色。

OpenTelemetry目前实现了对Dubbo的client和server:
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md

个人意见:Micrometer

  • Springboot3默认Tracing,比较符合Java技术栈。
  • Tracing这块的默认protocol可以选择Micrometer,可通过micrometer-tracing-bridge-otel转换otel标准协议。参考 https://micrometer.io/docs/tracing

相关问题