Commit Graph

2040 Commits

Author SHA1 Message Date
Phillip Webb a889c539ab Merge branch '2.7.x' 2023-01-17 10:12:25 -08:00
Phillip Webb a0fe8241a7 Update copyright year of changed files 2023-01-17 10:07:03 -08:00
Moritz Halbritter f08842019e Merge branch '2.7.x'
Closes gh-33841
2023-01-16 11:34:31 +01:00
Moritz Halbritter 96175a8e50 Use OperationParameter consistently
Closes gh-31240
2023-01-16 11:23:21 +01:00
Andy Wilkinson 433364601d Merge branch '2.7.x' 2023-01-11 17:04:33 +00:00
Andy Wilkinson 3b2e5e5292 Remove references to https://repo.spring.io/release 2023-01-11 17:03:45 +00:00
Moritz Halbritter 52760f6b78 Merge branch '2.7.x'
Closes gh-33756
2023-01-11 13:42:11 +01:00
Yongjo Lee 0440e5d1ac Fix duplicate 'the' typo
See gh-33736
2023-01-11 13:39:47 +01:00
Moritz Halbritter fe1c1edcd4 Change transient to volatile in CompositeHandlerExceptionResolver 2023-01-11 10:52:48 +01:00
Phillip Webb a2ac38e203 Update copyright year of changed files 2023-01-09 15:46:07 -08:00
Phillip Webb 1621cfd578 Merge branch '2.7.x' 2023-01-09 15:44:44 -08:00
Phillip Webb 6a0a61f1ce Refine EndpointRequest matcher `toString` and apply to reactive variant
Refine the recently introduced `EndpointRequest` matcher `toString()`
to use lower-case item names. Also applied the same logic to the
reactive variant.

See gh-33690
2023-01-09 14:41:41 -08:00
Moritz Halbritter 3b6b795c9f Merge branch '2.7.x'
Closes gh-33729
2023-01-09 12:39:42 +01:00
rishal c84399e705 Add toString method for EndpointRequestMatcher
See gh-33690
2023-01-09 12:34:43 +01:00
Krzysztof Krason cf6493f65c Simplify AssertJ assertions and also make them more readable
See gh-33653
2023-01-09 11:10:20 +01:00
Phillip Webb f588793445 Update copyright year of changed files 2022-12-22 01:00:42 -08:00
Phillip Webb 0254619782 Merge branch '2.7.x' 2022-12-22 00:59:40 -08:00
Phillip Webb e4772cf3b7 Update copyright year of changed files 2022-12-22 00:59:32 -08:00
Brian Clozel 28f9f20d39 Declare order for ServerHttpObservationFilter WebFilter
This commit declares an `@Order` for the `ServerHttpObservationFilter`
bean declaration in the Observation WebFlux auto-configuration.

This allows developers to consistently order other `WebFilter` instances
relatively to this one. Here, `@Order(Ordered.HIGHEST_PRECEDENCE + 1)`
has been chosen to align with the order of its MVC counterpart.

Fixes gh-33444
2022-12-19 18:24:36 +01:00
Brian Clozel 3310b59520 Polish 2022-12-19 14:50:47 +01:00
Brian Clozel 593b5311e9 Configure GraphQL web propagation for tracing
As of spring-projects/spring-graphql#547, Spring GraphQL introduced a
`PropagationWebGraphQlInterceptor` that propagates the incoming tracing
information in HTTP request headers into the GraphQL context.

This commit auto-configures the propagation interceptor if the
application exposes a GraphQL HTTP endpoint and if it is configured for
Tracing support.

Fixes gh-33542
2022-12-19 12:13:14 +01:00
Moritz Halbritter 725337f976 Make fields final
Closes gh-33537
2022-12-16 14:28:44 +01:00
Johnny Lim d21572a189 Resolve TODOs for observability tests
See gh-33481
2022-12-09 13:21:55 +01:00
Brian Clozel 50be8cbf91 Fix IllegalArgumentException in WebClient convention adapter
Prior to this commit, the `ClientObservationConventionAdapter` would
fail with an `IllegalArgumentException` when the observation is first
started: at this point, the carrier (the request builder here) is
present, but the full request not yet fully built.

This commit ensures that the convention adapter uses the request and, if
not available, the request builder to adapt to the
`WebClientExchangeTagsProvider`.

Fixes gh-33483
2022-12-07 13:16:57 +01:00
Johnny Lim 90589fd6d4 Polish
See gh-33384
2022-12-01 11:32:39 +01:00
Moritz Halbritter cfaade95df Add test to verify ZipkinRestTemplateBuilderCustomizer
See gh-33399
2022-11-29 11:55:27 +01:00
Moritz Halbritter 2ceee789ce Fix bug where ZipkinRestTemplateBuilderCustomizer had no effect
Closes gh-33399
2022-11-29 10:39:19 +01:00
Brian Clozel 07766c436c Apply user-provided ObservationConventions in auto-configurations
Prior to this commit, we would advise developers, as migration path from
Spring Boot 2.0-x metrics, to create `GlobalObservationConvention` beans
for the observations they want to customize (observation name or key
values).

`GlobalObservationConvention` are currently applied **in addition** to
the chosen convention in some cases, so this does not work well with
this migration path.

Instead, instrumentations always provide a default convention but also a
way to configure a custom convention for their observations. Spring Boot
should inject custom convention beans in the relevant
auto-configurations.

Fixes gh-33285
2022-11-22 20:44:05 +01:00
Jonatan Ivanov 2d40d07773 Remove Brave and OTel HTTP support in favor of instrumentation
See gh-33287
2022-11-22 13:22:14 +00:00
Stephane Nicoll 29ee5d2d9a Polish 2022-11-22 10:45:03 +01:00
Phillip Webb 12b4578e98 Further refine WavefrontProperties
See gh-33244
2022-11-21 11:43:10 -08:00
Phillip Webb c93e248c46 Refine WavefrontProperties
Remove naming properties under `management.wavefront.application`.

Closes gh-33244
2022-11-18 16:36:37 -08:00
Andy Wilkinson e63fcebcf4 Merge branch '2.7.x'
Closes gh-33256
2022-11-18 13:04:08 +00:00
Andy Wilkinson c483e662a9 Merge branch '2.6.x' into 2.7.x
Closes gh-33255
2022-11-18 13:03:50 +00:00
Andy Wilkinson fc9c036c88 Create git commit time with epoch seconds rather than milliseconds
Closes gh-33237
2022-11-18 13:03:05 +00:00
Phillip Webb fb5cdbd11c Create ApplicationTags in common WavefrontAutoConfiguration
Relocate `ApplicationTags` `@Bean` method from
`WavefrontTracingAutoConfiguration` to `WavefrontAutoConfiguration`
since it is now shared between tracing and metrics.

The `application-name`, `service-name`, `cluster-name` and `shard-name`
have also been relocated from `management.wavefront.tracing` to
`management.wavefront`.

Fixes gh-33244
2022-11-17 20:16:38 -08:00
Andy Wilkinson cd455a9f6f Restore previous serialization formatting in Actuator responses
Fixes gh-33236
2022-11-17 11:31:27 +00:00
Phillip Webb a0f39d66fe Polish 'Align Wavefront application tags support with Spring Boot 2.x'
See gh-32844
2022-11-16 17:10:19 -08:00
Glenn Oppegard 42bb4c0615 Align Wavefront application tags support with Spring Boot 2.x
Update `application-name` and `service-name` `management.wavefront`
properties to align with Spring Boot 2.x support. The properties now
use the wavefront terminology where `application` refers to an a
collection of (micro)`services`.

This commit also adds `cluster-name` and `shard-name` properties that
can be used to add additional items to the `ApplicationTags`.

See gh-32844
2022-11-16 16:49:51 -08:00
Johnny Lim 6027508cf7 Polish
See gh-33108
2022-11-16 10:00:36 +01:00
Phillip Webb 0754665973 Merge branch '2.7.x'
Closes gh-33169
2022-11-14 15:08:55 -08:00
Phillip Webb 733638cf89 Merge branch '2.6.x' into 2.7.x
Closes gh-33168
2022-11-14 15:07:48 -08:00
Phillip Webb 2a989b31aa Create Environment and apply ConversionService to management contexts
Update `ManagementContextFactory` implementations to create an
appropriate `Environment` type and to apply the `ConversionService`
from the parent context.

Prior to this commit, the management context `Environment` would not
be able to convert values from a `configtree:` source due to a missing
converter.

Fixes gh-32941
2022-11-14 15:06:30 -08:00
Brian Clozel 932f7d705f Start building against Spring Framework 6.0.0 SNAPSHOTs
See gh-33136
2022-11-14 16:40:30 +01:00
Andy Wilkinson fe72f307f4 Avoid actuator beans being ineligible for post-processing
Closes gh-33110
2022-11-11 16:39:57 +00:00
Andy Wilkinson b5e502d03b Make class package-private as it's returned from package-private method
Returning a private class from a package-private method causes the
AOT-generated source files to fail to compile as the private class is
not visible.

Closes gh-33106
2022-11-11 15:47:09 +00:00
Madhura Bhave 8cb615e9b6 Remove workarounds for SecurityContextRepository 2022-11-10 14:23:17 -08:00
Andy Wilkinson 5f6b63e277 Auto-configure span customizer beans
Closes gh-33087
2022-11-10 12:15:22 +00:00
Phillip Webb e5a0b164ac Configure MeterBinders after beans have been created
Update `MeterRegistryPostProcessor` to configure `MeterRegistry` beans
in two distinct sweeps. The first sweep applies customizers and filters
as the `MeterRegistry` bean is initialized, the second sweep applies
`MeterBinder` beans once all singletons have been instantiated.

Prior to this commit, it was not possible for a `MeterBinder` bean to
directly or indirectly use a `MeterRegistry`. It was also possible for
bound meters to cause a deadlock during refresh processing if those
meters could be updated on a thread other than main, such as GC
notifications.

Fixes gh-30636
Fixes gh-33070
2022-11-10 11:39:12 +00:00
Andy Wilkinson e60084112e Avoid NPE when TraceContext has deferred sampling
Closes gh-33093
2022-11-10 11:22:42 +00:00
Andy Wilkinson 6e4bece912 Make auto-configured OtelTracer back off when user defines a Tracer
Closes gh-33097
2022-11-10 11:20:39 +00:00
Andy Wilkinson d91e16a6c5 Make auto-configured BraveTracer back off when user defines a Tracer
Closes gh-33095
2022-11-10 11:20:38 +00:00
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
2022-11-09 22:17:16 -08:00
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
2022-11-09 22:17:13 -08:00
Phillip Webb 72cbb8a5d8 Polish 2022-11-09 21:56:49 -08:00
Phillip Webb 79ff11cb2b Rename and relocate ExemplarsAutoConfiguration
Rename `ExemplarsAutoConfiguration` and relocate it to a diffent
package to make it clear that it is for Prometheus.
2022-11-09 18:03:09 -08:00
Scott Frederick a53141f8a4 Fix JMX exposure default in config metadata and docs
Fixes gh-33072
2022-11-09 14:56:44 -06:00
Phillip Webb 883e97b166 Merge branch '2.7.x' 2022-11-09 11:40:56 -08:00
Phillip Webb ea10a64a0c Merge branch '2.6.x' into 2.7.x 2022-11-09 11:39:53 -08:00
Phillip Webb f423a26dd5 Polish 2022-11-09 11:39:48 -08:00
Phillip Webb 1adc7c7dd4 Merge branch '2.7.x' 2022-11-09 11:32:24 -08:00
Phillip Webb 0ef03d725f Merge branch '2.6.x' into 2.7.x 2022-11-09 11:31:55 -08:00
Phillip Webb a431ae04e6 Polish 2022-11-09 11:30:11 -08:00
Phillip Webb 32b9945632 Polish 2022-11-08 23:15:30 -08:00
Andy Wilkinson 3a2703e8f6 Upgrade to Jakarta Mail 2.1 and switch to Eclipse Angus RI
Closes gh-33059
Closes gh-33050
2022-11-08 11:01:15 +00:00
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
2022-11-07 17:33:38 +00:00
Phillip Webb 179aa987ee Unify actuator descriptor class names
Update actuator endpoints to consistently use `...Descriptor` for
JSON support classes.

Closes gh-33022
2022-11-05 20:15:35 -07:00
Phillip Webb 34b4ae8e05 Merge branch '2.7.x'
Closes gh-33019
2022-11-05 16:36:55 -07:00
Andy Wilkinson 604aa4d512 Align auto-configured Lettuce metrics with Lettuce's defaults
Closes gh-32986
2022-11-03 10:49:24 +00:00
Andy Wilkinson 8e08931411 Merge branch '2.7.x'
Closes gh-32990
2022-11-03 10:44:46 +00:00
Andy Wilkinson 394ae76b04 Merge branch '2.6.x' into 2.7.x
Closes gh-32989
2022-11-03 10:44:21 +00:00
Andy Wilkinson fcd3413ba0 Allow histograms to be disabled for Lettuce metrics
Closes gh-32985
2022-11-03 10:34:41 +00:00
Andy Wilkinson beea06f515 Polish "Handle custom observation name for HTTP reqs in max URI tag filters"
See gh-32973
2022-11-02 20:10:16 +00:00
Johnny Lim 89fe895cd6 Handle custom observation name for HTTP reqs in max URI tag filters
See gh-32973
2022-11-02 20:09:12 +00:00
Brian Clozel 0acaa0e460 Adapt to observation changes in Framework
See spring-projects/spring-framework#29388
2022-11-02 18:39:10 +01:00
Moritz Halbritter 05c5b1225c Replace Tag to KeyValues adapter code
Closes gh-32876
2022-11-02 16:25:37 +01:00
Moritz Halbritter 7aff82009f Revert "Register no-op tracer bean if tracing is disabled"
This reverts commit 2d75a8a9eb.
2022-11-02 15:45:39 +01:00
Moritz Halbritter 2d75a8a9eb Register no-op tracer bean if tracing is disabled
Closes gh-32907
2022-11-02 08:48:25 +01:00
Andy Wilkinson 11cff48271 Start building against Micrometer Tracing 1.0.0 snapshots
See gh-32937
2022-11-01 11:48:32 +00:00
Phillip Webb 2b5a29d514 No longer log hostname during application start
Remove hostname logging since `InetAddress.getLocalHost().getHostName()`
causes a network lookup and can take a long time.

Closes gh-32908
2022-10-31 13:46:47 -07:00
Phillip Webb 9856286a2d Refine actuator httpexhanges naming
See gh-32885
2022-10-28 12:50:59 -07:00
Andy Wilkinson 29f7a596fe Polish 2022-10-28 08:57:00 +01:00
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>
2022-10-27 16:34:42 -07:00
Johnny Lim 8d17d2d443 Handle null span in LazyTracingSpanContextSupplier consistently
See gh-32817
2022-10-27 18:02:47 +01:00
Johnny Lim 5067aab552 Polish
See gh-32840
2022-10-27 16:33:14 +02:00
Marcin Grzejszczak b753170807 Add missing BaggageTextMapPropagator for OTel W3C
Without this change we're missing the BaggageTextMapPropagator for
OTel. This means that we're not propagating remote-fields
(only baggage via the 'baggage' field).

With this change we're adding the missing propagator as
THE LAST entry in the composite TextMapPropagator. It has to be
last cause with the latest Snapshots of Micrometer Tracing it
will append the remote field baggage to existing baggage in the
context extracted via the W3CBaggagePropagator.

See gh-32898
2022-10-27 09:33:33 +02:00
Phillip Webb a59b6cb1f3 Polish 2022-10-25 21:56:53 -07:00
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2022-10-25 15:48:26 -07:00
Andy Wilkinson 99edda735e Polish 2022-10-25 12:57:58 +01:00
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
2022-10-20 15:29:31 +02:00
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
2022-10-19 22:06:40 +02:00
Madhura Bhave ce3c933f77 Adapt to Spring Security changes
Closes gh-32604
2022-10-19 11:46:27 -07:00
Phillip Webb 2e74878ba4 Downgrade to OpenSAML 4.0.1
See gh-32604
2022-10-19 11:46:27 -07:00
Brian Clozel e5c12c2b56 Move HTTP client observation auto-configuration
This commit moves the observation auto-configuration from the metrics
package to the observation package for consistency.

See gh-32484
See gh-32518
2022-10-19 19:59:25 +02:00
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
2022-10-19 19:33:31 +02:00
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
2022-10-17 22:46:06 +02:00
Andy Wilkinson 4700a00d94 Auto-configure CompositeSpanHandler with Brave
Closes gh-32753
2022-10-17 13:58:48 +01:00
Andy Wilkinson d593d194de Polish "Add auto-configuration for Exemplars"
See gh-32415
2022-10-13 13:23:48 +01:00
Jonatan Ivanov c5b2bc3dc7 Add auto-configuration for Exemplars
See gh-32415
2022-10-13 12:54:06 +01:00
Andy Wilkinson 81ee173877 Polish
See gh-32399
2022-10-13 12:51:25 +01:00