Commit Graph

2589 Commits

Author SHA1 Message Date
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