sofa-boot icon indicating copy to clipboard operation
sofa-boot copied to clipboard

Add tracer autoconfigure. (#847)

Open it-linnan opened this issue 4 years ago • 5 comments

为 SOFATracer 中的 plugin 增加 SOFABoot auto-configuration

fix #847

以下plugin的autoconfigure,是从SOFATracer 3.1.0版本的starter中抽取了相关代码,同步过来的。

  • KafkaMQ
  • RabbitMQ
  • SpringMessage
  • Redis

MongoDB plugin 的autoconfigure

前提:SOFATracer基于MongoDB 3.8.2版本的驱动实现,而当前版本SOFABoot依赖MongoDB 4.0.5版本驱动。因此,需基于当前版本驱动的MongoClientMongoAutoConfiguration实现自动配置。

实现思路:注册自定义MongoClientSettingsBuilderCustomizerbean,向MongoDB client的配置类中增加SofaTracerCommandListener。

RocketMQ plugin 的autoconfigure

  1. 添加了可选依赖rocketmq-spring-boot-starter
  2. 注册BeanPostProcessor,在producer和consumer初始化后,添加MessageHook

it-linnan avatar Sep 05 '21 15:09 it-linnan

Codecov Report

Merging #875 (d26c33e) into master (d7f4dc1) will decrease coverage by 0.12%. The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #875      +/-   ##
============================================
- Coverage     11.38%   11.25%   -0.13%     
  Complexity       41       41              
============================================
  Files           312      325      +13     
  Lines          9207     9310     +103     
  Branches       1270     1275       +5     
============================================
  Hits           1048     1048              
- Misses         8001     8104     +103     
  Partials        158      158              
Impacted Files Coverage Δ
...igure/tracer/SofaTracerKafkaAutoConfiguration.java 0.00% <0.00%> (ø)
...igure/tracer/SofaTracerMongoAutoConfiguration.java 0.00% <0.00%> (ø)
...re/tracer/SofaTracerRabbitMqAutoConfiguration.java 0.00% <0.00%> (ø)
...igure/tracer/SofaTracerRedisAutoConfiguration.java 0.00% <0.00%> (ø)
...re/tracer/SofaTracerRocketMqAutoConfiguration.java 0.00% <0.00%> (ø)
...nfigure/tracer/SpringMessageAutoConfiguration.java 0.00% <0.00%> (ø)
...a/processor/KafkaConsumerFactoryPostProcessor.java 0.00% <0.00%> (ø)
...a/processor/KafkaProducerFactoryPostProcessor.java 0.00% <0.00%> (ø)
...ocessor/StreamRocketMQTracerBeanPostProcessor.java 0.00% <0.00%> (ø)
...ofaTracerMongoClientSettingsBuilderCustomizer.java 0.00% <0.00%> (ø)
... and 3 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov[bot] avatar Sep 05 '21 15:09 codecov[bot]

@it-linnan 还有一个问题,原先 tracer 代码中的 @author 标签不对(后边没有冒号的),也辛苦改一下。

review 有点慢,还请见谅~

alaneuler avatar Sep 23 '21 05:09 alaneuler

@it-linnan 感谢贡献代码~ mongodb 和 rocketmq 的基础 processor 可以提供一下测试用例吗?

alaneuler avatar Oct 08 '21 05:10 alaneuler

@it-linnan 感谢贡献代码~ mongodb 和 rocketmq 的基础 processor 可以提供一下测试用例吗?

好的,我写一下测试用例

it-linnan avatar Oct 11 '21 00:10 it-linnan

@alaneuler 测试用例已提交,麻烦review下,辛苦~

it-linnan avatar Oct 14 '21 01:10 it-linnan