|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: 'Quarkus 3.13 - OpenTelemetry Metrics, OpenTelemetry 1.39, TLS registry improvements and more...' |
| 4 | +date: 2024-07-31 |
| 5 | +tags: release |
| 6 | +synopsis: 'We released Quarkus 3.13, which upgrades OpenTelemetry to 1.39 and introduces support for OpenTelemetry Metrics. It also includes improvements to the TLS registry and a lot of improvements across the board.' |
| 7 | +author: gsmet |
| 8 | +--- |
| 9 | + |
| 10 | +Today, we released Quarkus 3.13. |
| 11 | + |
| 12 | +While the summer is here, Quarkus is making great progress and this release contains several exciting new features and improvements: |
| 13 | + |
| 14 | +* https://github.com/quarkusio/quarkus/pull/39032[#39032] - OpenTelemetry Metrics support |
| 15 | +* https://github.com/quarkusio/quarkus/pull/41521[#41521] - Bump OpenTelemetry to 1.39. and Instrumentation to 2.5.0 |
| 16 | +* https://github.com/quarkusio/quarkus/pull/41418[#41418] - Add TLS registry CLI commands |
| 17 | +* https://github.com/quarkusio/quarkus/pull/41501[#41501] - Cert-Manager support and TLS periodic reload |
| 18 | +* https://github.com/quarkusio/quarkus/pull/41804[#41804] - Introduce the ability to automatically stand up an HTTP proxy for the REST Client |
| 19 | +* https://github.com/quarkusio/quarkus/pull/41760[#41760] - WebSockets Next: add support for Kotlin suspend functions |
| 20 | +* https://github.com/quarkusio/quarkus/pull/41258[#41258] - ArC: support interception of producers and synthetic beans |
| 21 | +* https://github.com/quarkusio/quarkus/pull/41368[#41368] - Add new `@WithTestResource` annotation and deprecate `@QuarkusTestResource` |
| 22 | +* https://github.com/quarkusio/quarkus/pull/41457[#41457] - Provide a configuration option for disabling live-reload |
| 23 | + |
| 24 | +== Update |
| 25 | + |
| 26 | +To update to Quarkus 3.13, we recommend updating to the latest version of the Quarkus CLI and run: |
| 27 | + |
| 28 | +[source,bash] |
| 29 | +---- |
| 30 | +quarkus update |
| 31 | +---- |
| 32 | + |
| 33 | +Note that `quarkus update` can update your applications from any version of Quarkus (including 2.x) to Quarkus 3.13. |
| 34 | + |
| 35 | +For more information about the adjustments you need to make to your applications, please refer to the https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.13[Quarkus 3.13 migration guide]. |
| 36 | + |
| 37 | +== What's new? |
| 38 | + |
| 39 | +=== OpenTelemetry |
| 40 | + |
| 41 | +A couple of months ago, we started some major work on the OpenTelemetry extension and you might have noticed that we skipped a few OpenTelemetry releases. |
| 42 | + |
| 43 | +It is our pleasure to announce that this extensive work has landed in Quarkus 3.13 with these major changes: |
| 44 | + |
| 45 | +- Update to OpenTelemetry 1.39 and Instrumentation 2.5.0 |
| 46 | +- Introduce OpenTelemetry Metrics support |
| 47 | + |
| 48 | +The documentation has been updated: |
| 49 | + |
| 50 | +- https://quarkus.io/guides/opentelemetry-tracing[OpenTelemetry Tracing] guide |
| 51 | +- https://quarkus.io/guides/opentelemetry-metrics[OpenTelemetry Metrics] guide |
| 52 | + |
| 53 | +=== TLS registry |
| 54 | + |
| 55 | +In Quarkus 3.12, we introduced the TLS registry to simplify managing the TLS configuration and certificates. |
| 56 | + |
| 57 | +This release introduces several additional improvements: |
| 58 | + |
| 59 | +- You can automatically reload certificates |
| 60 | +- You can use Kubernetes secrets or Cert-Manager to store your certificates |
| 61 | + |
| 62 | +These new features are documented in the https://quarkus.io/guides/tls-registry-reference[TLS registry] guide. |
| 63 | + |
| 64 | +We added several `quarkus tls` commands to the CLI to help with this new feature. |
| 65 | + |
| 66 | +=== HTTP proxy for REST Client |
| 67 | + |
| 68 | +When working with REST Clients, you might want to have a closer look at the requests sent to the server. |
| 69 | +You often end up having to use a pass-through proxy, especially when dealing with HTTPS connections. |
| 70 | + |
| 71 | +Quarkus 3.13 comes with a new feature that starts a pass-through proxy in dev mode. |
| 72 | +This proxy can be used as target for Wireshark to get the content of the requests sent by the client. |
| 73 | + |
| 74 | +It can be easily enabled by setting `quarkus.rest-client."client name".enable-local-proxy` to `true`. |
| 75 | +When starting Quarkus, a log message will indicate you the port of the proxy. |
| 76 | + |
| 77 | +This feature is only available with the Quarkus REST Client (the RESTEasy client doesn't support it). |
| 78 | + |
| 79 | +=== WebSockets Next |
| 80 | + |
| 81 | +WebSockets Next, our next-generation WebSockets extension continues to be improved in each release. |
| 82 | + |
| 83 | +One major improvement in this release for our Kotlin users is the support of Kotlin suspend functions. |
| 84 | + |
| 85 | +=== ArC - Support interception of producers and synthetic beans |
| 86 | + |
| 87 | +ArC is the CDI implementation of Quarkus. |
| 88 | +It is at the core of Quarkus and is a critical piece of the Quarkus architecture, |
| 89 | +and is regularly improved to support more use cases or simplify existing ones. |
| 90 | + |
| 91 | +Starting with Quarkus 3.13, it will be possible to use interceptors on producers and synthetic beans - which are very often used by extensions. |
| 92 | + |
| 93 | +=== @WithTestResource replaces @QuarkusTestResource |
| 94 | + |
| 95 | +`WithTestResource` replaces `QuarkusTestResource` that is now deprecated. |
| 96 | + |
| 97 | +The only change is the default behavior of the annotation: by default, it will restrict the resources to the annotated class. |
| 98 | +You can easily go back to the previous behavior by adding `restrictToAnnotatedClass = false` to your `@WithTestResource` annotation. |
| 99 | + |
| 100 | +`quarkus update` will take care of this change for you and make sure it keeps the current behavior. |
| 101 | + |
| 102 | +=== Disable live reload |
| 103 | + |
| 104 | +In some cases, people wanted to use dev mode for the Dev Services feature but wanted to disable live reload. |
| 105 | + |
| 106 | +You can now easily do it by setting the `quarkus.live-reload.enabled` configuration property to `false`. |
| 107 | + |
| 108 | +=== Quarkus CXF |
| 109 | + |
| 110 | +Quarkus CXF 3.13 was released and is now available in https://code.quarkus.io/?extension-search=origin:platform%20quarkus-cxf[Quarkus Platform 3.13]. |
| 111 | +Check https://docs.quarkiverse.io/quarkus-cxf/dev/release-notes/3.13.0.html[Quarkus CXF 3.13.0] and https://docs.quarkiverse.io/quarkus-cxf/dev/release-notes/3.13.1.html[Quarkus CXF 3.13.1] release notes for more information about what is new in this release. |
| 112 | + |
| 113 | +== Full changelog |
| 114 | + |
| 115 | +You can get the full changelog of https://github.com/quarkusio/quarkus/releases/tag/3.13.0.CR1[3.13.0.CR1] and https://github.com/quarkusio/quarkus/releases/tag/3.13.0[3.13.0] on GitHub. |
| 116 | + |
| 117 | +== Contributors |
| 118 | + |
| 119 | +The Quarkus community is growing and has now https://github.com/quarkusio/quarkus/graphs/contributors[973 contributors]. |
| 120 | +Many many thanks to each and everyone of them. |
| 121 | + |
| 122 | +In particular for the 3.13 release, thanks to Ales Justin, Alex Martel, Alexey Loubyansky, Andre F de Miranda, Andy Damevin, Auri Munoz, Bruno Alves, Bruno Baptista, chrischiedo, Christian Navolskyi, Christian Schmidt, Clement Escoffier, Cristiano Nicolai, Daniel Santos, David M. Lloyd, Dmitry Kryukov, Eric Deandrea, Foivos Zakkak, Fouad Almalki, Galder Zamarreño, George Gastaldi, Georgios Andrianakis, Giancarlo Calderón Cárdenas, Gonçalo Montalvão Marques, Guillaume Smet, Gunther C. Wenda, Gwenneg Lepage, Harald Albers, harlequin516, Holly Cummins, Ioannis Canellos, Jakub Jedlicka, James Cobb, James Netherton, Jan Hendriks, Jan Martiska, Jerome Prinet, João Daniel Simões, Juan Jose Garcia, Julien Ponge, Katia Aresti, Ladislav Thon, Luke Morfill, Maciej Lisowski, Marc Nuri, Marco Bungart, Marco Sappé Griot, Marek Skacelik, mariofusco, Mark Dijkstra, marko-bekhta, Martin Bartoš, Martin Kouba, Matej Novotny, Matheus Cruz, Matteo Franci a.k.a. Fugerit, Max Rydahl Andersen, melloware, Michael Edgar, Michael Hamburger, Michal Karm Babacek, Michal Vavřík, Michel Käser, mkrueger92, Nikolas Schmidt-Voigt, Ozan Gunalp, Peter Palaga, Phillip Krüger, renanmachad, Roberto Balarezo, Roberto Cortez, Rolfe Dlugy-Hegwer, Ryan Dens, Sanne Grinovero, Sebastian Schuster, Sergey Beryozkin, Shivansh, Simon Bradette, Stéphane Épardaud, Thomas Canava, vsevel, xstefank, YeonguChoe, and Yoann Rodière. |
| 123 | + |
| 124 | +== Come Join Us |
| 125 | + |
| 126 | +We value your feedback a lot so please report bugs, ask for improvements... Let's build something great together! |
| 127 | + |
| 128 | +If you are a Quarkus user or just curious, don't be shy and join our welcoming community: |
| 129 | + |
| 130 | + * provide feedback on https://github.com/quarkusio/quarkus/issues[GitHub]; |
| 131 | + * craft some code and https://github.com/quarkusio/quarkus/pulls[push a PR]; |
| 132 | + * discuss with us on https://quarkusio.zulipchat.com/[Zulip] and on the https://groups.google.com/d/forum/quarkus-dev[mailing list]; |
| 133 | + * ask your questions on https://stackoverflow.com/questions/tagged/quarkus[Stack Overflow]. |
0 commit comments