apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.42k stars 26.41k forks source link

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

Open songxiaosheng opened 1 year ago

songxiaosheng commented 1 year ago

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。当然还有其他更好的也可以尝试选择。

conghuhu commented 1 year ago

assign to me, thanks

songxiaosheng commented 1 year ago

assign to me, thanks

ok

conghuhu commented 1 year ago

Opentelemetry与Micrometer tracing选型调研

二者对比

  Opentelemetry Micrometer
语言 异构,支持多种语言 只支持Java,spring-boot3默认集成
Trace 标准统一API micrometer-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