Zipkin 3.0.4 fixes a packaging bug which caused the UI to not load. Thanks @jinyulei0710 for reporting!
Zipkin 3.0.3 updates its self-tracing to use the latest zipkin-reporter 3.2.1. It also enhances the Eureka example to include client tracing with Armeria services support.
Zipkin 3.0.2 removes a log warning from console output.
You may also be interested in the new homebrew formula. On mac or linux, you can now try zipkin via brew install zipkin
Zipkin 3.0 updates to Spring Boot 3 and floor JRE 17. The core library io.zipkin.zipkin2:zipkin now targets Java 8. This is a major version change for these reasons.
Apart from raising the server's Java target to 17, actual changes for Spring Boot 3 were a breeze. Upgrade breeze is not by accident, rather thanks to conscious thinking by the Spring Boot team. Please thank them for the good work!
On Java version changes
Recent releases of Zipkin use JRE 21 in docker images, as that's the latest LTS. The server now requires JRE 17 because that's the minimal Java target allowed by Spring Boot 3. JDK 17 no longer supports compilation below Java 8, which impacted our version range. The next notes cover impacts on the core library.
io.zipkin.zipkin2:zipkin now targets Java 8, formerly Java 6. Libraries who need to retain Java 6 or old Android versions should stay on 2.x or move to latest zipkin-reporter-brave which still supports Java 6. This should not impact many because known libraries that depend on zipkin require Java 8 or later.
Again, Zipkin Reporter 3 and Brave 6 no longer have a strict dependency on io.zipkin.zipkin2:zipkin so, still support Java 6.
Notable updates
As this is a major version update, we updated all server extensions we maintain, including:
We also opened a contrib repository for OpenTelemetry zipkin-otel. It is currently empty because the code changes requested haven't migrated, yet. Please watch this if interested or help make it similar to zipkin-gcp.
Also, based on popular demand, zipkin will be added to homebrew soon. Please track this PR for updates.
Finally, have a look at the community page if you are new to zipkin or want to reach out and let people know what's new. Let's look forward to many more years of stable simple tracing together!
Zipkin 2.27.0 adds Eureka integration and adds a docker HEALTHCHECK timeout to ensure abhorrent checks take no longer than one second. Thanks a lot to @anuraaga@rogierslag and @reta for support on this release.
Eureka
Eureka is a service registry originally started at Netflix. Zipkin can register itself in Eureka, allowing traced services to discover its listen address and health state. This is enabled when EUREKA_SERVICE_URL is set to a valid v2 endpoint of the Eureka REST API.
Note: Eureka server registration only includes host and port details. Tracers need to resolve this to the POST endpoint "/api/v2/spans". See our server documentation for more.
Note: This setting does not cause Zipkin to use Eureka to discover any configured dependencies such as Kafka or Elasticsearch. If you need something like this, please open an issue and discuss your setup.
Zipkin Reporter 3.2 deprecates Sender for a simpler type BytesMessageSender. This only supports synchronous invocation (as used by the async reporters in the reporting thread) and requires senders to pass an empty list vs a complicated and usually implemented check() function. The result is being able to implement a custom sender in less than 50 lines including imports like below! Thank a lot to @anuraaga and @reta for the review on this.
final class WebClientSender extends BytesMessageSender.Base {
final WebClient zipkinApiV2SpansClient;
volatile boolean closeCalled; // volatile as not called from the reporting thread.
Brave 6 removes all modules and functions deprecated in Brave 5.x. It no longer has any dependency on io.zipkin.zipkin2:zipkin. Special thanks to @reta and @anuraaga for a lot of review support leading to this release!
No more deprecated functions
The final release of Brave 5 with deprecated functions was 5.18.1. Removing these functions was the only way to decouple Brave from zipkin's core library (io.zipkin.zipkin2:zipkin). However, this does not change Brave's floor Java 6 support. We still integration test this via the brave-example repository.
Here's an example of a working Java 6 and Spring 2.5 application, which is 280KB smaller due to use of the lean combination of Brave 6 and Zipkin Reporter 3.x:
To fully remove a zipkin core library dependency from your traced applications, use io.zipkin.reporter2:zipkin-reporter-brave3.xAsyncZipkinSpanHandler. This is described in the zipkin-reporter README. You can expect currently maintained frameworks to do this on your behalf.
Thanks for your patience with the major upgrade. Things like this allow easier maintenance and a longer life for Brave, particularly as zipkin-server moves ahead with later Java versions.
Brave 5.18 prepares for Brave 6 by deprecating instrumentation for libraries not released in 1.5-3.5 years including:
context/rxjava2 - last released Feb 2021
replaced by RxJava3, but unlikely this module will be ported as it wasn't used widely.
instrumentation/dubbo-rpc - (alibaba) last released Dec 2021
replaced by Apache Dubbo instrumentation/dubbo
instrumentation/p6spy - last released July 2020
project dormant
instrumentation/sparkjava - last released July 2022
project dormant
A minor change is we changed the artifact we use to test MySQL 8 to com.mysql:mysql-connector-j (instead of mysql:mysql-connector-java), to ensure we validate against current versions. Thanks @m1ngyuan for the help on this.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the trace-java-client-gradle-deps group in /trace-java-client with 4 updates: io.opentracing.brave:brave-opentracing, io.zipkin.zipkin2:zipkin, io.zipkin.reporter2:zipkin-sender-okhttp3 and io.zipkin.brave:brave.
Updates
io.opentracing.brave:brave-opentracing
from 1.0.0 to 1.0.1Commits
Updates
io.zipkin.zipkin2:zipkin
from 2.25.2 to 3.0.4Release notes
Sourced from io.zipkin.zipkin2:zipkin's releases.
... (truncated)
Commits
1b89798
[maven-release-plugin] prepare release 3.0.44419086
fixes broken loading of UI resources (#3696)00bde7f
backfills test to show non-string tags are invalid like other thigns (#3693)e3dec43
docs: adds brew instructions (#3692)4fb41a6
typo57ea00d
[maven-release-plugin] prepare for next development iteration231c373
[maven-release-plugin] prepare release 3.0.39dc354b
migrates to zipkin-reporter 3.2 BytesMessageSender (#3690)87ec1c1
docker: uses Armeria for end-to-end Eureka example (#3691)a882a22
ci: adds lint check and fixes bad links and yaml formatting (#3689)Updates
io.zipkin.reporter2:zipkin-sender-okhttp3
from 2.17.1 to 3.2.1Release notes
Sourced from io.zipkin.reporter2:zipkin-sender-okhttp3's releases.
... (truncated)
Commits
457009d
[maven-release-plugin] prepare release 3.2.16e992f9
Adds deprecated functions for old Sender (#246)ee8c0f1
[maven-release-plugin] prepare for next development iteratione772cee
[maven-release-plugin] prepare release 3.2.022b0e37
Deprecates Sender for much simpler BytesMessageSender (#244)2dbac71
docker: polishes integration tests (#243)d97c014
bumps to brave 6 and warns about zipkin dep version (#242)35db29b
[maven-release-plugin] prepare for next development iteration9508452
[maven-release-plugin] prepare release 3.1.19c666c4
ci: deploys bom separately to allow re-do on partial failure (#241)Updates
io.zipkin.brave:brave
from 5.17.0 to 6.0.0Release notes
Sourced from io.zipkin.brave:brave's releases.
Commits
6aa32a2
[maven-release-plugin] prepare release 6.0.0f57f544
kafka-streams: cleans up after deprecation removal (#1404)5a81bf3
Docs: adds note about explicit reporter dependencies (#1402)cf8dbf9
Revert "Temporarily revert brave 6 change"39b76ff
[maven-release-plugin] prepare for next development iterationa50e658
[maven-release-plugin] prepare release 5.18.167b6013
deps: reverts to zipkin-reporter 2.x (#1403)5c977a2
Temporarily revert brave 6 changef99265d
bump to 6.0.0-SNAPSHOT44e4081
Removes all deprecated types and modules for Brave v6 (#1395)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show