-
Notifications
You must be signed in to change notification settings - Fork 40.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to Brave 6 and Zipkin Reporter 3 #39049
Upgrade to Brave 6 and Zipkin Reporter 3 #39049
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR, @codefromthecrypt.
...a/org/springframework/boot/actuate/autoconfigure/tracing/BravePropagationConfigurations.java
Outdated
Show resolved
Hide resolved
...java/org/springframework/boot/actuate/autoconfigure/tracing/CompositePropagationFactory.java
Outdated
Show resolved
Hide resolved
...org/springframework/boot/actuate/autoconfigure/tracing/CompositePropagationFactoryTests.java
Outdated
Show resolved
Hide resolved
...a/org/springframework/boot/actuate/autoconfigure/tracing/BravePropagationConfigurations.java
Outdated
Show resolved
Hide resolved
...est/java/org/springframework/boot/actuate/autoconfigure/tracing/LocalBaggageFieldsTests.java
Outdated
Show resolved
Hide resolved
@wilkinsona I think we can get away from all these deprecated things, sorry about the distraction. I'll mark draft and triple check! |
1f14b97
to
9ff349b
Compare
should be an easier review, now. I had to add the zipkin-reporter bom not because of code in this change, but because Brave 6 no longer manages zipkin-reporter (Brave 6 has no dependency on zipkin types). spring-boot-actuator-autoconfigure defines reporter types, so needs this for those to compile. When that code updates to Zipkin Reporter 3 is up to you, I'm fine helping soon, but if not this week I can't promise availability as this stuff isn't related to my dayjob anymore. |
...a/org/springframework/boot/actuate/autoconfigure/tracing/BravePropagationConfigurations.java
Show resolved
Hide resolved
actually update to zipkin-reporter v3 will need to wait until this is released, as it seems boot is also importing otel exporter for |
We can't upgrade to Brave 6.0 until Micrometer has done so. |
This comment was marked as off-topic.
This comment was marked as off-topic.
@efemoney I think the current status is micrometer are awaiting https://github.com/open-telemetry/opentelemetry-java to release 1.35.0. Then micrometer can update to that and brave 6 etc per notes here. Once micrometer is converged, then this one can progress. Finally, we can basically not do this again for several years :) TL;DR; waiting on otel to release and I don't know the schedule of that |
Thank you. I checked the micrometer PR but somehow missed that 🙌🏾 |
turns out micrometer-metrics/tracing#536 only affected test deps as there was no main code change. So, there's no inter-dependency afaict except maybe if otel latest is needed here. Anyway I will sort this out next! |
9ff349b
to
81b4084
Compare
ok there's probably a lint or some test glitch, but I'm time out for the day. Effectively, we don't want to depend on zipkin core (zipkin.Reporter) types anymore, so detecting Brave already configured if there is an Also, almost everyone uses json and there's no built-in set of encoders in brave. So, I used optional injection of an encoder for both use cases brave and otel. The only known custom user of that encoder would be zipkin-gcp, and again lacking any built-in choice except json, optional is the best way. Feedback welcome, but I think you can see where I'm going with this and it is a lot simpler to implement. |
...a/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java
Show resolved
Hide resolved
...java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java
Show resolved
Hide resolved
...java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java
Outdated
Show resolved
Hide resolved
...ava/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinWebClientSender.java
Show resolved
Hide resolved
.../springframework/boot/actuate/autoconfigure/tracing/zipkin/DefaultEncodingConfiguration.java
Show resolved
Hide resolved
...k/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurationsBraveConfigurationTests.java
Show resolved
Hide resolved
...java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java
Outdated
Show resolved
Hide resolved
...java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinConfigurations.java
Outdated
Show resolved
Hide resolved
Thanks a lot for the PR, there are some cool features in there! :) |
3fd2086
to
3b542a0
Compare
rebased with feedback from @mhalbritter accepted! 🤞 on green |
red looks unrelated unless I'm missing something |
Signed-off-by: Adrian Cole <adrian@tetrate.io>
Signed-off-by: Adrian Cole <adrian@tetrate.io>
Signed-off-by: Adrian Cole <adrian@tetrate.io>
3b542a0
to
23fce4f
Compare
rebased. let me know what else is needed here! |
same snapshot download error as before.. |
Don't worry. I'll take a look at the PR and merge it. It builds fine on my machine. |
Signed-off-by: Adrian Cole <adrian@tetrate.io> See gh-39049
Thanks a lot for the PR! |
thanks @mhalbritter .. one less thing on my nag list, but more importantly a big step forward for those using this stuff. cheers! |
Brave can work without zipkin2 on the classpath, OpenTelemetry can't. To not force users to have zipkin2 on the classpath, move it into the OpenTelemetry auto-configuration. See gh-39049
This updates to Brave 6 and Zipkin Reporter 3 which are compatible with the classpath of Otel 1.35
Here are some new features for end-users, applicable to both Otel and Brave senders:
HttpEndpointSupplier.Factory
ZipkinConnectionDetails.getSpanEndpoint()
ZipkinConnectionDetails.getSpanEndpoint()
is called once like before.