-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Migration Guide 3.25
Note
|
We highly recommend the use of Items marked below with ⚙️ ✅ are automatically handled by |
It not possible anymore to build extensions using legacy config classes and the -AlegacyConfigRoot=true
extension annotation processor option (see the 3.14 migration guide for more details about why this option was introduced).
Building such extensions will fail.
Extensions are now required to use config interfaces annotated with @ConfigMapping
(and @ConfigRoot
).
See the Quarkus 3.19 announcement and the Sunsetting legacy config classes blog post for the whole story.
The Hibernate ORM extension checks the version of the database on startup, to make sure its dialect was configured correctly.
This check has been in place for several versions of Quarkus now, but Quarkus 3.25 improves the check to correctly handle some edge cases such as the version of SQL Server on Azure or the version of CockroachDB.
Applications that were previously using workarounds to pass faulty version checks may start experiencing a version check failure on startup after the upgrade to Quarkus 3.25, in which case the datasource version (quarkus.datasource.db-version
) needs to be updated.
For example when configuring a CockroachDB datasource, Quarkus will now expect the CockroachDB version to be set in quarkus.datasource.db-version
(instead of the PostgreSQL version previously).
The Hibernate Reactive extension now checks the version of the database on startup, just as the Hibernate ORM extension does, to make sure its dialect was configured correctly.
Applications connecting to older or incompatible versions of their chosen database may start experiencing a version check failure on startup, in which case the datasource version (quarkus.datasource.db-version
) needs to be set explicitly.
When OpenTelemetry metric is active, Quarkus produces HTTP server and JVM related metrics.
Metric jvm.system.cpu.utilization
was removed when in JVM mode and jvm.cpu.recent_utilization
should be used instead.
These are the now available metrics when using OpenTelemetry Metrics:
Metric Name | Description | Type | Available on JVM? | Available on Native? | MP 2.0? |
---|---|---|---|---|---|
http.server.request.duration |
Duration of HTTP server requests |
HISTOGRAM |
Y |
Y |
Y |
jvm.memory.committed |
Measure of memory committed |
LONG_SUM |
Y |
No data produced |
Y |
jvm.memory.used |
Measure of memory used |
LONG_SUM |
Y |
No data produced |
Y |
jvm.memory.limit |
Measure of max obtainable memory |
LONG_SUM |
Y |
Not present |
Y |
jvm.memory.used_after_last_gc |
Measure of memory used, as measured after the most recent garbage collection event on this pool. |
LONG_SUM |
Y |
No data produced |
Y |
jvm.gc.duration |
Duration of JVM garbage collection actions |
HISTOGRAM |
Y |
Not present |
Y |
jvm.class.count |
Number of classes currently loaded. |
LONG_SUM |
Y |
No data produced |
Y |
jvm.class.loaded |
Number of classes loaded since JVM start. |
LONG_SUM |
Y |
No data produced |
Y |
jvm.class.unloaded |
Number of classes unloaded since JVM start. |
LONG_SUM |
Y |
No data produced |
Y |
jvm.cpu.count |
Number of processors available to the Java virtual machine. |
LONG_SUM |
Y |
Y |
N |
jvm.cpu.limit |
LONG_SUM |
Y |
No data produced |
N |
|
jvm.cpu.time |
CPU time used by the process as reported by the JVM. |
DOUBLE_SUM |
Y |
Not present |
N |
jvm.system.cpu.utilization |
CPU time used by the process as reported by the JVM. |
DOUBLE_SUM |
Not present |
No data produced |
N |
jvm.cpu.recent_utilization |
Recent CPU utilization for the process as reported by the JVM. |
DOUBLE_GAUGE |
Y |
No data produced |
N |
jvm.cpu.longlock |
Long lock times |
HISTOGRAM |
Y |
Y |
N |
jvm.cpu.context_switch |
DOUBLE_SUM |
Y |
No data produced |
N |
|
jvm.network.io |
Network read/write bytes. |
HISTOGRAM |
Y |
Not present |
N |
jvm.network.time |
Network read/write duration. |
HISTOGRAM |
Y |
Not present |
N |
jvm.thread.count |
Number of executing platform threads. |
LONG_SUM |
Y |
Y |
Y |