Commit Graph

2184 Commits

Author SHA1 Message Date
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
Andy Wilkinson
1af21fe33f Polish "Use TracingAwareMeterObservationHandler if tracing is configured"
See gh-32399
2022-10-13 12:09:43 +01:00
Jonatan Ivanov
415b9025c8 Use TracingAwareMeterObservationHandler if tracing is configured
See gh-32399
2022-10-13 12:09:43 +01:00
Bertolt Meier
647a2905c8 Add checkstyle rule for List.of() / Set.of() / Map.of()
This commits adds a checkstyle rule to not use List.of(), Set.of()
and Map.of(), preferring Collections.emptyList(), emptySet(), and
emptyMap() respectively.

It replaces usages of these methods across the codebase.

See gh-32655
2022-10-12 18:15:48 +01:00
Johnny Lim
1032f8cc94 Polish Micrometer tracing changes
See gh-32627
2022-10-12 18:05:41 +01:00
Andy Wilkinson
e4544c1785 Use new constructor to configure W3CPropagation without baggage
Closes gh-32524
2022-10-12 17:19:45 +01:00
Andy Wilkinson
180d0edbca Decouple AutoTimeProperties from Micrometer Core
Closes gh-32676
2022-10-12 14:40:42 +01:00
Andy Wilkinson
7e9e64a2ea Revert "Merge pull request #32399 from jonatan-ivanov"
This reverts commit ad40ef3398, reversing
changes made to 6eb32647f5.
2022-10-12 14:36:08 +01:00
Jonatan Ivanov
a0ceb2c3ff Use TracingAwareMeterObservationHandler if tracing is configured
See gh-32399
2022-10-12 13:57:39 +01:00
Jonatan Ivanov
fff4aaaac1 Fix Observation lifecycle issues in ObservationAutoConfigurationTests
See gh-32662
2022-10-12 13:31:21 +01:00
Andy Wilkinson
403803837a Adapt to changes in REST Docs for documenting query parameters
See gh-32623
2022-10-12 11:30:57 +01:00
Andy Wilkinson
4dfd770406 Ensure that metrics and observation properties are enabled
Closes gh-32676
2022-10-11 20:30:40 +01:00
Johnny Lim
73fd760137 Polish HTTP client observability changes
See gh-32484
See gh-32518

Closes gh-32636
2022-10-07 19:05:14 +02:00
Marcin Grzejszczak
dfd148fb76 Make auto-configured Brave Tracer more compliant with OTel tracer
By default we will not support joined spans and the trace ID will
be 128-bit.

See gh-32615
2022-10-07 11:14:46 +01:00
Brian Clozel
3e6ad67f16 Switch to Micrometer 1.10.0-SNAPSHOT
See gh-32598
2022-10-06 15:18:32 +02:00
Stephane Nicoll
d106fc266a Revert "Adapt to deprecations in Spring Framework snapshots"
This reverts commit ff6acbe972.
2022-10-06 07:09:51 +02:00
Stephane Nicoll
ff6acbe972 Adapt to deprecations in Spring Framework snapshots 2022-10-05 15:55:33 +02:00
Andy Wilkinson
7c4e46e538 Allow thread dump endpoint to call ThreadMXBean in a native image
Closes gh-31680
2022-10-04 17:09:22 +01:00
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
2022-10-04 00:29:22 -07:00
Andy Wilkinson
3ab36074dc Make management.tracing.enabled are first-class property
This will allow metadata to be generated for it automatically.

Closes gh-31656
2022-10-03 14:28:23 +01:00
Andy Wilkinson
6d4390e034 Simplify ConditionalOnEnabledTracing
Closes gh-32572
2022-10-03 14:26:41 +01:00
Andy Wilkinson
69c8959e6d Remove remnants of references to GlobalKeyValuesProviders
Closes gh-31841
2022-10-03 14:03:15 +01:00
Stephane Nicoll
c2b8d3de21 Declare beans that can be instantiated at build-time static
This commit updates the bean factory methods for beans that can be
instantiated at build-time to be static. Doing so makes sure that
the enclosing configuration class does not have to be resolved in
order to create the instance.

Closes gh-32570
2022-10-03 14:36:04 +02:00
Johnny Lim
d6cfcd0825 Fix compile errors
Closes gh-32569
2022-10-02 18:38:28 +02:00
Andy Wilkinson
522cb1c0ea Polish deprecation warnings
See gh-32541
2022-09-30 18:51:37 +01:00
Andy Wilkinson
dbcb291b7a Polish
See gh-32541
2022-09-30 18:31:01 +01:00
Andy Wilkinson
bcb5e84129 Avoid using reflection when creating composite health contributors
Closes gh-32541
2022-09-30 17:03:02 +01:00
Andy Wilkinson
51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2022-09-30 14:39:05 +01:00
Brian Clozel
5b092f5d80 Polish
See gh-32518
2022-09-30 12:52:22 +02:00
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
2022-09-30 11:24:35 +02:00
Stephane Nicoll
3702c71fc1 Adapt to Spring AOT changes 2022-09-29 18:55:41 +02:00
Andy Wilkinson
17953eeb33 Merge branch '2.7.x'
Closes gh-32544
2022-09-29 11:41:15 +01:00
Andy Wilkinson
3ef633b096 Merge branch '2.6.x' into 2.7.x
Closes gh-32543
2022-09-29 11:39:42 +01:00
Andy Wilkinson
84a25c7dcf Configure Log4j2 classpath overrides consistently
Closes gh-32537
2022-09-29 11:25:21 +01:00
Andy Wilkinson
f10d696c46 Merge branch '2.7.x'
Closes gh-32536
2022-09-29 10:04:45 +01:00
Andy Wilkinson
9f5b7db553 Merge branch '2.6.x' into 2.7.x
Closes gh-32535
2022-09-29 10:04:19 +01:00
Andy Wilkinson
be48f37a83 Fix LogbackMetrics auto-config test with Logback and Log4j2 on cp
Closes gh-32533
2022-09-29 10:03:52 +01:00
dreis2211
388134713e Remove unused MockReactiveWebServerFactory
See gh-32526
2022-09-29 09:33:29 +02:00
Andy Wilkinson
0bfa9cd704 Upgrade to Logback 1.4 and SLF4J 2.0
Closes gh-12649
2022-09-28 21:14:08 +01:00
Andy Wilkinson
574242b44f Polish "Break cycles between Zipkin senders and HTTP client observation"
See gh-32528
2022-09-28 20:28:11 +01:00
Marcin Grzejszczak
b41ed44b60 Break cycles between Zipkin senders and HTTP client observation
Previously, RestTemplateBuilder and WebClient.Builder beans were used
to create the HTTP client for sending out spans. Those same beans are
also instrumented for observability which results in a cycle.

This commit breaks the cycle by not using the application-web
builders to create the RestTemplate and WebClient's used by the Zipkin
senders. Instead, builders are created inline, with new callbacks
being introduced to allow the user to customize these Zipkin-specific
builders.

See gh-32528
2022-09-28 20:11:44 +01:00
Andy Wilkinson
8c74b62888 Polish "Prefer WebClient to RestTemplate for Zipkin's Sender"
See gh-32529
2022-09-28 19:07:27 +01:00
Marcin Grzejszczak
cd3b3d468a Prefer WebClient to RestTemplate for Zipkin's Sender
Previously, a Webclient-based sender was only for reactive web
applications, falling back to a RestTemplate-based sender in all
other cases.

With this commit we now prefer to use WebClient if it is available,
irrespective of the web application type. The assumption is that
if the user has WebClient on the classpath, it's either a reactive
web application, or it's a servlet web application or non-web
application but WebClient is preferred.

See gh-32529
2022-09-28 19:04:30 +01:00
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
2022-09-27 22:19:01 +02:00
Andy Wilkinson
36a4b36ccb Polish "Add support for MDC, Context Propagation (via B3 and W3C), and Baggage"
See gh-32480
2022-09-27 16:47:09 +01:00
Marcin Grzejszczak
52d1436dc6 Add support for MDC, Context Propagation (via B3 and W3C), and Baggage
See gh-32480
2022-09-27 16:47:03 +01:00
Andy Wilkinson
5449397463 Require micrometer-tracing-bridge-otel to auto-configure OTel
Closes gh-32503
2022-09-27 09:10:44 +01:00
Andy Wilkinson
6cc3619675 Require micrometer-tracing-bridge-brave to auto-configure Brave
Closes gh-32502
2022-09-27 08:35:22 +01:00
Vedran Pavic
230f2cda84 Migrate to AuthorizationFilter in Spring Security auto-config
This commit updates Servlet based Spring Security auto-configuration
to use AuthorizationFilter, which is intended to supersede
FilterSecurityInterceptor.

See gh-31255
2022-09-22 13:53:54 +01:00
Scott Frederick
08022ba86e Remove support for locating imports using spring.factories
With this commit, loading `@AutoConfiguration`,
`@ImportAutoConfiguration`, and `@ManagementContextConfiguration`
classes is supported with `.imports` files only. Support for loading
these classes with `spring.factories` is removed.

Closes gh-29699
2022-09-21 17:34:51 -05:00
Scott Frederick
f9c341c75a Revert "Generate the AutoConfiguration.imports file from annotations"
This reverts commit da4de7d67d.
2022-09-21 14:50:15 -05:00
Scott Frederick
d62d7ca75d Revert "Generate ManagementContextConfiguration.imports file from annotations"
This reverts commit 6b3b0dd3a6.
2022-09-21 14:50:15 -05:00
Andy Wilkinson
b084019d34 Reverse the order of tracing and metrics handlers
Closes gh-32463

Co-authored-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2022-09-21 19:05:21 +01:00
Andy Wilkinson
78a64d7f61 Allow DefaultMeterObservationHandler to be replaced by user's bean
Closes gh-32462

Co-authored-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2022-09-21 19:05:07 +01:00
Andy Wilkinson
5cb68eab1e Remove HotSpot specifics from HeapDumper strategy interface
Closes gh-27533
2022-09-16 12:53:43 +01:00
Stephane Nicoll
84298e3326 Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29005
2022-09-12 10:13:03 +02:00
Andy Wilkinson
144fdaa703 Merge branch '2.6.x' into 2.7.x
Closes gh-32283
2022-09-09 15:14:40 +01:00
Andy Wilkinson
78f4242e46 Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
2022-09-09 15:13:43 +01:00
Brian Clozel
89c61e9093 Adapt GlobalObservationConvention imports
See micrometer-metrics/micrometer#3387
2022-09-09 14:30:53 +02:00
Phillip Webb
46be4a3f30 Merge branch '2.7.x' 2022-09-08 19:38:18 -07:00
Phillip Webb
e88a682220 Merge branch '2.6.x' into 2.7.x 2022-09-08 19:37:52 -07:00
Phillip Webb
85697ac482 Update copyright year of changed files 2022-09-08 19:36:59 -07:00
Jonatan Ivanov
13a2ea9194 Build against Micrometer 1.10.0-M5 and Tracing 1.0.0-M8 snapshots
See gh-32048

Co-authored-by: Marcin Grzejszczak <mgrzejszczak@vmware.com>
2022-09-06 20:15:51 +01:00
Stephane Nicoll
e5d0e34268 Adapt to recent changes in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29082
See https://github.com/spring-projects/spring-framework/issues/28877
2022-09-05 18:23:05 +02:00
Scott Frederick
6b3b0dd3a6 Generate ManagementContextConfiguration.imports file from annotations
This commit adds the
`ManagementContextConfigurationImportsAnnotationProcessor` to
the `spring-boot-autoconfigure-processor` annotation processor
module.

Closes gh-32222
2022-09-02 16:27:59 -05:00
Scott Frederick
da4de7d67d Generate the AutoConfiguration.imports file from annotations
This commit adds the `AutoConfigurationImportsAnnotationProcessor` to
the `spring-boot-autoconfigure-processor` annotation processor
module. When added to a project build, the annotation processor will
generate the
`org.springframework.boot.autoconfigure.AutoConfiguration.imports`
file automatically from `@AutoConfiguration`-annotated classes. It
also applies the annotation processor to the Spring Boot build.

Closes gh-31228
2022-09-02 15:10:22 -05:00
Andy Wilkinson
795ea289db Adapt to BindingReflectionHintsRegistrar moving package 2022-09-02 19:46:02 +01:00
Andy Wilkinson
cf8e84d406 Adapt to BindingReflectionHintsRegistrar moving into spring-core 2022-09-02 17:34:29 +01:00
Andy Wilkinson
d6e9a03136 Adapt to synthesized annotation changes in Framework 2022-09-02 17:01:51 +01:00
Phillip Webb
44f1949c5e Polish hint API calls 2022-09-01 19:43:43 -07:00
Madhura Bhave
47effdcade Support role-based sanitization for actuator endpoints
Closes gh-32156
2022-08-24 16:03:58 -07:00
Stephane Nicoll
24a52aa66d Annotate actuator internal infrastructure with @Reflective
This commit simplifies the registration of hints for the infrastructure
of the Actuator that is invoked via reflection.
2022-08-17 17:25:06 +02:00
Stephane Nicoll
e6977777cc Merge branch '2.7.x'
Closes gh-32100
2022-08-17 09:10:13 +02:00
Stephane Nicoll
ca63a6e9ad Merge branch '2.6.x' into 2.7.x
Closes gh-32099
2022-08-17 09:10:02 +02:00
Stephane Nicoll
191593cf15 Review Git contribution documentation
Closes gh-31904
2022-08-17 08:58:56 +02:00
Madhura Bhave
cea6492c4a Align default JMX and WEB endpoint exposures
Closes gh-32005
2022-08-16 14:29:08 -07:00
Stephane Nicoll
888ccfea2d Adapt to changes in Spring Framework 2022-08-16 16:02:00 +02:00
Andy Wilkinson
ba93e6c0ed Restore support for Jersey
Closes gh-28637
2022-08-08 15:45:20 +01:00
Andy Wilkinson
fb2f7c1e38 Fix test to create correct type of child context
Closes gh-32002
2022-08-08 14:18:40 +01:00
Madhura Bhave
0991bd3983 Harmonize data configuration
Any classes that rely on Spring Data being on the classpath
have been moved under a data package.

Certain configuration properties have also been updated to
accurately reflect whether Spring Data is required for the
auto-configuration to work.

Closes gh-11574
2022-08-05 13:32:25 -07:00
Stephane Nicoll
1af5994d8f Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/28927
2022-08-05 10:39:36 +02:00
Andy Wilkinson
2f0dfc341c Merge branch '2.7.x'
Closes gh-31972
2022-08-03 15:20:34 +01:00
Andy Wilkinson
700460c322 Merge branch '2.6.x' into 2.7.x
Closes gh-31971
2022-08-03 14:58:07 +01:00
Andy Wilkinson
fa73b73898 Fail build on missing configuration property descriptions
Closes gh-31916
2022-08-03 14:45:42 +01:00
Johnny Lim
6a4681baf5 Polish
See gh-31948
2022-08-02 15:14:23 +02:00
Moritz Halbritter
eaf8683e8d Fix timeunit in ZipkinConfigurations to milliseconds instead of seconds
Closes gh-31957
2022-08-02 13:40:00 +02:00
Moritz Halbritter
767631e2cc Fix bean chicken and egg problem with WavefrontSender
Closes gh-31954
2022-08-02 11:19:24 +02:00
Brian Clozel
38f1bc9793 Reinstate Spring for GraphQL auto-configuration
This commit adds the Spring for GraphQL auto-configuration back
into Spring Boot 3.0, now that a 1.1.0 release is scheduled with the
required baseline. This release also needs GraphQL Java 19.0 as a
baseline.

Closes gh-31809
2022-08-01 14:33:25 +02:00
Madhura Bhave
a82b95c955 Merge branch '2.7.x' into main
Closes gh-31927
2022-07-29 11:33:41 -07:00
Madhura Bhave
2884ec81e9 Merge branch '2.6.x' into 2.7.x
Closes gh-31926
2022-07-29 11:33:17 -07:00
Madhura Bhave
cc15eb0b96 Configure existing probes at additional path when necessary
Fixes gh-30612
2022-07-29 11:31:19 -07:00
Stephane Nicoll
db0e008c01 Register composed annotations explicitly
Closes gh-31919
2022-07-29 16:41:50 +02:00
Phillip Webb
22144987e9 Update copyright year of changed files 2022-07-29 12:10:03 +01:00
Phillip Webb
e08c16dfd6 Polish 2022-07-29 12:10:02 +01:00
Phillip Webb
57e967576e Adapt to upstream Spring Framework AOT changes 2022-07-27 21:44:18 +01:00
Stephane Nicoll
fdb1ee5f97 Adapt to deprecations in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/27954
See gh-29699
2022-07-27 18:18:09 +02:00
Stephane Nicoll
c413f9adbe Merge branch '2.7.x'
Closes gh-31884
2022-07-27 09:23:39 +02:00
Stephane Nicoll
53a652ec65 Merge branch '2.6.x' into 2.7.x
Closes gh-31883
2022-07-27 09:23:05 +02:00
Adrian Bob
aad9c8906a Disable auto-detection in tests that start Hazelcast
This commit updates test configurations to disable auto-detection of
Hazelcast instances.

See gh-31863
2022-07-27 08:16:48 +02:00
Stephane Nicoll
782e3f75b6 Polish Hazelcast configuration
This commit updates the XSD to 4.2 and removes the "tcp-ip" network
option as it is disabled by default.

See gh-31863
2022-07-27 08:15:53 +02:00
Stephane Nicoll
193c1d7acf Adapt to changes in DefaultGenerationContext
See https://github.com/spring-projects/spring-framework/issues/28877
2022-07-26 18:06:46 +02:00
Phillip Webb
7377d85096 Merge branch '2.7.x'
Closes gh-31866
2022-07-26 12:18:14 +01:00
Phillip Webb
a4ef6a7c5c Merge branch '2.6.x' into 2.7.x
Closes gh-31865
2022-07-26 12:13:16 +01:00
Phillip Webb
f8412847dc Update copyright year for "Fix typos in code and documentation"
See gh-31734
2022-07-26 12:08:30 +01:00
Marc Wrobel
dbfc6bded4 Fix typos in code and documentation
See gh-31734
2022-07-26 12:08:07 +01:00
Phillip Webb
b93dbd56e8 Merge branch '2.7.x' 2022-07-26 10:51:17 +01:00
Phillip Webb
3931e82841 Merge branch '2.6.x' into 2.7.x 2022-07-26 10:50:42 +01:00
Phillip Webb
4bcec6e0ee Polish 2022-07-26 10:50:01 +01:00
Olga Maciaszek-Sharma
57dc274284 Switch to Spring Framework SNAPSHOTs
Switch to Spring Framework SNAPSHOTs and adapt to updated APIs.

See gh-31834
2022-07-21 13:42:48 +01:00
Andy Wilkinson
de672f4330 Merge branch '2.7.x'
Closes gh-31819
2022-07-20 21:02:06 +01:00
Andy Wilkinson
2e98cafcca Merge branch '2.6.x' into 2.7.x
Closes gh-31818
2022-07-20 21:01:47 +01:00
Andy Wilkinson
ab2b04fafd Find health contributors in ancestor contexts in non-reactive apps
Previously, health contributors in a non-reative app were found by
retrieving them from the application context rather than via
dependency injection. This results in only contributors from the
current context being found, with contributors in ancestor contexts
ignored.

This commit moves to injection of the contributors, aligning the
behaviour with that of a reactive application.

Closes gh-27308
2022-07-20 20:52:02 +01:00
Vedran Pavic
f1bf80f5e1 Upgrade to Flyway 9.0.1
See gh-31723
2022-07-20 15:44:00 +01:00
Andy Wilkinson
18d3d4de5d Merge branch '2.7.x'
Closes gh-31805
2022-07-20 10:17:56 +01:00
Andy Wilkinson
10e19d504a Merge branch '2.6.x' into 2.7.x
Closes gh-31804
2022-07-20 10:17:39 +01:00
Andy Wilkinson
628c2cd0b1 Ensure JMX endpoints are uniquely named in a context hierarchy
Closes gh-31718
2022-07-20 10:15:52 +01:00
Moritz Halbritter
5030cfedcc Revert "Make MeterRegistry lazy in TimerObservationHandlerObservationRegistryCustomizer"
This reverts commit 04391275c1.
2022-07-19 16:33:35 +02:00
Andy Wilkinson
5c057a2730 Auto-configure the new Elasticsearch clients
This commit introduces auto-configuration for the new Elasticsearch
clients that are based upon their new Java client. The new Java
client builds on top of their existing low-level REST client,
replacing the high-level REST client which has been deprecated.
As part of introducing support for the new Elasticsearch client,
the auto-configuration for the templates (both imperative and
reactive) provided by Spring Data has also been updated to use the
new templates that build upon the new Java client.

As part of these changes, support for the high-level REST client and
the old Spring Data Elasticsearch templates has been removed. One
significant change is that the new reactive template is no longer
based on WebClient. As a result, the WebClient-specific configuration
property has been removed.

Closes gh-30647
Closes gh-28597
Closes gh-31755
2022-07-19 15:26:42 +01:00
Stephane Nicoll
51cba6ec72 Polish "Add AOT support for actuator"
See gh-31671
2022-07-19 13:02:49 +02:00
Moritz Halbritter
584b7d1343 Add AOT support for actuator
Mainly adds reflection hints for the actuator infrastructure.
Also adds the OperationReflectiveProcessor, which registers the
@ReadMethod, @DeleteMethod and @WriteMethod annotated methods for
reflection and adds reflection hints for method return types.

See gh-31671
2022-07-19 13:02:48 +02:00
Andy Wilkinson
3405a54f9e Exclude Jetty toolchain dependencies in favor of official API artifacts
Closes gh-31720
2022-07-14 13:55:26 +01:00
Madhura Bhave
7c56a45d3e Drop support for String path matching for MVC endpoints
Closes gh-31700
2022-07-13 14:03:32 -07:00
Stephane Nicoll
9cace34a19 Merge branch '2.7.x'
Closes gh-31705
2022-07-13 13:50:36 +02:00
Stephane Nicoll
b8647551cb Merge branch '2.6.x' into 2.7.x
Closes gh-31704
2022-07-13 13:50:17 +02:00
Johnny Lim
b17cb9b92b Polish gh-31231
See gh-31540
2022-07-13 13:49:13 +02:00
Madhura Bhave
d66e108703 Revert actuator changes related to path pattern parsing
See gh-31547
2022-07-12 15:25:41 -07:00
Madhura Bhave
7954f5e566 Adapt to change in default strategy for URL path matching in Spring MVC
Closes gh-31547
2022-07-12 09:59:44 -07:00
Andy Wilkinson
08d37b7fb6 Merge branch '2.7.x'
Closes gh-31694
2022-07-12 14:29:49 +01:00
Andy Wilkinson
1c2b0ae705 Merge branch '2.6.x' into 2.7.x
Closes gh-31693
2022-07-12 14:28:10 +01:00
Andy Wilkinson
7c55639167 Depend on log4j-api directly rather than via Elastic's transitives
Closes gh-31692
2022-07-12 14:27:56 +01:00
Andy Wilkinson
99fabfa934 Revert "Remove spring-aspects dependency following fix in Data JPA"
This reverts commit cd6c7cd6c9.

The fix in Spring Data JPA is incomplete so we need to reinstate the
workaround.
2022-07-12 10:46:06 +01:00
Andy Wilkinson
cd6c7cd6c9 Remove spring-aspects dependency following fix in Data JPA
The recent changes in Spring Data JPA [1] mean that we no longer need
a dependency on spring-aspects for Data JPA's hint registration to
succeed.

5821272112
2022-07-12 10:08:32 +01:00
Andy Wilkinson
9b113272d1 Reinstate support for Hibernate Metrics
Closes gh-31675
2022-07-12 09:36:54 +01:00
Oliver Drotbohm
b10c57551c Upgrade to Hibernate 6.1.1.Final
This commit makes the following potentially breaking changes:

- Dependency management for modules that do not exist in Hibernate
  6.1 has been removed.
- Hibernate's modules are now in the org.hibernate.orm group. Users
  not using the starter or using modules that are not in the starter
  will have to update their build configuration accordingly.
- spring.jpa.hibernate.use-new-id-generator-mappings has been removed
  as Hibernate no longer supports switching back to the old ID
  generator mappings.

Co-authored-by: Andy Wilkinson <wilkinsona@vmware.com>

Closes gh-31674
2022-07-12 09:36:34 +01:00
Andy Wilkinson
acd8d05315 Update copyright date of changed file 2022-07-08 18:13:45 +01:00
Andy Wilkinson
efc5391496 Adapt to deprecations in Framework's scheduling APIs
See gh-31241
2022-07-08 17:53:55 +01:00
Moritz Halbritter
8639552405 Start building against Micrometer Tracing 1.0.0-M6 snapshots
See gh-31657
2022-07-08 14:01:13 +02:00
Andy Wilkinson
2821629d54 Remove unchecked raw casts that are now redundant
Closes gh-31326
2022-07-08 12:52:59 +01:00
Andy Wilkinson
7f00378eaf Polish "Start building against Spring Data 2022.0.0-M5 snapshots"
See gh-31582
2022-07-07 16:32:13 +01:00
Andy Wilkinson
19b7e012f3 Upgrade to Prometheus Client 0.16.0
Closes gh-31597
2022-07-07 14:34:17 +01:00
Andy Wilkinson
e9136e023b Adapt to trailing slashes no longer being matched by default
See gh-31563
2022-07-07 14:16:20 +01:00
Moritz Halbritter
04391275c1 Make MeterRegistry lazy in TimerObservationHandlerObservationRegistryCustomizer
Closes gh-31580
2022-07-06 14:18:53 +02:00
dreis2211
458f989cf3 Use switch expressions where appropriate
See gh-31527
2022-06-24 16:19:28 +01:00
Andy Wilkinson
631b1e0d76 Merge branch '2.7.x'
Closes gh-31526
2022-06-24 13:10:10 +01:00
Andy Wilkinson
1e08f545d0 Merge branch '2.6.x' into 2.7.x
Closes gh-31525
2022-06-24 13:05:06 +01:00
Andy Wilkinson
f49b16c645 Upgrade to Spring Java Format 0.0.34
Closes gh-31524
2022-06-24 12:57:52 +01:00
Stephane Nicoll
fe39598e81 Adapt to latest API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/28585
2022-06-23 16:30:34 +02:00
Phillip Webb
b85469a5a5 Merge branch '2.7.x'
Closes gh-31502
2022-06-22 16:33:42 -07:00
Phillip Webb
d64f601dfd Merge branch '2.6.x' into 2.7.x
Closes gh-31501
2022-06-22 16:31:52 -07:00
Phillip Webb
aed4c47adb Polish CompositeHandlerExceptionResolver
See gh-31495
2022-06-22 16:23:38 -07:00
Guirong Hu
3592292e4b Use ExceptionHandler when Spring MVC uses a different management port
Update `CompositeHandlerExceptionResolver` to search for beans in
all contexts. Note that `BeanFactoryUtils.beansOfTypeIncludingAncestors`
cannot not be used since we need to pick up all beans, even if they
have the same name.

See gh-31495
2022-06-22 16:13:26 -07:00
Moritz Halbritter
bb6c56e5f0 Polish "Add WebClient based sender for Zipkin"
See gh-30792
2022-06-22 10:25:18 +02:00
StefanBratanov
12037bd131 Add WebClient based sender for Zipkin
See gh-30792
2022-06-22 09:58:05 +02:00
Moritz Halbritter
bc931cb32c Revert "Polish EndpointRequest"
This reverts commit 35997a30a3.
2022-06-21 15:43:57 +02:00
Moritz Halbritter
35997a30a3 Polish EndpointRequest
- Remove redundant cast
2022-06-21 14:30:05 +02:00
Moritz Halbritter
c8c552d95b Polish ObservationAutoConfiguration
- Use a better name for the "only metrics, no tracing" case
2022-06-21 11:32:27 +02:00
Moritz Halbritter
06cdc91c85 Polish ObservationAutoConfiguration
- Use a better name for the "only metrics, no tracing" case
- Use more concrete return types
2022-06-21 11:31:11 +02:00