Commit Graph

841 Commits (8035af90f09606e06f1840559a12afd1bc1b9215)

Author SHA1 Message Date
Phillip Webb fd5c43cdc9 Separate endpoint concerns
Update endpoint code to provide cleaner separation of concerns.
Specifically, the top level endpoint package is no longer aware of
the fact that JMX and HTTP are ultimately used to expose endpoints.
Caching concerns have also been abstracted behind a general purpose
`OperationMethodInvokerAdvisor` interface.

Configuration properties have been refined to further enforce
separation. The `management.endpoint.<name>` prefix provides
configuration for a  single endpoint (including enable and cache
time-to-live). These  properties are now technology agnostic (they
don't include `web` or `jmx` sub properties).

The `management.endpoints.<technology>` prefix provide exposure specific
configuration. For example, `management.endpoints.web.path-mapping`
allow endpoint URLs to be changed.

Endpoint enabled/disabled logic has been simplified so that endpoints
can't be disabled per exposure technology. Instead a filter based
approach is used to allow refinement of what endpoints are exposed over
a given technology.

Fixes gh-10176
7 years ago
Andy Wilkinson cf485ce144 Merge branch '1.5.x' 7 years ago
Andy Wilkinson 1a094598b8 Add an endpoint for retrieving information about scheduled tasks
Closes gh-8831
7 years ago
Andy Wilkinson 806cf32549 Drop redundant web extension for sessions endpoint
Changes made in f1cfad67 mean that the web-specific extension is no
longer required as the infrastructure now automatically produces a
bad request (400) response when a required query parameter is absent.

See gh-10372
7 years ago
Andy Wilkinson c7cac927f7 Bring spring-boot-actuator's README up to date
Closes gh-10686
7 years ago
Andy Wilkinson 2723892be3 Consistently include context id in endpoint responses
Closes gh-10980
7 years ago
Andy Wilkinson 07462be090 Polish 7 years ago
Phillip Webb 06b1b453a6 Limit when SystemEnvironment mapping is used
Update `SpringConfigurationPropertySource` so that the
`SystemEnvironmentPropertyMapper` is only used for the "actual" system
environment property source. This allows SystemEnvironmentProperySource
class to be used for other purposes (for example, Spring Cloud uses it
to as an override source providing decryption).

Only property sources named `systemEnvironment` or ending with
`-systemEnvironment` now have the `SystemEnvironmentPropertyMapper`
applied. The `TestPropertyValues` has been retrofitted to name the
source it adds appropriately.

Fixes gh-10840
7 years ago
Andy Wilkinson 723222aa95 Allow configuredLevel to be null when configuring a logger
Null value is used to indicate that the configured level should be
cleared.

Closes gh-10934
7 years ago
Andy Wilkinson 60afbdc868 Polish 7 years ago
Phillip Webb cf17e5708b Polish Micrometer 1.0.0-rc.3 upgrade
Polish Micrometer 1.0.0-rc.3 upgrade changes.

Closes gh-10906
7 years ago
Jon Schneider 65e6876025 Upgrade to Micrometer 1.0.0-rc.3
Upgrade to Micrometer 1.0.0-rc.3 and refactor existing
auto-configuration to align with updated APIs.

Note that Spring MVC instrumentation has now changed from an interceptor
to a Filter.

See gh-10906
7 years ago
Phillip Webb fa191d8c73 Align ReactiveWebApplicationContext with framework
Refactor `ReactiveWebApplicationContext` implementations to align closer
with the `WebApplicationContext` implementations defined in
Spring Framework.

The following classes are now provided:

  - `AnnotationConfigReactiveWebApplicationContext` -- A refreshable
    reactive web context with support for `@Configuration` classes.

  - `GenericReactiveWebApplicationContext` -- A non-refreshable reactive
    GenericApplicationContext.

  - `ReactiveWebServerApplicationContext` --  A non-refreshable reactive
    GenericApplicationContext with support for server discovery.

  - `AnnotationConfigReactiveWebServerApplicationContext` -- A
    non-refreshable reactive `GenericApplicationContext` with support
    for `@Configuration` classes and server discovery.

These classes roughly align to the following Servlet equivalents:

  - `AnnotationConfigWebApplicationContext` (Spring Framework)
  - `GenericWebApplicationContext` (Spring Framework)
  - `ServletWebServerApplicationContext` (Spring Boot)
  - `AnnotationConfigServletWebServerApplicationContext` (Spring Boot)

An additional `ConfigurableReactiveWebEnvironment` interface as also
been introduced, primarily for `@ConditionalOnWebApplication` to use.

Fixes gh-10852
7 years ago
Phillip Webb 3f00ba3cad Polish 7 years ago
Madhura Bhave d50fe8874f Add CF support for reactive actuators
Closes gh-10780
7 years ago
Phillip Webb c55b5d7111 Polish 7 years ago
Phillip Webb 44d8e09aac Polish endpoint parameter name discovery
Move logic from `ParameterNameMapper` into `ReflectiveOperationInvoker`
in order to reduce the surface area of the public API.

Also rename some classes for consistency.
7 years ago
Stephane Nicoll 350377c3f2 Polish "Handle AbstractReactiveHealthIndicator.doHealthCheck exception"
Closes gh-10822
7 years ago
Nikolay Rybak 99c2fa699e Handle AbstractReactiveHealthIndicator.doHealthCheck exception
Exceptions inside AbstractReactiveHealthIndicator.doHealthCheck()
method, outside of Mono pipeline, could fail whole endpoint
response instead of returning `DOWN` status from indicator.

See gh-10822
7 years ago
Stephane Nicoll 813a6966ef Merge branch '1.5.x' 7 years ago
Stephane Nicoll 555f51bfdb Fix checkstyle violation 7 years ago
Stephane Nicoll 00e0d61ee4 Use ParameterNameDiscoverer to detect operation's parameter names
Closes gh-10117
7 years ago
Stephane Nicoll 56afc25304 Allow to customize the path of a web endpoint
This commit introduces a endpoints.<id>.web.path generic property that
allows to customize the path of an endpoint. By default the path is the
same as the id of the endpoint.

Such customization does not apply for the CloudFoundry specific
endpoints.

Closes gh-10181
7 years ago
Vedran Pavic ac10fa31cd Upgrade to Hazelcast 3.9
Closes gh-10764
7 years ago
Andy Wilkinson 2b426c30a6 Polish “Remove explicit type arguments”
Closes gh-10494
7 years ago
Johnny Lim 6168fae720 Remove explicit type arguments
See gh-10494
7 years ago
Andy Wilkinson a256602c7b Polish 7 years ago
Andy Wilkinson 688da652ac Polish 7 years ago
dreis2211 3b71393e0a Use Assert.state() with Supplier where possible
See gh-10658
7 years ago
Johnny Lim 5aa32b3d0f Polish
Closes gh-10636
7 years ago
Andy Wilkinson 0af4536316 Ensure media types are used consistently across endpoint mappings
Previously, the media types that are consumed and produced by
endpoints were configured in the web stack-specific configuration.
Furthermore, these configured media types were not used for the
discovery "endpoint" that links to all the available endpoints.

This commit introduces EndpointMediaTypes that is configred in a
single, central location and then used to configure the consumed and
produced media types for endpoints exposed via WebFlux, Web MVC, and
Jersey as well as the discovery "endpoint" provided by each.

Closes gh-10659
7 years ago
Andy Wilkinson 1bd44d89d6 Test metrics endpoint using tag available on Java 9 as well as 8
See gh-10524
7 years ago
Phillip Webb 22a6ee03eb Polish MetricsEndpoint
See gh-10535
7 years ago
Jon Schneider 37975836f0 Support composite registries in MetricsEndpoint
Update `MetricsEndpoint` to deal with `CompositeMeterRegistry`
instances.

Closes gh-10535
7 years ago
dreis2211 a76005e8d9 Remove concatenations with empty string
Closes gh-10512
7 years ago
Phillip Webb 748e0779b6 Update copyright year for changed files 7 years ago
Jon Schneider bc05352290 Improve new metrics endpoint
- New repeatable tag query parameter to refine a query by one or more
  tag key/value pairs.
- Selecting a metric by name (and optionally a set of tags) reports
  statistics that are the sum of the statistics on all time series
  containing the name (and tags).

Closes gh-10524
7 years ago
Andy Wilkinson 7fc272df6e Start building against Micrometer snapshots for 1.0.0-rc.2 7 years ago
Phillip Webb da0c4f5520 Increase endpoint integration test timeouts
Allow longer for test responses to be returned.

See gh-9316
7 years ago
Phillip Webb b87f9c11f1 Fix POMs for the updated build/release process
Fix POMs following project relocations and apply CI friendly Maven
conventions.

See gh-9316
7 years ago
Phillip Webb 0ba4830b4f Relocate projects to spring-boot-project
Move projects to better reflect the way that Spring Boot is released.

The following projects are under `spring-boot-project`:

  - `spring-boot`
  - `spring-boot-autoconfigure`
  - `spring-boot-tools`
  - `spring-boot-starters`
  - `spring-boot-actuator`
  - `spring-boot-actuator-autoconfigure`
  - `spring-boot-test`
  - `spring-boot-test-autoconfigure`
  - `spring-boot-devtools`
  - `spring-boot-cli`
  - `spring-boot-docs`

See gh-9316
7 years ago