dependabot[bot] opened a new pull request, #4251:
URL: https://github.com/apache/servicecomb-java-chassis/pull/4251

   Bumps [io.zipkin.zipkin2:zipkin](https://github.com/openzipkin/zipkin) from 
2.26.0 to 3.1.0.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/openzipkin/zipkin/releases";>io.zipkin.zipkin2:zipkin's 
releases</a>.</em></p>
   <blockquote>
   <p>Zipkin 3.1 includes our first additional features since the 3.0 platform 
update. Notably gRPC span collection is enabled by default, Eureka registration 
includes more properties, and you can now disable the UI independent of the 
REST API. Those using kubernetes should have a second look at our <a 
href="https://github.com/openzipkin/zipkin-helm";>helm chart</a> which is 
recently renovated as well!</p>
   <p>While most won't see this, we'd like to give a special shout out to <a 
href="https://github.com/SamTV12345";><code>@​SamTV12345</code></a> for helping 
renovate our javascript build. It was Sam's first change in the project and 
quite a big one. We'd like to thank all the users for your feedback and the 
continued support from our all volunteer team, notably <a 
href="https://github.com/reta";><code>@​reta</code></a> and <a 
href="https://github.com/anuraaga";><code>@​anuraaga</code></a> who've stuck 
here with you so long.</p>
   <p>Here are the changes end users might notice</p>
   <ul>
   <li><code>COLLECTOR_GRPC_ENABLED</code> is now true by default, accepting 
spans from the <a 
href="https://github.com/openzipkin/zipkin-api/blob/master/zipkin.proto";>zipkin.proto3.SpanService/Report</a>
 service hosted on the same HTTP port as the normal API (default 9411)</li>
   <li>Eureka registration now populates the <code>homePageUrl</code> and 
<code>statusPageUrl</code> fields, the latter used in the spring-cloud-netflix 
UI. This was thanks to upstream changes in Armeria driven by <a 
href="https://github.com/minwoox";><code>@​minwoox</code></a></li>
   <li>New <code>UI_ENABLED</code> for users who wish to expose the query API, 
but not host the javascript UI.</li>
   </ul>
   <p>Here are the build related changes:</p>
   <ul>
   <li>UI build now uses vite. <a 
href="https://github.com/SamTV12345";><code>@​SamTV12345</code></a> was the MVP 
of this change, which eliminated a build-time CVE. This was a quite a lot of 
work, and we're grateful for Sam's help. We also appreciate others work on 
this, too, notably <a 
href="https://github.com/anuraaga";><code>@​anuraaga</code></a> who advised and 
pitched in a test migration PR.</li>
   <li><a href="https://github.com/reta";><code>@​reta</code></a> switched us to 
SLF4J 2.0, with heaps of thanks to <a 
href="https://github.com/wilkinsona";><code>@​wilkinsona</code></a> who helped 
us come to the same page on what versions do what.</li>
   <li>our zipkin-slim image now includes netty tcnative libraries.</li>
   </ul>
   <p>Thank folks who helped with changes you want and don't forget to <a 
href="https://github.com/openzipkin/zipkin/stargazers";>star the project</a> if 
you're happy with our continued efforts! If you'd like to get in touch, please 
chat on <a 
href="https://app.gitter.im/#/room/#openzipkin_zipkin:gitter.im";>gitter</a>. 
See you next release!</p>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/openzipkin/zipkin/compare/3.0.6..3.1.0";>https://github.com/openzipkin/zipkin/compare/3.0.6..3.1.0</a></p>
   <p>Zipkin 3.0.6 updates to Armeria 1.27.1, fixes 
<code>ES_HTTP_LOGGING</code> and a glitch in Eureka registration.</p>
   <ul>
   <li>Armeria 1.27.1 helped us remove code around Eureka, which is now 
upstream, as well bring the server runtime to the latest Netty</li>
   <li><code>ES_HTTP_LOGGING</code> broke when we updated to SLF4J 2. <a 
href="https://github.com/reta";><code>@​reta</code></a> resolved by bringing us 
back to the more compatible 1.7 plus config adjustment.</li>
   <li>Those using spring-cloud-sleuth were unable to discover zipkin even when 
it set env like <code>EUREKA_HOSTNAME</code>.</li>
   </ul>
   <h3>Eureka and spring-cloud</h3>
   <p>Skip this part unless you want to take a walk with us down 
troubleshooting lane!</p>
   <p><a href="https://github.com/Netflix/eureka/wiki";>Eureka</a> 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. So, 
this is an alternative to normal DNS. We added support for this in Zipkin 2.27 
and have been polishing that since.</p>
   <p>Before, we were testing Eureka integration with armeria. Armeria doesn't 
use the netflix/eureka codebase at all, as it implements its <a 
href="https://armeria.dev/docs/server-service-registration#eureka-based-service-registration-with-eurekaupdatinglistener";>api
 directly</a>. This is great for Armeria users as the <a 
href="https://github.com/Netflix/eureka";>Netflix/Eureka</a> codebase uses a lot 
of antique dependencies, some not updated in 8 years. However, it isn't a good 
test for zipkin for the same reason.</p>
   <p>Most users who use Eureka, use Spring Boot 2, and most of those who use 
zipkin, use <a 
href="https://spring.io/projects/spring-cloud-sleuth";>spring-cloud-sleuth</a> 
(which uses <a href="https://github.com/openzipkin/brave";>brave</a> 
internally).  To get a better sense of confidence registration works in 
practice, we decided to update our sleuth example to use Eureka. The idea was 
to set a pseudo hostname in the zipkin endpoint: that would be replaced 
dynamically by a real endpoint in the &quot;zipkin&quot; application in Eureka. 
Then, we're all good.</p>
   <p>But, we weren't all good. This didn't work at all, as our example used a 
reactive <a 
href="https://docs.spring.io/spring-framework/reference/web/webflux.html";>WebFlux</a>
 configuration. For some reason, when a sleuth-instrumented application is 
using reactive, <a 
href="https://redirect.github.com/spring-cloud/spring-cloud-sleuth/issues/2339";>you
 cannot use Eureka to discover zipkin</a>. So, we backported our sleuth example 
to a version that can use Eureka. Ironically, we had to go back to <a 
href="https://docs.spring.io/spring-framework/reference/web/webmvc.html";>WebMvc</a>
 which was the original <a 
href="https://github.com/openzipkin-attic/sleuth-webmvc-example";>canonical 
zipkin example</a>!  However, despite <a 
href="https://github.com/openzipkin/brave-example/tree/master/webmvc5-sleuth";>webmvc5-sleuth</a>
 using the right parts, the pseudo zipkin hostname wasn't replaced.</p>
   <p>In close inspection, the first thing we noticed was something <a 
href="https://cloud.spring.io/spring-cloud-sleuth/reference/html/#sending-spans-to-zipkin";>documented</a>,
 but <a 
href="https://redirect.github.com/spring-cloud/spring-cloud-netflix/issues/1788";>not
 entirely intuitive</a>. Documentation says to use the &quot;service ID&quot; 
as the pseudo-hostname in the zipkin URL, which would be replaced with the real 
hostname and port. In the case of Eureka, it seems intuitive to use the service 
to find instances of it. Specifically the Eureka application 
(<code>EUREKA_APP_NAME</code> of all zipkin instances). However, the 
&quot;service ID&quot; is not that, and it isn't even the 
<code>instanceId</code> in Eureka. Oddly, the &quot;service ID&quot; maps to 
the <code>vipAddress</code> field in Eureka, which is actually an instance's 
hostname! So, the strange thing is that the pseudo-hostname is actually the 
real hostname!</p>
   <p>Fine, so we put the <code>vipAddress</code> zipkin registered into Eureka 
into the hostname field as a quasi hostname, but still it didn't work. Stepping 
through a debugger, we found that if there is a port in the hostname (e.g. 
zipkin-server:9411) the configuration code assumes it is not something to look 
up, rather something already resolved. This led to a realization that the 
<code>vipAddress</code> having a port encoded, was actually a <a 
href="https://redirect.github.com/line/armeria/pull/5451";>config default 
bug</a>, but a simple one to work around. In 3.0.6, when someone sets 
<code>EUREKA_HOSTNAME</code>, we also set <code>vipAddress</code> explicitly to 
avoid the accidental port adding default.</p>
   <p>Voilla! Finally, we're all good: sleuth replaces <code>vipAddress</code> 
with that same address and also a port, and it could have only gotten that from 
eureka info. While it feels like a lot of work to accomplish little, people 
will still get the other benefits of Eureka (specifically spring-cloud-netflix 
use of it) including health checking and discovery of other endpoints besides 
the one you knew about and stuffed into the zipkin URL. While not as ideal as 
specifying the app name, this approach isn't completely unique to spring. Other 
technology sometimes ask for &quot;well known addresses&quot; in order to find 
the rest of a cluster.</p>
   <p>Through comments and issue links in the <a 
href="https://github.com/openzipkin/brave-example/tree/master/webmvc5-sleuth";>webmvc5-sleuth</a>
 example, we containerized this hard earned experience, to save future 
maintainers work trying to figure it all out again. In other words, they don't 
have to read these release notes and can just use the working binary.</p>
   <p>The moral of the story, is: integration test things twice or three times 
if you can, as some behaviors are not necessarily intuitive. If you have more 
integrations, all the strange things will present themselves. While painful to 
get through all of the troubleshooting, it is definitely better to have the 
project bear this weight than relying on end users to figure it out!</p>
   <h4>Follow-up</h4>
   <p>Immediately after this release, spring-cloud-sleuth released <a 
href="https://github.com/spring-cloud/spring-cloud-sleuth/releases/tag/v3.1.11";>3.1.11</a>
 which fixed WebFlux discovery with Eureka. Hence, we our the <a 
href="https://github.com/openzipkin/brave-example/tree/master/webflux5-sleuth";>webflux5-sleuth</a>
 example, while still keeping the webmvc one. All our Eureka-compatible 
examples are integration tested against a <a 
href="https://github.com/openzipkin/brave-example/blob/master/build-bin/docker-compose-eureka.test.yml";>real
 eureka server</a> on change now, to prevent unknowing regressions in the 
future.</p>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/a29a97e26578845927653fe1fd605b26bfd7b3fb";><code>a29a97e</code></a>
 [maven-release-plugin] prepare release 3.1.0</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/09c523d842ab2c40a9c49cf6fef0c2777b21dea3";><code>09c523d</code></a>
 docker: fixes native library config (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3738";>#3738</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/c65ce5c4573b516da5b9e5d7d6206d3c26d7a6a5";><code>c65ce5c</code></a>
 updates depedencies to latest versions, notably fixing Eureka (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3737";>#3737</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/a16330351ad3cd6d01c63406ea03b58e51d188ce";><code>a163303</code></a>
 Switch logging to SLF4J 2.x (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3736";>#3736</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/b90cee9e460a8a0e1832497c9291aed80c1e9619";><code>b90cee9</code></a>
 disables the spring banner via empty banner.txt (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3734";>#3734</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/01ae5d8decfd39aec8b5ef511b9567e4e58f4540";><code>01ae5d8</code></a>
 deps: updates to tcnative 2.0.63.Final (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3733";>#3733</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/0970acb754ffe556f4d2d3ced6014e6be69a9690";><code>0970acb</code></a>
 grpc: enables collector by default (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3732";>#3732</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/d43412e054d542144be955e4c28897bf6459e0ce";><code>d43412e</code></a>
 Adds UI_ENABLED mapping to make more obvious how to disable it (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3731";>#3731</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/154f2f298c4c170c68743e1066a805d530af4a7b";><code>154f2f2</code></a>
 Fix UiConfig test (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3729";>#3729</a>)</li>
   <li><a 
href="https://github.com/openzipkin/zipkin/commit/aa68d18d8507d77593333c5ee07b9eb4591bf68a";><code>aa68d18</code></a>
 lens: fixes all trivy detectable CVEs by upgrading vitest (<a 
href="https://redirect.github.com/openzipkin/zipkin/issues/3728";>#3728</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/openzipkin/zipkin/compare/2.26.0...3.1.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.zipkin.zipkin2:zipkin&package-manager=maven&previous-version=2.26.0&new-version=3.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   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-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   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 <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@dependabot ignore this major version` will close this PR and stop 
Dependabot creating any more for this major version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop 
Dependabot creating any more for this minor version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop 
Dependabot creating any more for this dependency (unless you reopen the PR or 
upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to