Commit Graph

1986 Commits

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