Skip to content

Commit 840ee21

Browse files
authored
Merge pull request quarkusio#50825 from mcruzdev/issue-50607
Drop the property quarkus.datasource.jdbc.metrics-enabled
2 parents a4f70e6 + 83d0784 commit 840ee21

File tree

9 files changed

+26
-23
lines changed

9 files changed

+26
-23
lines changed

docs/src/main/asciidoc/datasource.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,10 +636,10 @@ This can be activated by setting the `quarkus.datasource.metrics.enabled` proper
636636
For the exposed metrics to contain any actual values, a metric collection must be enabled internally by the Agroal mechanisms.
637637
By default, this metric collection mechanism is enabled for all datasources when a metrics extension is present, and metrics for the Agroal extension are enabled.
638638

639-
To disable metrics for a particular datasource, set `quarkus.datasource.jdbc.enable-metrics` to `false`, or apply `quarkus.datasource.<datasource name>.jdbc.enable-metrics` for a named datasource.
639+
To disable metrics for a particular datasource, set `quarkus.datasource.jdbc.metrics.enabled` to `false`, or apply `quarkus.datasource.<datasource name>.jdbc.metrics.enabled` for a named datasource.
640640
This disables collecting the metrics and exposing them in the `/q/metrics` endpoint if the mechanism to collect them is disabled.
641641

642-
Conversely, setting `quarkus.datasource.jdbc.enable-metrics` to `true`, or `quarkus.datasource.<datasource name>.jdbc.enable-metrics` for a named datasource explicitly enables metrics collection even if a metrics extension is not in use.
642+
Conversely, setting `quarkus.datasource.jdbc.metrics.enabled` to `true`, or `quarkus.datasource.<datasource name>.jdbc.metrics.enabled` for a named datasource explicitly enables metrics collection even if a metrics extension is not in use.
643643
This can be useful if you need to access the collected metrics programmatically.
644644
They are available after calling `dataSource.getMetrics()` on an injected `AgroalDataSource` instance.
645645

extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalMetricsProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ void registerMetrics(AgroalMetricsRecorder recorder,
2424
// IFF metrics are enabled globally and for the data source
2525
// (they are enabled for each data source by default if they are also enabled globally)
2626
if (dataSourcesBuildTimeConfig.metricsEnabled() &&
27-
aggregatedDataSourceBuildTimeConfig.getJdbcConfig().enableMetrics().orElse(true)) {
27+
aggregatedDataSourceBuildTimeConfig.getJdbcConfig().metrics().enabled().orElse(true)) {
2828
datasourceMetrics.produce(new MetricsFactoryConsumerBuildItem(
2929
recorder.registerDataSourceMetrics(aggregatedDataSourceBuildTimeConfig.getName())));
3030
}

extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/PoolLessTestCase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class PoolLessTestCase {
1717

1818
@RegisterExtension
1919
static final QuarkusUnitTest config = new QuarkusUnitTest().withConfigurationResource("base.properties")
20-
.overrideConfigKey("quarkus.datasource.jdbc.enable-metrics", "true")
20+
.overrideConfigKey("quarkus.datasource.jdbc.metrics.enabled", "true")
2121
.overrideConfigKey("quarkus.datasource.jdbc.pooling-enabled", "false");
2222

2323
@Inject

extensions/agroal/deployment/src/test/resources/application-default-datasource-unknown-driver.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default
55
quarkus.datasource.jdbc.driver=org.h2.Driver
66
quarkus.datasource.jdbc.max-size=13
77
quarkus.datasource.jdbc.initial-size=7
8-
quarkus.datasource.jdbc.enable-metrics=true
8+
quarkus.datasource.jdbc.metrics.enabled=true
99

1010
quarkus.datasource.jdbc.background-validation-interval=53
1111
quarkus.datasource.jdbc.acquisition-timeout=54

extensions/agroal/deployment/src/test/resources/application-default-datasource.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default
55
quarkus.datasource.jdbc.min-size=3
66
quarkus.datasource.jdbc.initial-size=7
77
quarkus.datasource.jdbc.max-size=13
8-
quarkus.datasource.jdbc.enable-metrics=true
8+
quarkus.datasource.jdbc.metrics.enabled=true
99
quarkus.datasource.jdbc.background-validation-interval=53
1010
quarkus.datasource.jdbc.acquisition-timeout=54
1111
quarkus.datasource.jdbc.leak-detection-interval=55

extensions/agroal/deployment/src/test/resources/application-metrics-enabled.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ quarkus.datasource.db-kind=h2
55
quarkus.datasource.username=username1
66
quarkus.datasource.jdbc.url=jdbc:h2:mem:defaultdb
77
quarkus.datasource.jdbc.max-size=13
8-
quarkus.datasource.jdbc.enable-metrics=true
8+
quarkus.datasource.jdbc.metrics.enabled=true
99

1010
# another ds
1111
quarkus.datasource.ds1.db-kind=h2
1212
quarkus.datasource.ds1.username=username1
1313
quarkus.datasource.ds1.jdbc.url=jdbc:h2:mem:db1
1414
quarkus.datasource.ds1.jdbc.max-size=13
15-
quarkus.datasource.ds1.jdbc.enable-metrics=true
15+
quarkus.datasource.ds1.jdbc.metrics.enabled=true

extensions/agroal/runtime/src/main/java/io/quarkus/agroal/runtime/DataSourceJdbcBuildTimeConfig.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,22 @@ public interface DataSourceJdbcBuildTimeConfig {
3131
@WithDefault("enabled")
3232
TransactionIntegration transactions();
3333

34-
/**
35-
* Enable datasource metrics collection. If unspecified, collecting metrics will be enabled by default if
36-
* a metrics extension is active.
37-
* <p>
38-
* Deprecated. This was used by the now deprecated quarkus-smallrye-metrics and will be removed soon.
39-
* <p>
40-
* Please use quarkus-micrometer and the quarkus.datasource.metrics.enabled property
41-
*/
42-
@Deprecated(forRemoval = true)
43-
Optional<Boolean> enableMetrics();
44-
4534
/**
4635
* Enable OpenTelemetry JDBC instrumentation.
4736
*/
4837
@WithDefault("false")
4938
boolean telemetry();
39+
40+
DataSourceJdbcMetrics metrics();
41+
42+
@ConfigGroup
43+
interface DataSourceJdbcMetrics {
44+
45+
/**
46+
* Enable metrics collection for this datasource.
47+
*/
48+
@WithDefault("false")
49+
Optional<Boolean> enabled();
50+
51+
}
5052
}

extensions/agroal/runtime/src/main/java/io/quarkus/agroal/runtime/DataSources.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ private void applyNewConfiguration(String dataSourceName, AgroalDataSourceConfig
276276
}
277277

278278
// metrics
279-
if (dataSourceJdbcBuildTimeConfig.enableMetrics().isPresent()) {
280-
dataSourceConfiguration.metricsEnabled(dataSourceJdbcBuildTimeConfig.enableMetrics().get());
279+
if (dataSourceJdbcBuildTimeConfig.metrics().enabled().isPresent()) {
280+
dataSourceConfiguration.metricsEnabled(dataSourceJdbcBuildTimeConfig.metrics().enabled().get());
281281
} else {
282282
// if the enable-metrics property is unspecified, treat it as true if MP Metrics are being exposed
283283
dataSourceConfiguration.metricsEnabled(dataSourcesBuildTimeConfig.metricsEnabled() && mpMetricsPresent);

extensions/datasource/runtime/src/main/java/io/quarkus/datasource/runtime/DataSourcesBuildTimeConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@ public interface DataSourcesBuildTimeConfig {
3737
boolean healthEnabled();
3838

3939
/**
40-
* Whether or not datasource metrics are published in case a metrics extension is present.
40+
* Whether datasource metrics are published in case a metrics extension is present.
4141
* <p>
4242
* This is a global setting and is not specific to a datasource.
4343
* <p>
44-
* NOTE: This is different from the "jdbc.enable-metrics" property that needs to be set on the JDBC datasource level to
44+
* NOTE: This is different from the <code>quarkus.datasource."datasource name".jdbc.metrics.enabled</code> property that
45+
* needs to be set on the JDBC datasource level to
4546
* enable collection of metrics for that datasource.
4647
*/
4748
@WithName("metrics.enabled")

0 commit comments

Comments
 (0)