Commit Graph

235 Commits

Author SHA1 Message Date
Phillip Webb a94ab673a3 Add health endpoint 'show-components' support
Add a `show-components` property under `management.endpoint.health` and
`management.endpoint.health.group.<name>` that can be used to change
when components are displayed.

Prior to this commit it was only possible to set `show-details` which
offered an "all or nothing" approach to the resulting JSON. The new
switch allows component information to be displayed whilst still hiding
potentially sensitive details returned from the actual `HealthIndicator`.

Closes gh-15076
2019-09-26 16:17:28 -07:00
Andy Wilkinson 4ab53dc8ce Fix broken and redirected links in the reference documentation
Fixes gh-18332
2019-09-24 15:19:04 +01:00
Alessandro Falappa 38fb16a79d Fix typos in HealthContributors definition
See gh-18249
2019-09-17 12:38:33 +01:00
Alessandro Falappa 4aa186d6e5 Remove duplicated row from HealthIndicators table
See gh-18248
2019-09-17 12:36:51 +01:00
Johnny Lim 5b41c3b608 Polish
See gh-18192
2019-09-12 14:55:47 +02:00
Andy Wilkinson 0074a7c662 Merge branch '2.1.x' 2019-09-09 14:03:55 +01:00
Andy Wilkinson 4f21b51a2b Polish one sentence per line in the reference docs 2019-09-09 14:00:12 +01:00
dreis2211 0975b5b220 Fix link formatting in custom HealthIndicator section
See gh-18170
2019-09-09 14:13:23 +02:00
Phillip Webb 230506b30c Merge branch '2.1.x' 2019-08-30 21:30:02 -07:00
Phillip Webb e4dfb74629 Polish 2019-08-30 21:29:54 -07:00
Phillip Webb 348d65b4fe Polish documentation 2019-08-30 19:13:12 -07:00
Phillip Webb dc870044c6 Merge branch '2.1.x' 2019-08-30 19:12:43 -07:00
Phillip Webb 7f9d143e01 Polish documentation
Update reference documentation source to use consistent attribute names
and fix a few formatting issues.
2019-08-30 17:11:14 -07:00
Phillip Webb ca53780c43 Merge branch '2.1.x'
Closes gh-18007
2019-08-29 18:05:31 -07:00
Phillip Webb 64d4bf823a Reformat documentation to one sentence per line
Update reference documentation to use one sentence per line formatting
as recommended by the Asciidoctor team.

Closes gh-12445
2019-08-29 14:58:48 -07:00
Andy Wilkinson b43827d626 Configure ping (formerly application) health indicator by default
This commit renames ApplicationHealthIndicator to PingHealthIndicator
and changes the auto-configuration so that it is now always configured
by default.

Closes gh-17926
2019-08-22 14:50:10 +01:00
Phillip Webb e03f822c6d Add support for health indicator groups
Update the `HealthEndpoint` to support health groups. The
`HealthEndpointSettings` interface has been replaced with
`HealthEndpointGroups` which provides access to the primary group
as well as an optional set of additional groups.

Groups can be configured via properties and may have custom
`StatusAggregator` and `HttpCodeStatusMapper` settings.

Closes gh-14022

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2019-08-21 18:43:25 -07:00
Phillip Webb 3c535e0de3 Add HealthContributor and refactor HealthEndpoint
Overhaul `HealthEndpoint` support to make it easier to support health
groups. Prior to this commit the `HealthIndicator` interface was used
for both regular indicators and composite indicators. In addition the
`Health` result was used to both represent individual, system and
composite health. This design unfortunately means that all health
contributors need to be aware of the `HealthAggregator` and could not
easily support heath groups if per-group aggregation is required.

This commit reworks many aspects of the health support in order to
provide a cleaner separation between a `HealthIndicator`and a
composite. The following changes have been made:

- A `HealthContributor` interface has been introduced to represent
  the general concept of something that contributes health information.
  A contributor can either be a `HealthIndicator` or a
  `CompositeHealthContributor`.

- A `HealthComponent` class has been introduced to mirror the
  contributor arrangement. The component can be either
  `CompositeHealth` or `Health`.

- The `HealthAggregator` interface has been replaced with a more
  focused `StatusAggregator` interface which only deals with `Status`
  results.

- `CompositeHealthIndicator` has been replaced with
  `CompositeHealthContributor` which only provides access to other
  contributors. A composite can no longer directly return `Health`.

- `HealthIndicatorRegistry` has been replaced with
  `HealthContributorRegistry` and the default implementation now
  uses a copy-on-write strategy.

- `HealthEndpoint`, `HealthEndpointWebExtension` and
  `ReactiveHealthEndpointWebExtension` now extend a common
  `HealthEndpointSupport` class. They are now driven by a
  health contributor registry and `HealthEndpointSettings`.

- The `HealthStatusHttpMapper` class has been replaced by a
  `HttpCodeStatusMapper` interface.

- The `HealthWebEndpointResponseMapper` class has been replaced
  by a `HealthEndpointSettings` strategy. This allows us to move
  role related logic and `ShowDetails` to the auto-configure module.

- `SimpleHttpCodeStatusMapper` and `SimpleStatusAggregator`
  implementations have been added which are configured via constructor
  arguments rather than setters.

- Endpoint auto-configuration has been reworked and the
  `CompositeHealthIndicatorConfiguration` class has been replaced
  by `CompositeHealthContributorConfiguration`.

- The endpoint JSON has been changed make `details` distinct from
  `components`.

See gh-17926
2019-08-21 18:43:25 -07:00
Phillip Webb 5f88c592b3 Polish 2019-08-20 19:27:43 -07:00
Stephane Nicoll d02000ecc0 Merge branch '2.1.x'
Closes gh-17840
2019-08-12 10:36:06 +02:00
dreis2211 2e32af4737 Fix syntax errors in docs
See gh-17835
2019-08-12 10:34:46 +02:00
Madhura Bhave 7997971b0e Merge branch '2.1.x'
Closes gh-17815
2019-08-08 15:16:20 -07:00
Madhura Bhave 1b62a05c40 Document Prometheus Pushgateway support
Closes gh-16853
2019-08-08 15:15:51 -07:00
Phillip Webb 890ea153bf Allow endpoint @Selector to capture all paths
Update `@Selector` with a `match` attribute that can be used to select
all remaining path segments. An endpoint method like this:

	 select(@Selector(match = Match.ALL_REMAINING) String... selection)

Will now have all reaming path segments injected into the `selection`
parameter.

Closes gh-17743
2019-07-31 12:44:46 +01:00
Phillip Webb 6675f49334 Switch to multi-line security configuration
Now that we have lambda style security configuration we can further
improve readability by switching to one statement per line.

See gh-17525
2019-07-29 11:28:51 +01:00
Madhura Bhave 39a7b9da38 Switch to lambda style security configuration
Closes gh-17525
2019-07-26 14:41:49 -07:00
Stephane Nicoll 94c35ae1de Polish "Make Actuator dedicated ConversionService configurable"
See gh-16449
2019-07-23 12:27:00 +02:00
Andy Wilkinson 3dc20ff934 Recommend third-party tracing/observability solutions
Closes gh-17047
2019-07-19 10:04:27 +01:00
Stephane Nicoll be988d7072 Polish "Add HealthIndicator for Hazelcast"
See gh-17499
2019-07-18 15:00:53 +02:00
Stephane Nicoll 62233a0750 Merge branch '2.1.x'
Closes gh-17554
2019-07-17 14:29:16 +02:00
Stephane Nicoll b6ca1eadeb Fix prefix for datasource metrics
Closes gh-17553
2019-07-17 14:28:12 +02:00
Stephane Nicoll 56ce2b8e3f Polish "Add metrics support for idle jdbc connections"
See gh-17504
2019-07-17 14:14:47 +02:00
Stephane Nicoll 3a49996dbd Merge branch '2.1.x'
Closes gh-17547
2019-07-17 10:30:36 +02:00
Stephane Nicoll a64317b114 Fix broken link to Spring Integration metrics section
Closes gh-17543
2019-07-17 10:26:40 +02:00
Johnny Lim 426ef749db Polish
See gh-17413
2019-07-09 07:40:30 +02:00
Phillip Webb f20b100a25 Merge branch '2.1.x'
Closes gh-17387
2019-07-01 11:42:07 -07:00
Phillip Webb 88b6a3308c Escape additional '{reference}' elements in asciidoc
Escape lines that look like variable references but should actually be
included verbatim.

Closes gh-17386
2019-07-01 11:39:49 -07:00
Phillip Webb c2e3354be0 Drop asciidoc partintro formatting
Since to no longer use docbook, we can't use `partintro`.

See gh-12005
2019-07-01 11:19:37 -07:00
Brian Clozel 809a3965c9 Add missing outcome tag for WebClient metrics
On error cases, the "outcome" tag would be missing from recorded metrics
for the `WebClient`.

This commit fixes this issue and improves the reference documentation by
mentioning the tag values used for error cases, when the client response
is not received (I/O errors, client error, etc).

Fixes gh-17219
2019-06-18 15:29:22 +02:00
Andy Wilkinson b603cd5d4b Disable Tomcat's MBean Registry by default
Closes gh-16498
2019-05-28 15:21:31 +01:00
Madhura Bhave 07d6eb6397 Disable auditing infrastructure by default
Prior to this commit, the audit auto-configuration provided
an `InMemoryAuditEventRepository` bean. This commit changes the auto-config
so that an `AuditEventRepository` is not provided and instead the auto-config
is conditional on the presence of a `AuditEventRepository` bean. This is done
to encourage the use of a custom implementation of `AuditEventRepository`
since the in-memory one is quite limited and not suitable for production.
A flag is available if the auto-configuration needs to be turned off even
in the presence of a bean.

Closes gh-16110
2019-05-03 13:48:29 -07:00
Madhura Bhave de128fed20 Disable HttpTrace infrastructure by default
Prior to this commit, the http trace auto-configuration provided
an `InMemoryHttpTraceRepository` bean. This commit changes the auto-config
so that an `HttpTraceRepository` is not provided and instead the auto-config
is conditional on the presence of a `HttpTraceRepository` bean. This is done
to encourage the use of a custom implementation of `HttpTraceRepository`
since the in-memory one is quite limited and not suitable for production.
A flag is available if the auto-configuration needs to be turned off even
in the presence of a bean.

Closes gh-15039
2019-05-03 12:00:37 -07:00
Stephane Nicoll 8045bf1f50 Polish "Allow configuration of auto-timed metrics"
Closes gh-15988
2019-05-01 08:17:06 +02:00
Tadaya Tsuyukubo 4df6f5dee0 Allow configuration of auto-timed metrics
When `management.metrics.web.server.auto-time-requests` is enabled
(default=true), Spring Boot collects metrics on controller methods even
when they are not annotated with `@Timed`.

When this happens, created metrics are based on the default
`@Timed` configuration and there is no way to customize the
configuration of those auto-timed controller metrics.

This commit adds default configurations to auto-timed requests on both
client and server sides.

See gh-15988
2019-05-01 08:16:42 +02:00
Andy Wilkinson 878a635bfb Merge branch '2.1.x' 2019-03-28 11:48:47 +00:00
Spring Operator 9fc3ac7d49 Use HTTPS for external links wherever possible
See gh-16320
2019-03-28 09:49:30 +00:00
Andy Wilkinson 864942ad4f Merge branch '2.0.x' into 2.1.x 2019-03-28 09:35:53 +00:00
Spring Operator 1a4c6f2dac Use HTTPS for external links wherever possible
See gh-16319
2019-03-27 20:06:52 +00:00
Madhura Bhave 2225b36299 Merge branch '2.1.x' 2019-03-22 15:18:23 -07:00
Madhura Bhave 1ad52b651a Document using the same port for the management server on CF
Closes gh-15640
2019-03-22 15:17:34 -07:00