Commit Graph

2645 Commits

Author SHA1 Message Date
Stéphane Nicoll ed5ec225a7 Merge branch '3.4.x'
Closes gh-44417
2025-02-24 08:04:36 +01:00
Phillip Webb 651a39b3f6 Merge branch '3.4.x' 2025-02-18 15:12:07 -08:00
Phillip Webb eeced8c629 Merge branch '3.3.x' into 3.4.x 2025-02-18 15:11:51 -08:00
Stéphane Nicoll cacb3d4820 Polish "Remove deprecated micrometer.observations.annotations.enabled"
See gh-44320
2025-02-18 11:22:39 +01:00
Johnny Lim 1c9bc7f336 Remove deprecated micrometer.observations.annotations.enabled
See gh-44320

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-02-18 11:20:07 +01:00
Moritz Halbritter dc4dbd1bf2 Rename management.server.accesslog.prefix
Closes gh-44196
2025-02-17 14:48:49 +01:00
Andy Wilkinson b2ba2a53fe Polish "Add support for MVC router functions to mappings endpoint"
See gh-44163
2025-02-13 11:18:17 +00:00
puppy4c a747bcf6d4 Add support for MVC router functions to mappings endpoint
See gh-44163

Signed-off-by: puppy4c <puppy4c@foxmail.com>
2025-02-13 10:52:23 +00:00
Andy Wilkinson 4c097b9841 Merge branch '3.4.x'
Closes gh-44257
2025-02-13 10:50:02 +00:00
Yanming Zhou 437fc028a0 Include non-default HikariDataSource candidates in metrics
See https://github.com/spring-projects/spring-boot/issues/43481#issuecomment-2655527313

See gh-44253

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-02-13 10:35:08 +00:00
Andy Wilkinson 1710ff4eb5 Merge branch '3.4.x'
Closes gh-44248
2025-02-12 21:52:30 +00:00
Andy Wilkinson 4cb9d816b9 Include non-default candidates in metrics and health
Previously, when Actuator expected to find multiple beans of the same
type, it used Map<String, Type> to inject them. Unfortunately, this
does not include beans that are not default candidates and there's
no way to request that autowiring includes such beans with Map-based
injection.

This commit switches from Map-based injection to querying the bean
factory for the desired beans. This is done using
SimpleAutowireCandidateResolver's new helper method,
resolveAutowireCandidates, that returns a Map<String, Type> of
beans including those that are not default candidates but excluding
those that are not autowire candidates.

Closes gh-43481
2025-02-12 21:44:41 +00:00
Phillip Webb 291e5d8bd3 Polish 2025-02-10 17:02:01 -08:00
Brian Clozel afcc780e61 Write TraceId in HTTP Response headers
Prior to this commit, the Micrometer instrumentation support would
auto-configure a `ServerHttpObservationFilter` for creating observations
in Spring MVC applications.

As of Spring Framework 6.2, applications can extend this filter class to
get notified of the observation scope being opened.
This commit contributes a new `TraceHeaderObservationFilter`
implementation that writes the current Trace Id (if present) to the
`X-Trace-Id` HTTP response header.

This feature is disabled by default, applications will need to enable
`management.observations.http.server.requests.write-trace-header`.
`
Closes gh-40857
2025-02-10 18:08:31 +01:00
Andy Wilkinson f5f888dbdd Polish
See gh-44197
2025-02-10 15:28:05 +00:00
Andy Wilkinson 62b217e0da Apply mgmt access log prefix to reactive Jetty, Tomcat, and Undertow
Fixes gh-44197
2025-02-10 14:53:35 +00:00
Andy Wilkinson ceaffaab4e Merge branch '3.4.x'
Closes gh-44192
2025-02-10 10:28:08 +00:00
Andy Wilkinson c3c7ed4c2e Fix class cast during additional path matching with health probes
Previously, when health probes were enabled, the post-processor of
AutoConfiguredHealthEndpointGroups resulted in the bean no longer
implementing AdditionalPathMapper. This then caused a
ClassCastException when working with AdditionalPathMapper beans
in EndpointRequest's additional path mapping support.

This commit updates the type returned by the post-processor to
implement both HealthEndpointGroups and AdditionalPathMapper, as
AutoConfiguredHealthEndpointGroups does. Its implementation of
getAdditionalPaths produces a result that combines both the
additional paths of the original HealthEndpointGroups bean and its
own additional paths for the probes.

Fixes gh-44052
2025-02-10 10:01:19 +00:00
Andy Wilkinson c86ac9ecaf Merge branch '3.4.x'
Closes gh-44191
2025-02-10 09:37:21 +00:00
Andy Wilkinson 1c0253b380 Align reactive EndpointRequest with servlet equivalent
Closes gh-44189
2025-02-10 09:28:28 +00:00
Andy Wilkinson 4212ee7298 Merge branch '3.4.x'
Closes gh-44190
2025-02-10 09:27:01 +00:00
Andy Wilkinson 3603cb4ad9 Fix matching against context with implicit server namespace
Closes gh-44188
2025-02-10 09:18:46 +00:00
Johnny Lim 8c35bce668 Polish
See gh-44184

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-02-10 07:32:14 +01:00
Andy Wilkinson 8ce7da9bb0 Avoid duplicate customization of management web server factory
Previously, customization was performed in two places:

1. By customizers defined in the reactive and servlet web servlet
   factory auto-configuration
     - ServletWebServerFactoryAutoConfiguration
     - ReactiveWebServerFactoryAutoConfiguration
 2. By a ManagementWebServerFactoryCustomizer that delegates to
    customizers of certain types found in the application context
    hierarchy.

This led to some double customization as the customizers registered
by the auto-configuration classes were also found and called by the
ManagementWebServerFactoryCustomizer.

Additionally, the ManagementWebServerFactoryCustomizer would find
customizers from the parent context registered by
EmbeddedWebServerFactoryCustomizerAutoConfiguration.

This commit reworks the customization of the management web server
factory to remove the double customization.
ManagementWebServerFactoryCustomizer no longer delegates to
customizers that it finds in the context hierarchy. This
prevents the customizers defined in the reactive and servlet web
server factory auto-configuration classes from being called twice.
Additionally, EmbeddedWebServerFactoryCustomizerAutoConfiguration is
now registered in the child context so that its customizers continue
to be called when preparing the management context web server
factory.

Closes gh-44151
2025-02-07 12:23:40 +00:00
Johnny Lim c335f772d0 Polish
See gh-44148

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-02-07 09:21:19 +01:00
Phillip Webb 9576293a03 Polish 'Add ability to match Endpoint requests by HTTP method'
See gh-29596
2025-02-04 21:57:40 -08:00
onobc 996ee243a3 Add ability to match Endpoint requests by HTTP method
Update both servlet and reactive `EndpointRequest` classes with
support for matching endpoint requests by HTTP method.

See gh-29596
2025-02-04 21:56:14 -08:00
Phillip Webb 9881f38d82 Polish 'Add the ability to trigger a Quartz job through an Actuator endpoint'
See gh-43086
2025-02-04 16:29:52 -08:00
Dmytro Nosan fbeace397f Add the ability to trigger a Quartz job through an Actuator endpoint
Add new methods to `QuartzEndpoint` and `QuartzEndpointWebExtension`
to allow a Quartz job to be triggered on demand.

See gh-43086

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-02-04 16:29:39 -08:00
Dmytro Nosan 1749235dbd Polish PrometheusPushGatewayConfiguration
See gh-44069

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-02-04 14:02:47 -08:00
Andy Wilkinson 63ecfac40d Support Pushgateway with new Prometheus client
Closes gh-43923
2025-02-04 11:17:25 +00:00
Johnny Lim a39e1c4a09 Polish
Signed-off-by: Johnny Lim <izeye@naver.com>

See gh-44034
2025-01-31 17:04:58 +01:00
Moritz Halbritter 035c80aa5b Deprecate SignalFX tests
See gh-43962
2025-01-29 13:11:14 +01:00
Moritz Halbritter 58cc3a0d3d Deprecate SignalFX support
Closes gh-43962
2025-01-29 10:41:24 +01:00
Phillip Webb 7545bed284 Polish 2025-01-27 15:29:16 -08:00
Phillip Webb 3ff6e0b5a9 Merge branch '3.4.x' 2025-01-24 19:24:42 -08:00
Phillip Webb 8ec61b9870 Polish 'Refactor `@ConfigurationProperties` that only use `prefix`'
See gh-43917
2025-01-24 14:59:32 -08:00
Yanming Zhou c1d97ffe16 Refactor `@ConfigurationProperties` that only use `prefix`
See gh-43917

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-01-24 14:58:36 -08:00
Dmytro Nosan 126233303c Remove the use of a FactoryBean when auto-configuring VirtualThreadMetrics
See gh-43957

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-24 14:05:26 +01:00
Dmytro Nosan fc5c285ded Auto-configure VirtualThreadMetrics
See gh-43852

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-24 11:37:49 +01:00
Andy Wilkinson 1e43b0003f Merge branch '3.4.x'
Closes gh-43951
2025-01-24 08:54:50 +00:00
Yanming Zhou 960c8825e0 Replace @ConditionalOnProperty with …BooleanProperty where feasible
See gh-43868

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-01-21 15:08:26 +00:00
Andy Wilkinson 88eb74884a Merge branch '3.4.x'
Closes gh-43906
2025-01-21 14:36:55 +00:00
Andy Wilkinson eea9491c46 Merge branch '3.3.x' into 3.4.x
Closes gh-43905
2025-01-21 14:36:44 +00:00
Johnny Lim 15a6c9affb Fix description of management.metrics.graphql.autotime.enabled
See gh-43904

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-01-21 14:36:20 +00:00
Stéphane Nicoll 96d90eb63d Fix formatting 2025-01-17 14:42:25 +01:00
Andy Wilkinson fd13a2e1c9 Avoid unclosed resource false positive 2025-01-17 10:08:45 +00:00
Moritz Halbritter 02a49b6038 Add a MeterBinder for SSL chain expiry
It registers a 'ssl.chains' gauge to count the number of chains with
different statuses (valid, expired, not yet valid, will expire soon).

Additionally, it registers a 'ssl.chain.expiry' gauge for every
certificate in a chain, tracking the seconds until expiry.

This binder reacts on bundle updates and new bundle registrations.

Closes gh-42030
2025-01-16 11:15:16 +01:00
Moritz Halbritter bcf075b53e Polish "Add property to specify the management access log prefix"
See gh-43434
2025-01-15 14:48:47 +01:00
Michel Palourdio 020fd7b155 Add property to specify the management access log prefix
See gh-43434
2025-01-15 14:05:43 +01:00
Andy Wilkinson 2f29a49a1d Remove APIs deprecated for removal in 3.5
Closes gh-43788
2025-01-14 13:59:24 +00:00
Phillip Webb b051a74b10 Polish "Make ZipkinHttpClientSender the default BytesMessageSender'
See gh-43085
2025-01-13 15:20:38 -08:00
YiXuan Ding 2b60c631a9 Make ZipkinHttpClientSender the default BytesMessageSender
Switch `HttpClientSenderConfiguration` and `UrlConnectionSenderConfiguration`
import order to set default sender.

See gh-43085
2025-01-13 15:19:25 -08:00
Phillip Webb a49719d73e Use consistent exception messages in Assert calls
Update `Assert` calls to consistently use messages of the form
"'item' must [not] ...".

Closes gh-43780
2025-01-11 21:18:47 -08:00
Stéphane Nicoll 46a499bf1f Make RuntimeHints predicates more explicit
This commit narrows method invocation wherever applicable as the default
is 'introspect' only.
2025-01-11 18:17:10 +01:00
Phillip Webb 86b6171edc Introduce dedicated annotations to deal with boolean properties
Add `@ConditionalOnBooleanProperty` annotation to deal with
boolean properties and primarily for features that users toggle
using `.enabled` properties.

Closes gh-43704
2025-01-08 13:26:11 -08:00
Stéphane Nicoll ff6c7c7fdf Merge branch '3.4.x' 2025-01-07 10:30:41 +01:00
Stéphane Nicoll 8502c80edb Merge branch '3.3.x' into 3.4.x 2025-01-07 10:30:15 +01:00
Stéphane Nicoll 6290b7545b Make skipSslValidation() test more robust
This commit updates the assertion of a test that relies on
https://self-signed.badssl.com to only fail if a SSLException is thrown.

This is a temporary measure until we run the test against a local
instance we control.

See gh-43708
2025-01-07 10:29:46 +01:00
Phillip Webb 170ff4eb23 Update copyright year of changed files 2025-01-06 17:40:24 -08:00
Phillip Webb 4c307d6fda Switch away from using @ConditionalOnProperty prefix
Merge `prefix` into `name` attribute and simplify annotations
where possible.

Closes gh-43703
2025-01-06 14:37:18 -08:00
Johnny Lim 4d15ee5bf0 Polish
See gh-43498
2024-12-13 13:29:20 -08:00
Moritz Halbritter d5344e3f1b Polish "Fix property name in OnEnabledLoggingExportConditionTests"
See gh-43331
2024-12-02 13:52:01 +01:00
Johnny Lim 1f17e0125d Fix property name in OnEnabledLoggingExportConditionTests
See gh-43331
2024-12-02 13:49:39 +01:00
Johnny Lim 859c235a95 Polish
See gh-43316
2024-11-29 10:35:11 +01:00
Andy Wilkinson f3a161afdd Enable relaxed matching of enabled and access properties
The lowercase form of the endpoint ID needs to be used so that
relaxed matching of properties, as provided by
ConfigurationPropertySources, works as intended. Without this
change the id of the endpoint in a property had to be an exact
match of the endpoint's ID.

Closes gh-43302
2024-11-28 14:17:37 +00:00
Andy Wilkinson 32433e84f3 Merge branch '3.3.x'
Closes gh-43270
2024-11-22 15:46:38 +00:00
Andy Wilkinson bb3651b7d1 Reduce warnings reported by Eclipse
Closes gh-43269
2024-11-22 15:39:35 +00:00
Johnny Lim fa0a4849fa Update Javadoc since for OtlpMetricsProperties and OtlpTracingProperties
See gh-43249
2024-11-22 08:24:59 +01:00
Phillip Webb c9a84549c8 Polish 'Replace TestObservationRegistryAssert.assertThat()''
See gh-43235
2024-11-20 20:56:39 -08:00
Johnny Lim 4b5b76d7b1 Replace TestObservationRegistryAssert.assertThat()
See gh-43235
2024-11-20 20:56:03 -08:00
Yanming Zhou 7fdc9742af Prohibit unnecessary value on `@EnumSource`
See gh-43214
2024-11-18 21:50:35 -08:00
Phillip Webb 4ab80d263a Fix management.endpoints.access.default type in JSON metadata
Fixes gh-43154
2024-11-13 16:23:39 -08:00
Stéphane Nicoll fdf24c6caa Merge branch '3.3.x'
Closes gh-42976
2024-11-02 20:25:35 +09:00
Tran Ngoc Nhan 9e92bfe906 Polish
See gh-42974
2024-11-02 20:20:06 +09:00
Andy Wilkinson 4a9da78eb8 Merge branch '3.3.x'
Closes gh-42969
2024-11-01 14:32:51 +00:00
Andy Wilkinson f9281a61ff Rework Antora Gradle Infrastructure
Closes gh-40572

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-11-01 14:28:18 +00:00
Andy Wilkinson e8b8584175 Merge branch '3.3.x'
Closes gh-42943
2024-10-30 10:26:19 +00:00
Andy Wilkinson 1ad5fb8638 Merge branch '3.2.x' into 3.3.x
Closes gh-42942
2024-10-30 10:26:04 +00:00
Andy Wilkinson 00ceb378c4 Polish "Remove unnecessary values from @ConditionalOnMissingBean"
See gh-42933
2024-10-30 10:02:27 +00:00
Yanming Zhou 88d7a1e74a Remove unnecessary values from @ConditionalOnMissingBean
See gh-42933
2024-10-30 10:00:11 +00:00
Andy Wilkinson 3b330ae09a Shut down management server once main server's shut down
Closes gh-41002
2024-10-23 12:08:03 -07:00
Phillip Webb 47fa83cafc Merge branch '3.3.x' 2024-10-23 10:14:59 -07:00
Phillip Webb fc1ed0b340 Increase timeout in ZipkinWebClientSenderTests 2024-10-23 10:14:32 -07:00
Moritz Halbritter 0ce4dbd49f Polish "Add property to control log exporting"
See gh-42813
2024-10-22 11:35:29 +02:00
Dmytro Nosan e9b3b97d81 Add property to control log exporting
This property provides more fine-grained control over log export:

- management.otlp.logging.export.enabled

By default, it is set to null, but if defined,
it takes precedence over the global management.logging.export.enabled
property

See gh-42813
2024-10-22 11:35:29 +02:00
Phillip Webb 223886ff37 Merge branch '3.2.x' into 3.3.x 2024-10-18 10:48:51 -07:00
Phillip Webb 3481107ff7 Update copyright year of changed files 2024-10-18 10:48:29 -07:00
Phillip Webb 71380e0233 Polish 2024-10-17 18:29:38 -07:00
Moritz Halbritter ba1a780147 Merge branch '3.3.x'
Closes gh-42774
2024-10-17 18:06:43 +02:00
Moritz Halbritter 73150b799a Merge branch '3.2.x' into 3.3.x
Closes gh-42772
2024-10-17 17:58:11 +02:00
Moritz Halbritter ce106eb43c Remove calls to deprecated Project.getBuildDir() in Gradle files
Closes gh-42739
2024-10-17 17:46:17 +02:00
Andy Wilkinson 25082d33e7 Provide more control over access to endpoint operations
This commit reworks the support for enabling and disabling endpoints,
replacing the on/off support that it provided with a finer-grained
access model that supports only allowing read-only access to endpoint
operations in addition to disabling an endpoint (access of none) and
fully enabling it (access of unrestricted).

The following properties are deprecated:

- management.endpoints.enabled-by-default
- management.endpoint.<id>.enabled

Their replacements are:

- management.endpoints.access.default
- management.endpoint.<id>.access

Similarly, the enableByDefault attribute on @Endpoint has been
deprecated with a new defaultAccess attribute replacing it.

Additionally, a new property has been introduced that allows an
operator to control the level of access to Actuator endpoints
that is permitted:

- management.endpoints.access.max-permitted

This property caps any access that may has been configured for
an endpoint. For example, if
management.endpoints.access.max-permitted is set to read-only and
management.endpoint.loggers.access is set to unrestricted, only
read-only access to the loggers endpoint will be allowed.

Closes gh-39046
2024-10-17 13:56:44 +01:00
Moritz Halbritter c018c43886 Merge branch '3.3.x'
Closes gh-42736
2024-10-17 13:44:25 +02:00
Moritz Halbritter 8efe6e02d9 Merge branch '3.2.x' into 3.3.x
Closes gh-42735
2024-10-17 13:38:03 +02:00
Moritz Halbritter a3060652f8 Call String.toLowerCase and .toUppercase with explicit locale
Closes gh-42719
2024-10-17 13:20:39 +02:00
Yanming Zhou 87cc2efb64 Strengthen package-like assertions
See gh-42682
2024-10-16 16:52:13 -07:00
Phillip Webb 465e909974 Merge branch '3.3.x' 2024-10-16 13:09:09 -07:00
Andy Wilkinson 83afef4f60 Start building against Micrometer 1.14.0 snapshots
See gh-42555
2024-10-09 17:10:00 +01:00
Moritz Halbritter e6165b0311 Add transport and connect timeout properties for OTLP logging
Closes gh-42528
Closes gh-42527
2024-10-08 16:01:09 +02:00