Commit Graph

844 Commits

Author SHA1 Message Date
Brian Clozel 8325fce53e Fix formatting 2019-03-07 21:02:41 +01:00
Brian Clozel 6586bae889 Guard Endpoint bean declarations with ConditionalOnExposedEndpoint
This commit adds the newly introduced `@ConditionalOnExposedEndpoint`
conditional annotation to all auto-configured `Endpoint` in Actuator.

With that change, `EndPoint` instances and related infrastructure will
only be created when they are meant to be exposed and used. This will
save CPU and memory resources when Actuator is present.

Closes gh-16093
2019-03-07 20:13:44 +01:00
Brian Clozel 4ffbe6c9e8 Add @ConditionalOnExposedEndpoint condition
Prior to this commit, Actuator `Endpoint` instantiations would be
guarded by `@ConditionalOnEnabledEnpoint` condition annotations. This
feature saves resources as disabled endpoints aren't unnecessarily
instantiated.

By default, only `"health"` and `"info"` endpoints are exposed over the
web and all endpoints are exposed over JMX.

As of gh-16090, JMX is now disabled by default. This is an opportunity
to avoid instantiating endpoints if they won't be exposed at all, which
is more likely due to the exposure defaults.

This commit adds a new `@ConditionalOnExposedEndpoint` conditional
annotation that checks the `Environment` for configuration properties
under `"management.endpoints.web.exposure.*"` and
`"management.endpoints.jmx.exposure.*"`. In the case of JMX, an
additional check is perfomed, checking that JMX is enabled first.
The rules implemented in the condition itself are following the ones
described in `ExposeExcludePropertyEndpointFilter`.

See gh-16093
2019-03-07 20:05:23 +01:00
Andy Wilkinson 0959698c32 Upgrade to Jersey 2.28
Closes gh-16114
2019-03-06 12:58:35 +00:00
Andy Wilkinson d6a869fa98 Switch to Jakarta EE API dependencies where possible
Closes gh-16113
Closes gh-16112
Closes gh-16111
Closes gh-15916
Closes gh-15689
2019-03-06 11:20:51 +00:00
Brian Clozel ce9626d00f Disable JMX by default
This commit switches the default value for the `spring.jmx.enabled`
configuration property.
JMX is now disabled by default and can be enabled with
`spring.jmx.enabled=true`.

Closes gh-16090
2019-03-05 18:51:00 +01:00
Stephane Nicoll 715db153e3 Polish "Remove code deprecated in 2.1"
Closes gh-16013
2019-02-27 11:15:48 +01:00
Stephane Nicoll 7b0004d6c3 Fix formatting 2019-02-21 14:17:34 +01:00
Andy Wilkinson f2e3e274a8 Merge branch '2.1.x' 2019-02-21 08:19:43 +00:00
Andy Wilkinson 53326695ea Polish 2019-02-21 08:13:54 +00:00
Madhura Bhave 6f045d8891 Merge branch '2.1.x' 2019-02-20 16:13:20 -08:00
Madhura Bhave c3e47541ad EndpointRequest should check that the request is to the mgmt context
Fixes gh-15702
2019-02-20 16:08:26 -08:00
Andy Wilkinson de0c065625 Inject single-use configuration dependencies into bean methods
Closes gh-15751
2019-02-20 17:02:43 +00:00
Andy Wilkinson e6764bdc5a Merge branch '2.1.x' 2019-02-19 09:39:38 +00:00
Andy Wilkinson 55426208ab Provide type information for optional thread dump endpoint response fields
Closes gh-15989
2019-02-19 09:12:54 +00:00
Madhura Bhave 862ffcbbf4 Merge branch '2.1.x' 2019-02-13 13:33:14 -08:00
Madhura Bhave bbe555a4f5 Split Jersey management context configuration
This commit splits the management context configuration for jersey
into two separate configurations depending on if the type is SAME or
CHILD. The configuration for the SAME context should only kick in if
there is no existing ResourceConfig bean.

Fixes gh-15891
2019-02-13 13:27:54 -08:00
Andy Wilkinson 22192c2b5c Polish "Make auto-config of RestTemplate metrics back off with no builder bean"
Closes gh-15842
2019-02-12 14:35:38 +00:00
Raheela 8f3c4dbc64 Make auto-config of RestTemplate metrics back off with no builder bean
See gh-15842
2019-02-12 14:28:48 +00:00
Madhura Bhave 4d69e127c8 Merge branch '2.1.x' 2019-02-08 18:38:21 -08:00
Madhura Bhave 26da45aa9a Configure a JerseyApplicationPath bean for the actuators
This commit also ensures that Jersey-based actuator endpoints are
available before the user has configured a `ResourceConfig` bean

Fixes gh-15625
Fixes gh-15877
2019-02-08 18:38:01 -08:00
Stephane Nicoll 380d7ec01c Merge branch '2.1.x' 2019-02-08 09:21:06 +01:00
Johnny Lim 885c28891b Polish
Closes gh-15873
2019-02-08 09:20:15 +01:00
Andy Wilkinson ecb7e240eb Merge branch '2.1.x' 2019-02-05 12:33:19 +00:00
Andy Wilkinson 59c66eaf41 Correct documented path for locked synchronizer's identity hashcode
Closes gh-15847
2019-02-05 12:30:46 +00:00
Andy Wilkinson ebcc53a9b7 Include tasks with custom triggers in scheduledtasks endpoint output
Closes gh-15815
2019-02-05 12:12:07 +00:00
Stephane Nicoll 002fa405a8 Merge branch '2.1.x' 2019-01-31 16:26:37 +01:00
Stephane Nicoll ede23caace Polish "Inject Map directly rather than via ObjectProvider"
Closes gh-15798
2019-01-31 16:25:18 +01:00
ayudovin 3a2e85ce75 Inject Map directly rather than via ObjectProvider
See gh-15798
2019-01-31 16:24:18 +01:00
Andy Wilkinson f23a0a5969 Inject InfoContributorProperties more precisely
Closes gh-15750
2019-01-21 16:56:39 +00:00
Stephane Nicoll 6baa6b291e Polish contribution
Closes gh-15695
2019-01-14 08:11:20 -05:00
Johnny Lim af3ed9ff9f Polish
See gh-15695
2019-01-14 08:09:32 -05:00
Phillip Webb 2f77ef7722 Merge branch '2.1.x' 2019-01-11 16:45:05 -08:00
Phillip Webb 9e58942698 Update copyright year for changed files 2019-01-11 16:42:02 -08:00
Phillip Webb 6a901199f5 Polish 2019-01-11 16:42:02 -08:00
Stephane Nicoll 5e736c0d1f Merge branch '2.1.x' 2019-01-07 13:46:23 +01:00
Stephane Nicoll 6ad01a6dfc Optimize ConditionalOnEnabledEndpoint usage
Closes gh-15451
2019-01-07 13:45:53 +01:00
Stephane Nicoll 2d2aa96c05 Allow ConditionalOnEnabledEndpoint to be set at class level
See gh-15451
2019-01-07 13:45:35 +01:00
Madhura Bhave 2dc7a89bd4 Merge branch '2.1.x' 2019-01-02 14:00:10 -08:00
Madhura Bhave 5b990605dc Polish "Order actuator security config after resource-server config"
Closes gh-15472
2019-01-02 13:57:49 -08:00
Stephen Doxsee 4597e7cc82 Order actuator security config after resource-server config
See gh-15472
2019-01-02 13:57:40 -08:00
Stephane Nicoll d57f831f50 Polish "Use Optional value in more functional style"
Closes gh-15575
2018-12-29 11:26:56 +01:00
igor-suhorukov 8ced867e95 Use Optional value in more functional style
See gh-15575
2018-12-29 11:26:27 +01:00
Stephane Nicoll fd12e696b0 Polish "Replace redundant call to class isInstance() with instanceof"
Closes gh-15554
2018-12-23 15:51:39 +01:00
igor-suhorukov 7424f48803 Replace redundant call to class isInstance() with instanceof
See gh-15554
2018-12-23 15:50:22 +01:00
Stephane Nicoll 9d67400afa Merge branch '2.1.x' 2018-12-20 17:54:08 +01:00
igor-suhorukov e578d30722 Replace anonymous inner class with lambda
See gh-15438
2018-12-20 17:47:29 +01:00
Andy Wilkinson 3a7406fe3a Merge branch '2.0.x' into 2.1.x 2018-12-20 15:58:03 +00:00
Andy Wilkinson 0741c90489 Avoid blocking on a Mono indefinitely
Closes gh-15535
2018-12-20 15:31:39 +00:00
Andy Wilkinson 9d2d6d5812 Merge branch '2.1.x' 2018-12-20 15:30:51 +00:00
Andy Wilkinson 9a33d1a2f9 Merge branch '2.0.x' into 2.1.x 2018-12-20 15:30:42 +00:00
Andy Wilkinson 8c68da0882 Avoid blocking on a Mono indefinitely
Closes gh-15535
2018-12-20 15:24:53 +00:00
Andy Wilkinson de599819ae Merge branch '2.1.x' 2018-12-19 16:57:19 +00:00
Andy Wilkinson 33fb1fa9a3 Avoid creating meter binders before registry has been customized
Previously, MeterRegistryPostProcessor would trigger the creation of all
meter binders and meter registry customizers before applying the
customizers and calling the binders. In some situations with complex
dependency graphs where the creation of a binder and the injection of
its dependencies inadvertently triggered some meter binding, this
could result in meters being bound before the registry had been
customized.

This commit reworks MeterRegistryPostProcessor and MeterRegistryConfigurer
to defer the retrieval of registry customizers and meter binders until
just before they are needed. As a result, customizers are now retrieved
and applied before the binders are retrieved.

Closes gh-15483
2018-12-19 16:47:30 +00:00
Andy Wilkinson 064f6478df Move back to JUnit 4 until SUREFIRE-1614 has been resolved
See gh-14736
See gh-14737
See gh-14738
2018-12-12 16:49:30 +00:00
Andy Wilkinson 2b453bbb16 Minimise dependencies on Log4j2
Closes gh-15441
2018-12-12 08:19:34 +00:00
Andy Wilkinson 71b29684b3 Remove redundant field type configuration
See gh-15435
2018-12-11 08:30:24 +00:00
Andy Wilkinson 55d7c19c06 Merge branch '2.1.x' 2018-12-10 17:59:50 +00:00
Andy Wilkinson d05ae40c99 Remove redundant field type and optional configuration
See gh-15435
2018-12-10 17:59:26 +00:00
Andy Wilkinson 393decff35 Merge branch '2.1.x' 2018-12-10 17:58:00 +00:00
Andy Wilkinson ef4ea591b3 Mark nested optional fields as optional
See gh-15435
2018-12-10 17:49:41 +00:00
igor-suhorukov 2b1653d009 Simplify code by using try-with-resources statement
Closes gh-15427
2018-12-10 09:05:33 +01:00
igor-suhorukov 5c1813aef8 Replace this lambda with a method reference
See gh-15401
2018-12-07 11:01:42 +01:00
Madhura Bhave 59d2b0a3fb Upgrade tests to Junit5
See gh-14737
2018-12-05 17:49:09 -08:00
Andy Wilkinson 5c986b5030 Merge branch '2.1.x' 2018-12-03 16:29:36 +00:00
Andy Wilkinson 42b58f6d27 Add JAXB API dependency that is no longer transitive via testcontainers
See gh-15371
2018-12-03 16:29:10 +00:00
Andy Wilkinson 0f474ec08f Merge branch '2.1.x' 2018-12-03 13:01:56 +00:00
Andy Wilkinson 07065532fe Replace accidental use of code shaded by Testcontainers
See gh-15371
2018-12-03 13:01:27 +00:00
dreis2211 f57f16c190 Avoid premature declaration of variables
Closes gh-15215
2018-12-03 10:59:20 +01:00
Stephane Nicoll 7939b8b4da Polish "Rename logging.file to logging.file.name"
Closes gh-15089
2018-12-03 10:42:30 +01:00
TwinProduction 21da4a5d12 Rename logging.file to logging.file.name
See gh-15089
2018-12-03 10:42:30 +01:00
Phillip Webb ba1ef52e39 Merge branch '2.0.x' 2018-11-29 15:32:48 -08:00
Phillip Webb 74376aa023 Polish 2018-11-29 15:30:28 -08:00
Madhura Bhave 427d494d57 Merge branch '2.0.x' 2018-11-28 21:32:05 -08:00
Madhura Bhave 02a1c43587 Fix tests 2018-11-28 21:26:47 -08:00
Madhura Bhave fc6c07ad3c Merge branch '2.0.x' 2018-11-28 17:41:11 -08:00
Madhura Bhave decaacddce Account for application path for Jersey servlet endpoints
Closes gh-14895
2018-11-28 17:25:32 -08:00
Brian Clozel d12e42e8d5 Polish
Closes gh-15211
2018-11-28 19:48:35 +01:00
artsiom 0a4ba499df Add Actuator health checks for Elasticsearch REST clients
This commit adds `ElasticsearchRestHealthIndicator`, a new
`HealthIndicator` for Elasticsearch, using the Elasticsearch "low level
rest client" provided by the
`"org.elasticsearch.client:elasticsearch-rest-client"` dependency.

Note that Spring Boot will auto-configure both low and high level REST
clients, but since the high level one is using the former, a single
health indicator will cover both cases.

See gh-15211
2018-11-28 19:48:35 +01:00
Stephane Nicoll 114347107e Polish key description 2018-11-28 11:31:48 +01:00
Alon Bar-Lev 108f28417e Allow to disable SSL client authentication on the management port
When server and management are at different ports, and when server
requires TLS client authentication, then there is no simple method to
disable TLS client authentication for management port.

This commit adds an additional "none" option to ssl.client-auth.

Example:

    server.port=8080
    server.ssl.enabled=true
    server.ssl.client-auth=need
    management.server.port=8081
    management.server.ssl.enabled=true
    management.server.ssl.client-auth=none

See gh-14985
2018-11-28 11:29:21 +01:00
Stephane Nicoll 476fe6ed17 Stop configuring metrics if hibernate is not available
Closes gh-15317
2018-11-28 10:54:56 +01:00
Stephane Nicoll 5f145ac482 Merge branch '2.0.x' 2018-11-28 10:23:44 +01:00
Stephane Nicoll b103e0c869 Polish "Unwrap DataSource target rather than plain instanceof calls"
Closes gh-15227
2018-11-28 10:18:28 +01:00
dreis2211 17f04b8b75 Replace DirectFieldAccessor usages by hasFieldOrPropertyWithValue
Closes gh-15312
2018-11-28 08:47:41 +01:00
Andy Wilkinson dad6d4beca Merge branch '2.0.x' 2018-11-27 20:37:35 +00:00
Andy Wilkinson 2b22b23aad Polish 2018-11-27 20:35:30 +00:00
Andy Wilkinson 1c4a26557c Polish 2018-11-26 11:47:35 +00:00
Andy Wilkinson c1bbcb6908 Merge branch '2.0.x' 2018-11-26 11:41:55 +00:00
Andy Wilkinson 4bc32e6358 Use a HandlerInterceptor for timing long tasks
Closes gh-15204
2018-11-26 11:30:06 +00:00
Andy Wilkinson 5a246ce24d Merge branch '2.0.x' 2018-11-23 17:00:24 +00:00
Andy Wilkinson 8772f90e2f Polish 2018-11-23 17:00:16 +00:00
Andy Wilkinson 1797040e1a Merge branch '2.0.x' 2018-11-23 16:42:13 +00:00
Andy Wilkinson a54de61e61 Polish
Revert change inadvertently committed as part of gh-15017
2018-11-23 16:41:25 +00:00
Andy Wilkinson deeb961c6e Merge branch '2.0.x' 2018-11-23 15:23:14 +00:00
Andy Wilkinson 1f39b5dd7a Align MeterRegistryConfigurer's javadoc with its implementation
Closes gh-15017
2018-11-23 15:22:09 +00:00
Phillip Webb dbf09de203 Merge branch '2.0.x' 2018-11-15 13:29:09 -08:00
Phillip Webb e87664f295 Add JettyAccessLogCustomizer
Add a `JettyAccessLogCustomizer` to customize management access logs
when the management server is running on a different port.

Closes gh-15041
2018-11-15 13:28:51 -08:00
Phillip Webb c64a007e12 Format POM file 2018-11-15 13:22:50 -08:00
Brian Clozel 8e86bcafc1 Improve actuator endpoint mapping debug logging
Closes gh-14292
2018-11-14 14:36:52 +01:00
dreis2211 3b4b0641d9 Polish some Map operations
Closes gh-15153
2018-11-12 09:08:25 +01:00
Johnny Lim fd5aa3ebf1 Polish
See gh-15134
2018-11-11 11:03:13 +01:00
Stephane Nicoll 2c3b455b8b Merge branch '2.0.x' 2018-11-11 10:58:44 +01:00
Johnny Lim 8470d649bc Polish
See gh-15134
2018-11-11 10:58:31 +01:00
Stephane Nicoll f42a653604 Merge branch '2.0.x' 2018-11-03 16:38:16 +01:00
Stephane Nicoll f5ba9952db Make UndertowAccessLogCustomizer conditional on class
Closes gh-15065
2018-11-03 16:35:03 +01:00
Phillip Webb f3fa20b2d1 Polish 2018-10-29 14:25:45 -07:00
Andy Wilkinson 290e8886c9 Polish "Handle StepRegistry connect/read timeout deprecation"
Closes gh-14886
2018-10-29 21:11:11 +00:00
artsiom fe63342f52 Handle StepRegistry connect/read timeout deprecation
See gh-14886
2018-10-29 20:56:25 +00:00
Andy Wilkinson de674db454 Merge branch '2.0.x' 2018-10-29 12:03:47 +00:00
dreis2211 62ca9e47b8 Use MeterRegistry.isClosed() for tests
Closes gh-14975
2018-10-29 11:57:16 +00:00
dreis2211 fb03139c59 Fix MetricsAutoConfigurationTests
Closes gh-14972
2018-10-26 16:54:11 -07:00
Phillip Webb c393f6262e Merge branch '2.0.x' 2018-10-26 16:36:02 -07:00
Phillip Webb 33c7a74bee Update copyright year for changed files 2018-10-26 16:35:28 -07:00
Vedran Pavic 6e967fe860 Upgrade to Hazelcast 3.11
Closes gh-14949
2018-10-25 15:57:59 -07:00
dreis2211 4857b45ea5 Replace lambdas with method reference or call
Closes gh-14937
2018-10-24 10:12:36 +02:00
Andy Wilkinson 4d9714a0cb Start building against Micrometer snapshots for 1.1.0
See gh-14890
2018-10-19 17:50:07 +01:00
Andy Wilkinson cefc7842d6 Merge branch '2.0.x' 2018-10-18 15:38:17 +01:00
Andy Wilkinson 9b8ead825c Polish 2018-10-18 15:38:06 +01:00
Andy Wilkinson 3177584588 Back off auto-config of Log4J2Metrics when context is backed by SLF4J
Closes gh-14883
2018-10-18 10:31:10 +01:00
Johnny Lim c8c3f59e93 Polish
Closes gh-14884
2018-10-18 09:36:27 +02:00
Stephane Nicoll 474da80b4d Revert "Restructure of security packages"
See gh-14412
2018-10-17 12:22:51 +02:00
Stephane Nicoll fd0e8815b1 Polish 2018-10-16 18:00:55 +02:00
Stephane Nicoll 5f2517f889 Auto-configure AppOptics metrics
Closes gh-14819
2018-10-16 17:35:23 +02:00
Stephane Nicoll 134682a7de Add error metadata for properties removed recently 2018-10-16 15:55:07 +02:00
Andy Wilkinson bd0a41d82d Merge branch '2.0.x' 2018-10-16 13:31:35 +01:00
Andy Wilkinson d4cad5e916 Polish "Servlet path not explicitly required for EndpointRequest"
Closes gh-14503
2018-10-16 13:01:49 +01:00
Madhura Bhave 0fd873f0f9 Servlet path not explicitly required for EndpointRequest 2018-10-16 11:58:07 +01:00
Andy Wilkinson 98d95268e1 Align with changes to CouchbaseReactiveHealthIndicator
Closes gh-14799
2018-10-16 11:14:36 +01:00
Johnny Lim 7f9671fd14 Polish
Closes gh-14843
2018-10-16 11:38:51 +02:00
Hanope c3f3240e2c Fix typos
closes gh-14844
2018-10-16 01:04:28 -07:00
Phillip Webb 29707bf75a Complete restructure of security packages
Complete the restructuring of the security auto-configuration
packages by removing the direct import of web configuration from
the main security auto-configuration.

Closes gh-14412
2018-10-16 01:01:11 -07:00
Madhura Bhave f835f82582 Preliminary restructure of security packages
Restructure the security auto-configuration packages to better reflect
the part of the system that the configuration applies to.

See gh-14412
2018-10-16 01:01:10 -07:00
Phillip Webb d558a1a762 Merge branch '2.0.x' 2018-10-15 22:01:25 -07:00
Phillip Webb 8ecb659a35 Deprecate SecurityPrerequisite
Deprecate `SecurityPrerequisite` interface since we don't support it
in Spring Boot 2.

Closes gh-14846
2018-10-15 21:00:53 -07:00
Phillip Webb 6b37d87497 Allow multiple endpoint PathMapper beans
Update `WebEndpointDiscoverer` and related classes to that multiple
`PathMapper` beans can be registered. Mappers are now tried in order
until one returns a non-null value.

Closes gh-14841
2018-10-15 18:25:42 -07:00
Phillip Webb f0f999a27d Merge branch '2.0.x' 2018-10-15 14:47:11 -07:00
Phillip Webb 5d219bcd19 Polish 2018-10-15 14:45:49 -07:00
Phillip Webb 734e9e4b74 Merge branch '2.0.x' 2018-10-15 14:22:44 -07:00
Phillip Webb b25e222136 Retain original case when mapping endpoint paths
Update `MappingWebEndpointPathMapper` to keep the original case rather
than using a lower-case version.

Closes gh-14773
2018-10-15 14:20:16 -07:00
Stephane Nicoll e901a0bd0e Merge branch '2.0.x' 2018-10-15 23:18:26 +02:00
Stephane Nicoll 935d621a42 Fix mapping of Wavefront base properties
Closes gh-14839
2018-10-15 23:18:12 +02:00
Stephane Nicoll 94b2092218 Add base test for StepRegistryPropertiesConfigAdapter 2018-10-15 23:05:54 +02:00
Andy Wilkinson 1e2d5a1382 Auto-configure Micrometer's HumioMeterRegistry
Closes gh-14804
2018-10-15 18:10:35 +01:00
Stephane Nicoll edf4045c3b Add missing tests for Kairos config adapter
Closes gh-14821
2018-10-15 17:55:07 +02:00
Andy Wilkinson e53e8bf79f Merge branch '2.0.x' 2018-10-15 15:29:10 +01:00
Andy Wilkinson 0fedf8d2af Keep Liquibase-specific DataSource open for use by LiquibaseEndpoint
Closes gh-13832
2018-10-15 15:26:26 +01:00
Andy Wilkinson a4eb636913 Merge branch '2.0.x' 2018-10-15 13:58:17 +01:00
Andy Wilkinson 6d98851fb5 Use Couchbase's DiagnosticsReport to determine its health
Previously, Couchbase's health was determined by retrieving the bucket info
from the cluster info. This retrieval could take over one minute in some
cases even when Couchbase is health. This latency is too large for a health
check.

The Couchbase team have recommended the of a Cluster#diagnostics instead.
This provides a much lower latency view of the cluster's health. This
commit updates CouchbaseHealthIndicator to use Cluster#diagnostics while
retaining support, in a deprecated form, for the old info-based mechanism
should anyone want to opt back into that in 2.0.x.

Closes gh-14685
2018-10-15 13:44:42 +01:00
Stephane Nicoll 89349c6eb9 Auto-configure KairosDB metrics
Closes gh-14821
2018-10-15 14:13:10 +02:00