spring-cloud / spring-cloud-sleuth

Distributed tracing for spring cloud
https://spring.io/projects/spring-cloud-sleuth
Apache License 2.0
1.78k stars 782 forks source link

deps: bumps to Brave 5.18.1 and moves off internal type #2335

Closed codefromthecrypt closed 9 months ago

codefromthecrypt commented 10 months ago

This updates to Brave 5.18.0 and dodges an internal type that will not be in Brave 6.0. See https://github.com/openzipkin/brave/pull/1396 about Propagation and Brave 6.0

pivotal-cla commented 10 months ago

@codefromthecrypt Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

pivotal-cla commented 10 months ago

@codefromthecrypt Thank you for signing the Contributor License Agreement!

codefromthecrypt commented 10 months ago

@shakuzen @marcingrzejszczak @ryanjbaxter I got this as far as I can.. there's an unrelated error below, which seems likely due to the runner using too new a JDK

org.springframework.cloud.sleuth.instrument.messaging.BraveTraceFunctionAwareWrapperTests.test_tracing_with_function()  Time elapsed: 1 sec  <<< FAILURE!
java.lang.ClassCastException: class java.lang.String cannot be cast to class org.springframework.messaging.Message (java.lang.String is in module java.base of loader 'bootstrap'; org.springframework.messaging.Message is in unnamed module of loader 'app')

The summary is that this change allows an upgrade to brave 5.18 or 6.0, but while sleuth supplies and consumes AsyncReporter types, it cannot upgrade to zipkin-reporter 2. This may be fine at least for a while, as Brave 6 doesn't care about zipkin or zipkin-reporter versions anymore.

In a bit, I will update this with Brave 6 (need to release that, first)

jonatan-ivanov commented 10 months ago

Hi Adrian, thanks for the PR! :)

Sleuth is already over its OSS support EOL date so Brave 6 might not be a concern. I think a minor version upgrade is a good question: we are not planning to release a new minor version of Sleuth only patch versions for commercial users.

On the other hand, we should do this in Micrometer Tracing as it is the successor of Sleuth.

codefromthecrypt commented 10 months ago

ok so what I'll do is cross-test this PR with Brave 5.18 and 6 and then close it if it won't be merged. Then, in case you need the code later, you know where to look!

codefromthecrypt commented 10 months ago

So, the main thing is that if this PR isn't merged and released, users can't upgrade to Brave 5.18 as things that wrap Propagation.Factory don't wrap .get(). So, they will be stuck at 5.17.1 regardless of zipkin-reporter or deprecation.

If it is merged, likely this will work with Brave 6 as well, just the messaging tests are broken and until they aren't I'm not sure if there is another issue.

jonatan-ivanov commented 10 months ago

I think that might be a compelling argument for merging this even though we are not planning to do another minor release. We can also keep it open to see if there is user interest.

marcingrzejszczak commented 9 months ago

I'm looking into this and I'm getting some NoClassDefFoundError. I'll look into that

itialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kafkaStreamsTracing' defined in class path resource [org/springframework/cloud/sleuth/autoconfig/brave/instrument/messaging/BraveKafkaStreamsAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [brave.kafka.streams.KafkaStreamsTracing]: Factory method 'kafkaStreamsTracing' threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/kafka/streams/processor/api/FixedKeyProcessorSupplier
codefromthecrypt commented 9 months ago

glad to hear you are looking at the build. I think people will be using boot 2 for many years.. if we can get a bit more life extension to sleuth to the community, I'm sure they will appreciate it!

marcingrzejszczak commented 9 months ago

Done via https://github.com/spring-cloud/spring-cloud-sleuth/commit/8f39760f5329433ed924d5489123c4d3a7bcd92c, polished via https://github.com/spring-cloud/spring-cloud-sleuth/commit/83155920f15db457f5ee6b71a19fc76b4ba293d8

codefromthecrypt commented 9 months ago

this works provably. While people can't upgrade zipkin-reporter to a new version, they can upgrade brave without a snag: https://github.com/openzipkin/brave-example/pull/113

For most people, since they are using sleuth's reporters anyway, there's little problem here.