- Adds a ObservationRegistry bean
- Add support for ObservationRegistryCustomizers
- Enables timer creation for observations if micrometer-core is on
the classpath
- Registers ObservationPredicate, GlobalTagsProvider and
ObservationHandler on the MeterRegistry
- Applies grouping to the ObservationHandlers: MeterObservationHandler
are added to a FirstMatchingCompositeObservationHandler
- If micrometer-tracing is on the classpath, the
TracingObservationHandler are added to a
FirstMatchingCompositeObservationHandler
Closes gh-29666
- Moved from 'management.metrics.export.<product>' to
'management.<product>.metrics.export'
- The default enabled property moved from 'management.metrics.export.defaults.enabled'
to 'management.defaults.metrics.export.enabled'
Closes gh-30381
Micrometer duplicated the binders in a separate module named
micrometer-binders, and marked the binders in the core module as
deprecated. This commit changes the imports to use the new binders in
the micrometer-binders module. Additionally, the auto-configurations
honor user-supplied beans which use the old binders in the
micrometer-core module.
See gh-30014
The import selector will now, in addition to spring.factories, look for
ManagementContextConfiguration classes in a file called
META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports
The existing ManagementContextConfigurations have been moved from
spring.factories to the new file.
Closes gh-29730
Implements a new AutoConfigurationLoader, which loads
auto-configurations from a file in META-INF/spring-boot.
Adapts the AutoConfigurationImportSelector to use the new loader.
Adapts the ImportAutoConfigurationImportSelector to use the new loader.
Adapts the metadata plugin in the build to additionally load the
auto-configurations from the new file.
Updates the documentation for auto-configurations and test slices.
Closes gh-29872
Prior to this commit, limiting the exposure to a specific
technology in `ConditionalOnAvailableEndpoint` would not have
any effect because all endpoints would be considered to be available
if the app was running on Cloud Foundry. This caused issues in cases
where beans were meant to be exposed only if the endpoint was actually
exposed.
This commit adds CLOUD_FOUNDRY to the `EndpointExposure`
enum. This allows `ConditionalOnAvailableEndpoint` to limit
by exposure even when the Cloud Foundry platform is active.
Fixes gh-29532
Update `IncludeExcludeGroupMemberPredicate` so that exclusion rules are
also applied to child contributors. The restores the behavior of Spring
Boot 2.5.x where `management.endpoint.health.group.mygroup.exclude=db`
would exclude 'db/one', 'db/two' etc.
Fixes gh-29251
This commit adds the required infrastructure for instrumenting the
GraphQL engine and datafetchers in order to collect metrics.
With this infrastructure, we can collect metrics such as:
* "graphql.request", a timer for GraphQL query
* "graphql.datafetcher", a timer for GraphQL datafetcher calls
* "graphql.request.datafetch.count", a distribution summary of
datafetcher count per query
* "graphql.error", an error counter
See gh-29140