Commit Graph

1554 Commits (636568d3cc41bde71de2ae9268c3ae23ac396dd0)

Author SHA1 Message Date
Phillip Webb 3d2071d044 Migrate endpoints to return OperationResponseBody types
Update types returned from endpoints to implement the
`OperationResponseBody` interface. This ensures that they will be
serialized using the isolated actuator `ObjectMapper`.

See gh-20291
2 years ago
Phillip Webb 1f8493fb29 Support isolated actuator ObjectMapper
Add `OperationResponseBody` tagging interface that can be used
to trigger the use of an isolated ObjectMapper specifically for
actuator responses.

The isolated mapper is provided by an `EndpointObjectMapper`
bean which is auto-configured unless specifically disabled
by the user.

WebMVC, WebFlux and Jersey integrations have been updated
to provide a link between the `OperationResponseBody` type
and the endpoint `ObjectMapper`.

See gh-20291
2 years ago
Andy Wilkinson 3a2703e8f6 Upgrade to Jakarta Mail 2.1 and switch to Eclipse Angus RI
Closes gh-33059
Closes gh-33050
2 years ago
Andy Wilkinson b67c427259 Upgrade to Servlet 6.0 and related EE 10 specs
Co-authored-by: Phillip Webb <pwebb@vmware.com>

Closes gh-33036
Closes gh-33037
Closes gh-33038
Closes gh-33039
Closes gh-33040
Closes gh-33041
Closes gh-33042
Closes gh-33043
2 years ago
Phillip Webb 179aa987ee Unify actuator descriptor class names
Update actuator endpoints to consistently use `...Descriptor` for
JSON support classes.

Closes gh-33022
2 years ago
Andy Wilkinson 9472cb2db7 Polish 2 years ago
Andy Wilkinson edecebb641 Upgrade to Neo4j Java Driver 5.2.0
Closes gh-33008
2 years ago
Phillip Webb 9856286a2d Refine actuator httpexhanges naming
See gh-32885
2 years ago
Andy Wilkinson 29f7a596fe Polish 2 years ago
Phillip Webb 3e50836b1a Rename httptrace endpoint and related classes to httpexchanges
Rename `/actuator/httptrace` to `/actuator/httpexchanges` to better
describe its purpose and to remove confusion with distribute tracing.

This change also takes the opportunity to improve the code by making
the `HttpExchange` class (previously `HttpTrace`) fully immutable.

Closes gh-32885

Co-authored-by: Andy Wilkinson <wilkinsona@vmware.com>
2 years ago
Johnny Lim 5067aab552 Polish
See gh-32840
2 years ago
Phillip Webb a59b6cb1f3 Polish 2 years ago
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2 years ago
Phillip Webb c8676a81de Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb d7ac20cd6c Update copyright year of changed files 2 years ago
Andy Wilkinson 99edda735e Polish 2 years ago
Andy Wilkinson b7fb345709 Revert workaround for multiple ImportRuntimeHints
Closes gh-32830
2 years ago
Johnny Lim fc61690675 Add missing @Test to sanitizeLists()
See gh-32792
2 years ago
Sébastien Deleuze 4e131bd627 Provide a workaround to allow multiple @ImportRuntimeHints
Provide a workaround for spring-projects/spring-framework#29361 so
that multiple `@ImportRuntimeHints` can be used in a type hierarchy.

The commit should cover Actuator web endpoint use cases with the
exception of Cloud Foundry endpoints which are not possible due to
package access issues.

See gh-29361
2 years ago
Brian Clozel 685fa900f8 Auto-configure Observation instrumentation for WebFlux
Prior to this commit, Spring Boot would offer a specific Metrics
instrumentation for WebFlux applications through a `WebFilter` and
custom Tag providers.

As of Spring Framework 6.0, the Observation instrumentation is done
directly in WebFlux, also with a `WebFilter`. While this allows both
metrics and traces, some features cannot be supported in the same way
with this new infrastructure.
The former `WebFilter` has been removed and the Tagging infrastructure
deprecated in favor of custom Observation conventions. This commit
provides an adapter layer so that developers can refactor their custom
tagging solution to the convention way, during the deprecation phase,
without losing any feature.

Closes gh-32539
2 years ago
Brian Clozel 9948fc3e39 Use GraphQL Observation instrumentation
This commit migrates the existing metrics support (added in #29140) to
the new `Observation` instrumentation contributed in
spring-projects/spring-graphql#501.

We cannot have a smoother migration path here as the instrumentation
does not use the same context information for metadata extraction.

Closes gh-32794
2 years ago
Madhura Bhave ce3c933f77 Adapt to Spring Security changes
Closes gh-32604
2 years ago
Brian Clozel b2fe807d47 Move MVC metrics to Observation auto-configuration
This commit moves the entire Metrics auto-configuration for Spring MVC
to the new `Observation` API and the instrumentation contributed in
Spring Framework.

Closes gh-32538
2 years ago
Phillip Webb 07dd388b58 Merge branch '2.7.x'
Closes gh-32776
2 years ago
Phillip Webb 8dec296dfd Merge branch '2.6.x' into 2.7.x
Closes gh-32775
2 years ago
Phillip Webb de111dba5c Polish 'Add DataSize serializer for configprops endpoint'
See gh-32645
2 years ago
Guirong Hu 3b25132e38 Add DataSize serializer for configprops endpoint
See gh-32645
2 years ago
Phillip Webb e3df6c5b6f Move @ConstructorBinding annotation and support add default support
Relocate `@ConstructorBinding` from the `boot.context.properties`
package to `boot.context.properties.bind` and update the
`DefaultBindConstructorProvider` to support it.

Closes gh-32660
2 years ago
Brian Clozel 5cee828546 Fix javadoc warnings in HTTP Observation support 2 years ago
Brian Clozel cbca457eff Adapt to HTTP Observation changes in Framework
This commit adapts to the renames/package changes in the HTTP
Observation support in Spring Framework.

See spring-projects/spring-framework#29334
2 years ago
Andy Wilkinson 7852c45a77 Generate reflection hints for loggers endpoint's responses
Some of the types that are returned are hidden behind a
Map<String, Object> so the operation annotations already been marked
as reflective isn't sufficient.

This commit uses `@RegisterReflectionForBinding` to register the
types that are used as (nested) values in the response maps.

Closes gh-32486
2 years ago
Stephane Nicoll cbf24bd1cd Upgrade to Elasticsearch Client 8.4.3
Closes gh-32671
2 years ago
Johnny Lim 73fd760137 Polish HTTP client observability changes
See gh-32484
See gh-32518

Closes gh-32636
2 years ago
Brian Clozel d25fc73dae Upgrade to Neo4J Java Driver 5.0.0
Closes gh-32620
2 years ago
Andy Wilkinson 7c4e46e538 Allow thread dump endpoint to call ThreadMXBean in a native image
Closes gh-31680
2 years ago
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2 years ago
Andy Wilkinson 51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2 years ago
Brian Clozel 5b092f5d80 Polish
See gh-32518
2 years ago
Brian Clozel ceb1e5d223 Polish
See gh-32518
2 years ago
Brian Clozel 8b4a20d6cd Use Observation infrastructure for instrumenting WebClient
As of spring-projects/spring-framework#28341, `WebClient` is
instrumented directly for `Observation`.
This commit removes the custom `ExchangeFilterFunction` that previously
instrumented the client for metrics.

As a result, the relevant tag providers are now deprecated and adapted
as `ObservationConvention` for the time being.

Closes gh-32518
2 years ago
Brian Clozel eac50a8f0c Auto-configure Observation support for RestTemplate
Prior to this commit, Spring Boot would auto-configure a customizer that
instruments `RestTemplate` through a `RestTemplateBuilder`. This would
install a request interceptor that instrumented client exchanges for
producing metrics.

As of spring-projects/spring-framework#28341, the instrumentation is
done at the `RestTemplate` level directly using the `Observation` API.
The `Tag` (now `KeyValue`) extraction, observation name and
instrumentation behavior now lives in the Spring Framework project.

This commit updates the auto-configuration to switch from Boot-specific
Metrics instrumentation to a generic Observation instrumentation.
As a migration path, some configuration properties are deprecated in
favor of the new `management.observations.*` namespace.

Closes gh-32484
2 years ago
Stephane Nicoll bac1bfcd1c Merge branch '2.7.x'
Closes gh-32514
2 years ago
Stephane Nicoll eb4b0a3f3c Merge branch '2.6.x' into 2.7.x
Closes gh-32513
2 years ago
Stephane Nicoll 8f598f876b Polish "Use non-blocking API in CouchbaseReactiveHealthIndicator"
See gh-32505
2 years ago
Mico Piira f51c4c3df0 Use non-blocking API in CouchbaseReactiveHealthIndicator
See gh-32505
2 years ago
Andy Wilkinson 5cb68eab1e Remove HotSpot specifics from HeapDumper strategy interface
Closes gh-27533
2 years ago
Madhura Bhave b44a7e242c Support Mongo's Stable API in MongoHealthIndicator
Closes gh-30849
2 years ago
Stephane Nicoll 26cec61f32 Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29135
2 years ago
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2 years ago
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2 years ago