From c355b95f6c744191e9d90623281190b783542cc2 Mon Sep 17 00:00:00 2001 From: smlc Date: Wed, 12 Aug 2020 13:42:46 +0100 Subject: [PATCH 1/2] Fix conditions that lead to auto-configure PushGateway See gh-22919 --- .../PrometheusMetricsExportAutoConfigurationTests.java | 6 ++++++ .../src/main/asciidoc/production-ready-features.adoc | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java index d1b947dba60..320df3b0bc2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java @@ -154,6 +154,12 @@ class PrometheusMetricsExportAutoConfigurationTests { .run((context) -> hasGatewayURL(context, "https://example.com:8080/metrics/")); } + @Test + void pushGatewayIsNotConfiguredWhenEnabledFlagIsNotSet() { + this.contextRunner.withUserConfiguration(BaseConfiguration.class) + .run((context) -> assertThat(context).doesNotHaveBean(PrometheusPushGatewayManager.class)); + } + private void hasGatewayURL(AssertableApplicationContext context, String url) { assertThat(context).hasSingleBean(PrometheusPushGatewayManager.class); PrometheusPushGatewayManager gatewayManager = context.getBean(PrometheusPushGatewayManager.class); diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc index f278dcce019..1e5c5b59f5d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc @@ -1552,13 +1552,12 @@ To enable Prometheus Pushgateway support, add the following dependency to your p ---- -When the Prometheus Pushgateway dependency is present on the classpath, Spring Boot auto-configures a `PrometheusPushGatewayManager` bean. +When the Prometheus Pushgateway dependency is present on the classpath and the `configprop:management.metrics.export.prometheus.pushgateway.enabled` property is set to true, a PrometheusPushGatewayManager bean is auto-configured. This manages the pushing of metrics to a Prometheus Pushgateway. The `PrometheusPushGatewayManager` can be tuned using properties under `management.metrics.export.prometheus.pushgateway`. For advanced configuration, you can also provide your own `PrometheusPushGatewayManager` bean. - [[production-ready-metrics-export-signalfx]] ==== SignalFx SignalFx registry pushes metrics to {micrometer-registry-docs}/signalFx[SignalFx] periodically. From f61a632a3789e5a0bb98c7eb4ca042988b072e0d Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 13 Aug 2020 11:42:32 +0200 Subject: [PATCH 2/2] Polish "Fix conditions that lead to auto-configure PushGateway" See gh-22919 --- ...metheusMetricsExportAutoConfigurationTests.java | 14 +++++++------- .../main/asciidoc/production-ready-features.adoc | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java index 320df3b0bc2..e32bc969337 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 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. @@ -123,6 +123,12 @@ class PrometheusMetricsExportAutoConfigurationTests { .hasBean("customEndpoint").hasSingleBean(PrometheusScrapeEndpoint.class)); } + @Test + void pushGatewayIsNotConfiguredWhenEnabledFlagIsNotSet() { + this.contextRunner.withUserConfiguration(BaseConfiguration.class) + .run((context) -> assertThat(context).doesNotHaveBean(PrometheusPushGatewayManager.class)); + } + @Test void withPushGatewayEnabled(CapturedOutput output) { this.contextRunner.withConfiguration(AutoConfigurations.of(ManagementContextAutoConfiguration.class)) @@ -154,12 +160,6 @@ class PrometheusMetricsExportAutoConfigurationTests { .run((context) -> hasGatewayURL(context, "https://example.com:8080/metrics/")); } - @Test - void pushGatewayIsNotConfiguredWhenEnabledFlagIsNotSet() { - this.contextRunner.withUserConfiguration(BaseConfiguration.class) - .run((context) -> assertThat(context).doesNotHaveBean(PrometheusPushGatewayManager.class)); - } - private void hasGatewayURL(AssertableApplicationContext context, String url) { assertThat(context).hasSingleBean(PrometheusPushGatewayManager.class); PrometheusPushGatewayManager gatewayManager = context.getBean(PrometheusPushGatewayManager.class); diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc index 1e5c5b59f5d..d8389743538 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc @@ -1552,12 +1552,14 @@ To enable Prometheus Pushgateway support, add the following dependency to your p ---- -When the Prometheus Pushgateway dependency is present on the classpath and the `configprop:management.metrics.export.prometheus.pushgateway.enabled` property is set to true, a PrometheusPushGatewayManager bean is auto-configured. +When the Prometheus Pushgateway dependency is present on the classpath and the configprop:management.metrics.export.prometheus.pushgateway.enabled[] property is set to `true`, a `PrometheusPushGatewayManager` bean is auto-configured. This manages the pushing of metrics to a Prometheus Pushgateway. + The `PrometheusPushGatewayManager` can be tuned using properties under `management.metrics.export.prometheus.pushgateway`. For advanced configuration, you can also provide your own `PrometheusPushGatewayManager` bean. + [[production-ready-metrics-export-signalfx]] ==== SignalFx SignalFx registry pushes metrics to {micrometer-registry-docs}/signalFx[SignalFx] periodically.