From 7c5e0505d84f2087568e54723b44d8227d2f839b Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Tue, 16 Mar 2021 17:25:58 -0700 Subject: [PATCH 1/2] Upgrade to Micrometer 1.7.0-M1 See gh-25707 --- .../spring-boot-actuator-autoconfigure/build.gradle | 1 + .../metrics/orm/jpa/HibernateMetricsAutoConfiguration.java | 2 +- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- .../spring-boot-smoke-test-data-jpa/build.gradle | 1 + .../spring-boot-smoke-test-flyway/build.gradle | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index 649821579d..fa74c2c8b3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -55,6 +55,7 @@ dependencies { optional("io.micrometer:micrometer-registry-signalfx") optional("io.micrometer:micrometer-registry-statsd") optional("io.micrometer:micrometer-registry-wavefront") + optional("org.hibernate:hibernate-micrometer") optional("io.projectreactor.netty:reactor-netty-http") optional("io.r2dbc:r2dbc-pool") optional("io.r2dbc:r2dbc-spi") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java index 02c058da78..860735b141 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java @@ -23,8 +23,8 @@ import javax.persistence.EntityManagerFactory; import javax.persistence.PersistenceException; import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.core.instrument.binder.jpa.HibernateMetrics; import org.hibernate.SessionFactory; +import org.hibernate.stat.HibernateMetrics; import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 8bdf38f345..29d3f9a496 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1178,7 +1178,7 @@ bom { ] } } - library("Micrometer", "1.6.5") { + library("Micrometer", "1.7.0-M1") { group("io.micrometer") { modules = [ "micrometer-registry-stackdriver" { diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle index d009a1eeb6..d3afdc753d 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle @@ -11,6 +11,7 @@ dependencies { implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator")) runtimeOnly("com.h2database:h2") + runtimeOnly("org.hibernate:hibernate-micrometer") testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle index b04bc8a21d..55022544e1 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle @@ -12,6 +12,7 @@ dependencies { runtimeOnly("com.h2database:h2") runtimeOnly("org.flywaydb:flyway-core") + runtimeOnly("org.hibernate:hibernate-micrometer") testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) } From eb406867eaa36032946d59851240e72d726974d0 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Wed, 17 Mar 2021 11:28:52 +0100 Subject: [PATCH 2/2] Polish "Upgrade to Micrometer 1.7.0-M1" See gh-25707 --- .../spring-boot-actuator-autoconfigure/build.gradle | 2 +- .../metrics/orm/jpa/HibernateMetricsAutoConfiguration.java | 4 ++-- .../src/docs/asciidoc/production-ready-features.adoc | 2 +- .../spring-boot-smoke-test-data-jpa/build.gradle | 1 - .../spring-boot-smoke-test-flyway/build.gradle | 1 - 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index fa74c2c8b3..d1667f4874 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -55,7 +55,6 @@ dependencies { optional("io.micrometer:micrometer-registry-signalfx") optional("io.micrometer:micrometer-registry-statsd") optional("io.micrometer:micrometer-registry-wavefront") - optional("org.hibernate:hibernate-micrometer") optional("io.projectreactor.netty:reactor-netty-http") optional("io.r2dbc:r2dbc-pool") optional("io.r2dbc:r2dbc-spi") @@ -79,6 +78,7 @@ dependencies { optional("org.glassfish.jersey.core:jersey-server") optional("org.glassfish.jersey.containers:jersey-container-servlet-core") optional("org.hibernate:hibernate-core") + optional("org.hibernate:hibernate-micrometer") optional("org.hibernate.validator:hibernate-validator") optional("org.influxdb:influxdb-java") optional("org.jolokia:jolokia-core") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java index 860735b141..baf55db1fb 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +48,7 @@ import org.springframework.util.StringUtils; @Configuration(proxyBeanMethods = false) @AutoConfigureAfter({ MetricsAutoConfiguration.class, HibernateJpaAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class }) -@ConditionalOnClass({ EntityManagerFactory.class, SessionFactory.class, MeterRegistry.class }) +@ConditionalOnClass({ EntityManagerFactory.class, SessionFactory.class, HibernateMetrics.class, MeterRegistry.class }) @ConditionalOnBean({ EntityManagerFactory.class, MeterRegistry.class }) public class HibernateMetricsAutoConfiguration implements SmartInitializingSingleton { diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/production-ready-features.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/production-ready-features.adoc index 214e279c6a..3e393b2916 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/production-ready-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/production-ready-features.adoc @@ -2355,7 +2355,7 @@ Each metric is tagged by the name of the Pool (can be controlled with `spring.da [[production-ready-metrics-hibernate]] ==== Hibernate Metrics -Auto-configuration enables the instrumentation of all available Hibernate `EntityManagerFactory` instances that have statistics enabled with a metric named `hibernate`. +If `org.hibernate:hibernate-micrometer` is on the classpath, all available Hibernate `EntityManagerFactory` instances that have statistics enabled with a metric named `hibernate` are instrumented. Metrics are also tagged by the name of the `EntityManagerFactory` that is derived from the bean name. diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle index d3afdc753d..d009a1eeb6 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-jpa/build.gradle @@ -11,7 +11,6 @@ dependencies { implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator")) runtimeOnly("com.h2database:h2") - runtimeOnly("org.hibernate:hibernate-micrometer") testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle index 55022544e1..b04bc8a21d 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-flyway/build.gradle @@ -12,7 +12,6 @@ dependencies { runtimeOnly("com.h2database:h2") runtimeOnly("org.flywaydb:flyway-core") - runtimeOnly("org.hibernate:hibernate-micrometer") testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) }