Commit Graph

893 Commits

Author SHA1 Message Date
Brian Clozel 5a66dc8c6e Merge branch '2.1.x' 2019-03-13 12:53:23 +01:00
Brian Clozel 9906ef2400 Merge branch '2.0.x' into 2.1.x 2019-03-13 12:52:47 +01:00
Brian Clozel 6138041578 Polish
Fixes gh-16014
2019-03-13 11:55:41 +01:00
Johnny Lim a6ccdbe19f Handle missing exceptions in WebMvcMetricsFilter
Prior to this commit, exceptions nested in
`NestedServletExceptions` would not be recorded by the
`WebMvcMetricsFilter`. This commit ensures that exceptions
happening downstream (e.g. happening while writing the response
body itself) are properly recorded.

See https://github.com/micrometer-metrics/micrometer/issues/1190
See gh-16014
2019-03-13 11:07:32 +01:00
Stephane Nicoll 81def1f21d Polish 2019-03-13 08:25:39 +01:00
Madhura Bhave e8cb75bba8 Enable git remote linking automatically on CF
Closes gh-13586
2019-03-12 17:30:00 -07:00
Andy Wilkinson 68bfb020aa Reduce need for bean method proxying and disable where not needed
Closes gh-9068
2019-03-12 13:18:42 +00:00
Phillip Webb ccfe20d3d3 Merge branch '2.1.x' 2019-03-11 21:10:22 -07:00
Phillip Webb 45ae97a4e9 Merge branch '2.0.x' into 2.1.x 2019-03-11 21:09:35 -07:00
Phillip Webb 03beed603c Fix ScheduledTasksEndpointTests BaseConfiguration
Update the `BaseConfiguration` class in `ScheduledTasksEndpointTests`
to be package private so that it can be enhanced by cglib.

Prior to merge commit 361437f4 the class was a lite configuration so
it didn't matter that it was a private class.
2019-03-11 21:07:20 -07:00
Andy Wilkinson aa2008bc5a Merge branch '2.1.x' 2019-03-11 16:40:19 +00:00
Andy Wilkinson 8c3cec8f13 Merge branch '2.0.x' into 2.1.x 2019-03-11 16:14:19 +00:00
Andy Wilkinson 361437f4e2 Merge branch '1.5.x' into 2.0.x 2019-03-11 15:53:34 +00:00
Andy Wilkinson 7675802338 Merge branch '2.1.x' 2019-03-11 08:32:03 +00:00
Andy Wilkinson f574213cc8 Mark log file endpoint as producing text/plain
Closes gh-16188
2019-03-11 08:30:31 +00:00
Andy Wilkinson 7d0317419d Polish 2019-03-10 12:42:09 +00:00
Andy Wilkinson 9d06d22b99 Merge branch '2.0.x' into 2.1.x 2019-03-07 10:17:01 +00:00
Andy Wilkinson affdbeef41 Polish 2019-03-07 10:08:39 +00:00
Andy Wilkinson acdbd18a7b Merge branch '2.1.x' 2019-03-06 13:24:33 +00:00
Andy Wilkinson 31ed042190 Return 503 when component or instance is down with WebFlux
Closes gh-16109
2019-03-06 13:24:23 +00: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
Stephane Nicoll 4f029d6df9 Polish "Add loadOnStartup property to EndpointServlet"
Closes gh-16053
2019-03-05 10:59:18 +01:00
Gómez Díaz, Julio José b99c05329f Add loadOnStartup property to EndpointServlet
loadOnStartup property was missing from EndpointServlet and cannot be set
inside ServletEndpointRegistrar. Now it can be set and register a Servlet
with that integer property ready to act upon registration.

See gh-16053
2019-03-05 10:34:55 +01:00
Stephane Nicoll baa5a00d26 Merge branch '2.1.x' 2019-02-28 14:58:41 +01:00
Stephane Nicoll c224eebef3 Polish "Fix NullPointerException with empty X-Forwarded-For header"
Closes gh-16046
2019-02-28 14:56:42 +01:00
Dmytro Nosan 64a74c3bbb Fix NullPointerException with empty X-Forwarded-For header
See gh-16046
2019-02-28 14:51:25 +01:00
Stephane Nicoll 715db153e3 Polish "Remove code deprecated in 2.1"
Closes gh-16013
2019-02-27 11:15:48 +01:00
Mehmed Baždar 246111cd84 Remove code deprecated in 2.1
See gh-16013
2019-02-27 10:08:48 +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
Michael Simons 330f5b70f2 Upgrade to Neo4j-OGM 3.2.0-alpha04
Closes gh-15937
2019-02-13 11:26:37 +00:00
Andy Wilkinson 1aa7b30b70 Merge branch '2.1.x' 2019-02-12 16:26:46 +00:00
Andy Wilkinson 8e6b4629d4 Tolerate AuthenticationSwitchUserEvent with null target user
When Spring Security is misconfigured it's possible to switch from an anonymous user
to a normal user. When switching back again, the corresponding
AuthenticationSwitchUserEvent will have a null target user. Previously, Actuator's
AuthenticationAuditListener would throw a NullPointerException when it received such an
event.

This commit updates the audit listener to defensively handled events with a null target
user.

Closes gh-15767
2019-02-12 16:26:19 +00:00
Johnny Lim 9f6c5e4e39 Polish 2019-02-11 17:19:19 +00:00
dreis2211 1c50e7cf87 Polish
Closes gh-15823
2019-02-10 10:36:37 +01:00
Brian Clozel 99656b9dd8 Merge branch '2.1.x' 2019-02-08 18:35:12 +01:00
Brian Clozel 72c8e5d366 Collect HTTP trace at commit time for WebFlux
Prior to this commit, the `HttpTraceWebFilter` would collect the
response information (status and headers) for tracing purposes, after
the handling chain is done with the exchange - inside a
`doAfterSuccessOrError`.

Once the handler has processed the exchange, there is no strong
guarantee about the HTTP resources being still present. Depending on the
web server implementation, HTTP resources (including HTTP header maps)
might be recycled, because pooled in the first place.

This commit moves the collection and processing of the HTTP trace right
before the response is committed. This removes the need to handle
special cases with exceptions, since by that time all exception handlers
have processed the response and the information that we extract is the
information that's about to be written to the network.

Fixes gh-15819
2019-02-08 18:16:39 +01:00
Andy Wilkinson ecb7e240eb Merge branch '2.1.x' 2019-02-05 12:33:19 +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
Andy Wilkinson 45cc649c7d Merge branch '2.1.x' 2019-02-04 12:36:33 +00:00
Andy Wilkinson 82bc87560c Use AssertJ’s exception assertions rather than fail
Closes gh-15761
2019-02-04 11:48:26 +00:00
Stephane Nicoll a6815bb2c9 Merge branch '2.1.x' 2019-01-25 10:45:26 +01:00
Vedran Pavic d7550d73a3 Remove duplicate code from HealthWebEndpointResponseMapper
Closes gh-15784
2019-01-25 10:38:16 +01: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 8d1d3fb087 Polish "Avoid string concatenation inside StringBuilder append()"
Closes gh-15589
2019-01-11 08:30:12 +01:00
igor-suhorukov 59ac85d371 Avoid string concatenation inside StringBuilder append()
See gh-15589
2019-01-11 08:28:19 +01:00
Brian Clozel a3737cd76d Merge branch '2.1.x' 2019-01-08 21:45:54 +01:00
Brian Clozel 958e08c413 Merge branch '2.0.x' into 2.1.x 2019-01-08 21:45:41 +01:00
dreis2211 95e26ffcb9 Avoid uri tag explosion when use of path variable is undetected
This commit aligns the Spring WebFlux instrumentation on Spring MVC
since gh-12447.
From now on, if the best matching path pattern is not found,
the recorded uri tag will be "UNKNOWN".

Note that for WebFlux.fn, the pattern information is properly
recorded as of SPR-17395.

Closes gh-15609
2019-01-08 21:45:06 +01:00
Brian Clozel d5ae59dad7 Polish
Closes gh-15594
2019-01-08 18:58:48 +01:00
Nishant Raut 21df40b6c7 Add an outcome tag to web client metrics
Similar to what's ben done in gh-15420 for Spring MVC and Spring
WebFlux, this commit adds an outcome tag for the client side on both
`RestTemplate` and `WebClient`.

See gh-15594
2019-01-08 18:57:05 +01:00
Stephane Nicoll 960d375f57 Merge branch '2.1.x' 2018-12-30 10:04:01 +01:00
Stephane Nicoll a8efcadc90 Merge branch '2.0.x' into 2.1.x 2018-12-30 10:02:53 +01:00
Stephane Nicoll 4509164789 Polish "Add unit test for cassandra health checker"
Closes gh-15583
2018-12-30 10:01:37 +01:00
Oleksii Bondar db22a81742 Add unit test for cassandra health checker
See gh-15583
2018-12-30 10:00:59 +01:00
Stephane Nicoll 9d67400afa Merge branch '2.1.x' 2018-12-20 17:54:08 +01:00
Stephane Nicoll 06989d884b Polish "Fix StringSequence.equals() for different lengths"
Closes gh-15438
2018-12-20 17:52:18 +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 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
Brian Clozel 9a6dbb5290 Merge branch '2.1.x' 2018-12-11 11:54:08 +01:00
Brian Clozel 036aace2cc Add details in Jest ElasticSearch HealthIndicator
This commit polishes the previous one and aligns the Jest
HealthIndicator with the changes made for the REST variant.

Closes gh-15366
2018-12-11 11:51:57 +01:00
Filip Hrisafov 1ec2bbf54f Include details in ElasticsearchRestHealthIndicator
This commit adds more information to the ElasticSearch REST
health indicator.

When the ES instance responds with an error HTTP status,
the health details now include the actual status code and reason phrase.
When the ES instance returns a HTTP 200 response, the entire response
map is used as health details.

See gh-15366
2018-12-11 11:51:49 +01: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 8b21044902 Merge branch '2.1.x' 2018-12-03 15:07:54 +00:00
Andy Wilkinson 917108cce7 Merge branch '2.0.x' into 2.1.x 2018-12-03 15:07:30 +00:00
Andy Wilkinson 425a3aacf5 Add JAXB API dependency that is no longer transitive via testcontainers
See gh-15371
2018-12-03 15:06:32 +00:00
Stephane Nicoll a85e27c7cd Further replace magic number by HttpStatus
See gh-15130
2018-12-03 15:48:13 +01:00
Stephane Nicoll f2ca2533d5 Polish "Replace magic number by HttpStatus"
Closes gh-15130
2018-12-03 15:33:57 +01:00
holy12345 ffdc9f0ff3 Replace magic number by HttpStatus
See gh-15130
2018-12-03 15:33:35 +01:00
Stephane Nicoll 9483c91d58 Make sure to include validation query in case of failure
See gh-15055
2018-12-03 15:27:52 +01:00
Stephane Nicoll 9e84abc46b Polish "Add validation query to DataSourceHealthIndicator details"
Closes gh-15055
2018-12-03 15:10:59 +01:00
Erlend Haugsnes fc85c34dd8 Add validation query to DataSourceHealthIndicator details
See gh-15055
2018-12-03 14:33:52 +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
Andre Restolho d9586d94f6 Change DataSourceHealthIndicator details from "hello" to "result"
Closes gh-15136
2018-12-03 09:34:17 +01:00
Phillip Webb 9c426c63bf Polish 2018-11-29 22:57:04 -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
Andy Wilkinson fa7be63fbb Merge branch '2.0.x' 2018-11-26 16:53:00 +00:00
Andy Wilkinson 7ddbb37bd5 Polish 2018-11-26 16:52:49 +00:00
Andy Wilkinson c73fdc4ce4 Merge branch '2.0.x' 2018-11-26 12:09:21 +00:00
Andy Wilkinson d2756319cb Polish 2018-11-26 12:09:14 +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
Phillip Webb 12a16dcfcf Merge branch '2.0.x' 2018-11-15 10:43:40 -08:00
Phillip Webb e4d5714d50 Polish "Skip scoped targets when determining endpoints"
See gh-15182
2018-11-15 10:41:14 -08:00
Rahul Ahuja 4853e6a7af Skip scoped targets when determining endpoints
Update `EndpointDiscoverer` to filter out scoped target beans when
finding endpoints.

Closes gh-15182
2018-11-15 10:38:05 -08:00
Brian Clozel 8e86bcafc1 Improve actuator endpoint mapping debug logging
Closes gh-14292
2018-11-14 14:36:52 +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
dreis2211 3e95af2c85 Polish some Map operations
Closes gh-15103
2018-11-06 07:41:55 +01:00
Phillip Webb 8ded42ceb1 Use US spelling for "favor" 2018-10-29 18:37:58 -07:00
Phillip Webb 33d385cf7a Use US spelling for "favor" 2018-10-29 15:26:34 -07:00
Brian Clozel 2232f7d82f Polish
Closes gh-14914
2018-10-29 18:10:10 +01:00
Julian Devia 3e6a4eb6e3 Use cluster endpoint in Jest HealthIndicator
This commit changes the requested endpoint for the Jest
HealthIndicator. The `"/_all/_stats"` was previously used, but
the response size can be quite large and costly.

This is now using the `"/_cluster/health"` endpoint.
2018-10-29 18:10:10 +01: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
Phillip Webb acb5a90273 Log warning when using deprecated EndpointId chars
Update `EndpointId` to log a warning when `-` or `.` are used.

Closes gh-14840
2018-10-25 15:56:48 -07:00
dreis2211 5b6e94d78a Polish javadoc of CachesEndpoint
Closes gh-14969
2018-10-26 07:31:49 +09:00
Phillip Webb 6aa2862f85 Merge branch '2.0.x' 2018-10-24 22:48:18 -07:00
Phillip Webb 7bcc793faf Fix WebMvcMetricsFilter logger imports
Don't use SLF4J loggers in `WebMvcMetricsFilter`.

Fixes gh-14953
2018-10-24 22:46:31 -07:00
dreis2211 4857b45ea5 Replace lambdas with method reference or call
Closes gh-14937
2018-10-24 10:12:36 +02:00
Madhura Bhave eb61b2bbde Merge branch '2.0.x' 2018-10-23 14:21:31 -07:00
Madhura Bhave 4322b9781b Polish 2018-10-23 14:21:06 -07:00
Johnny Lim c3ac423fdd Use Commons Logging for PrometheusPushGatewayManager
Closes gh-14910
2018-10-22 21:58:00 -07:00
Madhura Bhave f0004c4ade Merge branch '2.0.x' 2018-10-22 14:57:10 -07:00
dreis2211 5c0d7f4ac0 Avoid creation of unnecessary collections
Closes gh-14916
2018-10-22 14:54:39 -07:00
Andy Wilkinson 660b912100 Merge branch '2.0.x' 2018-10-19 18:21:55 +01:00
Andy Wilkinson 2110215559 Provide more detailed uri tag for calls to Data REST repositories
Closes gh-14872
2018-10-19 18:19:58 +01:00
Andy Wilkinson efbc0fc2ca Merge branch '2.0.x' 2018-10-19 11:41:38 +01:00
Andy Wilkinson 76ad197584 Deallocate servlet after forcing initialization in mappings endpoint
Previously, when using Tomcat, a call to mappings endpoint would force
the initialization of any DispatcherServlets in the context. This was
done by calling allocate on Tomcat's StandardWrapper. This left the
wrapper in a state that would cause it to block for two seconds during
shutdown as the wrapper has an outstanding allocation.

This commit immediately deallocates the servlet after it has been
allocated. This ensures that the DispatcherServlet has been initialized
while also leaving the wrapper in a state that it can shut down
immediately when asked to do so.

Closes gh-14898
2018-10-19 10:43:23 +01:00
Andy Wilkinson 22e722d9f9 Polish 2018-10-18 15:51:20 +01:00
Brian Clozel 5bf51f52b9 Fix WebFlux instrumentation after SPR-17395
SPR-17395 ensures that WebFlux.fn is adding a request attribute of type
`PathPattern` on the `HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE`.

A specific tag provider for WebFlux.fn is no longer necessary.

See gh-14876
2018-10-18 14:58:39 +02:00
Johnny Lim c8c3f59e93 Polish
Closes gh-14884
2018-10-18 09:36:27 +02:00
Johnny Lim 7f9671fd14 Polish
Closes gh-14843
2018-10-16 11:38:51 +02:00
Andy Wilkinson d49cc20e79 Rework CouchbaseReactiveHealthIndicator to use DiagnosticsReport
Closes gh-14799
2018-10-16 09:28:42 +01:00
Phillip Webb d558a1a762 Merge branch '2.0.x' 2018-10-15 22:01:25 -07:00
Phillip Webb a12a6f2ade Polish 2018-10-15 21:24:35 -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 a5dc004e0b Merge branch '2.0.x' 2018-10-15 15:43:31 -07:00
Phillip Webb cd1c2638e5 Polish 2018-10-15 15:42:15 -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
Phillip Webb 3665917d44 Merge branch '2.0.x' 2018-10-15 11:32:09 -07:00
Phillip Webb c306e03112 Support '-' in endpoint names
Update the `EndpointId` constraints to allow '-' in names.

Closes gh-14773
2018-10-15 11:27:30 -07:00
Phillip Webb 9a80e88a73 Merge branch '2.0.x' 2018-10-15 09:52:09 -07:00
Phillip Webb d8b9685635 Support '.' in endpoint names
Update the `EndpointId` constraints to allow '.' in names.

Closes gh-14773
2018-10-15 09:37:44 -07: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
Phillip Webb cfa130b2ef Merge branch '2.0.x' 2018-10-14 19:14:04 -07:00
Hanope 535dd7470f Fix typo in EndpointIdTests
Closes gh-14822
2018-10-14 19:11:56 -07:00
Phillip Webb 18319ac276 Remove deprecated Endpoint ID methods
See gh-14773
2018-10-14 13:55:13 -07:00
Phillip Webb 1bf97e9b5e Merge branch '2.0.x' 2018-10-14 13:53:28 -07:00
Phillip Webb df5dfbf4be Support mixed case endpoint includes/excludes
Update `ExposeExcludePropertyEndpointFilter` so that mixed case
endpoint IDs are supported. Prior to this commit it was not easy for
an endpoint to be missed by the filter due to the formatting of the
property value.

See gh-14773
2018-10-14 13:45:05 -07:00
Phillip Webb 138d85477d Support mixed case endpoint IDs with time-to-live
Update the endpoint time-to-live binding logic so that mixed case
endpoint IDs are supported. Prior to this commit an
`InvalidConfigurationPropertyNameException` would be thrown when using
a camel case endpoint ID.

See gh-14773
2018-10-14 13:45:04 -07:00
Phillip Webb 3105a38884 Introduce EndpointID to enforce naming rules
Add an `EndpointID` class to enforce the naming rules that we support
for actuator endpoints. We now ensure that all endpoint names contain
only letters and numbers and must begin with a lower-case letter.

Existing public classes and interfaces have been changes so that String
based `endpointId` methods are deprecated and strongly typed versions
are preferred instead. A few public classes that we're not expecting
to be used directly have been changed without deprecated methods being
introduced.

See gh-14773
2018-10-14 13:45:04 -07:00
Phillip Webb c5786c218d Polish 2018-10-14 11:24:10 -07:00
Johnny Lim c1ad1f7638 Fix copyright end years
Closes gh-14816
2018-10-14 14:13:19 +01:00
Andy Wilkinson 7ad94299d6 Stop relying on server customizer ordering for Tomcat metrics binding
Closes gh-14784
2018-10-13 11:52:51 +01:00
Andy Wilkinson 2b11ee4389 Auto-configure binding of Micrometer's JettyServerThreadPoolMetrics
Closes gh-14591
2018-10-13 11:52:51 +01:00
Brian Clozel 5607fcae85 Record URI pattern tag for WebFlux Fn metrics
This commit records URI tags for Spring WebFlux Fn applications for
`http.server.requests` metrics. This is possible since SPR-17098.

Closes gh-12757
2018-10-12 13:57:32 +02:00
Phillip Webb b09057a73c Fix checkstyle violation
Fix unused import violation introduced during merge.
2018-10-11 17:55:41 -07:00
Phillip Webb 01f7805c19 Merge branch '2.0.x' 2018-10-11 16:19:29 -07:00
Phillip Webb 30ab4f9691 Polish "Stop MetricsEndpoint from summing up same metrics"
See gh-14497
2018-10-11 15:31:40 -07:00
pmehra 950480dc1c Stop MetricsEndpoint from summing up same metrics
Update `MetricsEndpoint` so that only the first matching meter is used
when calculating the sum of of statistics.

Prior this this commit the endpoint would consider all Meters. This
caused incorrect statistics when multiple back-end systems were being
used since the registries contained in the `CompositeMeterRegistry`
would be  iterated, and the same effective metric would be counted more
than once.

Closes gh-14497
2018-10-11 15:18:35 -07:00
artsiom 8f3b58fa98 Replace ReflectionTestUtils usage by hasFieldOrPropertyWithValue
Closes gh-14783
2018-10-11 17:49:37 +02:00
Andy Wilkinson 1d2f069580 Allow HttpTrace instances to be created
Previously, the API required to create HttpTrace instances was
package-private. This made it difficult to implement an
HttpTraceRepository that persists the HttpTrace instances
rather than holding them in memory as it inhibited recreation of the
instances when they read from the persistent store.

This commit adds public constructors to HttpTrace and related classes
to enable recreation of an HttpTrace. The package-private methods for
mutating properties have not been made public to ensure that the
public API remains immutable.

Closes gh-14726
2018-10-11 14:26:23 +01:00
Andy Wilkinson 73c6cc1b5d Merge branch '2.0.x' 2018-10-10 12:43:22 +01:00
Andy Wilkinson 839e686c9e Fix Checkstyle violation 2018-10-10 12:43:06 +01:00
Andy Wilkinson 467169aaaf Merge branch '2.0.x' 2018-10-10 12:20:58 +01:00
Andy Wilkinson 9e14fc6b8b Cope with hanging call to connection.start() in JmsHealthIndicator
Previously, if the call to connection.start() hung, JmsHealthIndicator
would also hang and then never respond.

This commit introduces the use of an additional thread that waits for
up to 5 seconds for the connection to start. If the call to start
does not complete within that time, the connection is closed. The
call to close causes the call to start to throw an exception, thereby
stopping the hang and allowing the indicator to report that the
broker is down.

Closes gh-10809
2018-10-10 12:20:34 +01:00
Andy Wilkinson 2216b78f1e Merge branch '2.0.x' 2018-10-08 15:53:09 +01:00
Andy Wilkinson d3b3c8c64e Honour management.metrics.web.server.auto-time-requests with WebFlux
Closes gh-13895
2018-10-08 15:52:50 +01:00
Phillip Webb 20ecf73cd1 Polish "Add Prometheus push gateway support"
Rework Prometheus push gateway support so that the central class can
be used outside of auto-configuration. The shutdown flags have also
been replaced with a single "shutdown-operation" property since it's
unlikely that both "push" and "delete" will be required.

It's also possible now to supply a `TaskScheduler` to the manager.

See gh-14353
2018-10-05 18:12:41 -07:00
Phillip Webb 01b8667dd7 Update copyright year for changed files 2018-10-05 13:40:07 -07:00
Stephane Nicoll 91b4dc2f69 Polish "Add reactive health indicator for Couchbase"
Closes gh-13926
2018-10-05 13:57:31 +02:00
Mikalai Lushchytski 20ff0d97e4 Add reactive health indicator for Couchbase
See gh-13926
2018-10-05 13:57:17 +02:00
Johnny Lim 335775892b Polish
See gh-14667
2018-10-03 13:57:18 +02:00
Phillip Webb d76bba5e6f Migrate from ExpectedException rule to AssertJ
Replace ExpectedException JUnit rules with AssertJ exception
assertions.

Closes gh-14336
2018-10-02 10:55:28 -07:00
Stephane Nicoll 2d36a6f952 Merge branch '2.0.x' 2018-10-01 10:50:58 -04:00
Johnny Lim 1eca492c5e Polish
See gh-14621
2018-10-01 10:46:27 -04:00
Stephane Nicoll cbae22f0c9 Polish "Migrate size properties to DataSize"
Closes gh-14549
2018-09-21 16:27:28 +02:00
Andy Wilkinson c974192497 Polish "Add outcome tag to MVC and WebFlux HTTP request metrics"
Closes gh-14486
2018-09-18 12:30:28 +01:00
Michael McFadyen 9e9dd40959 Add outcome tag to MVC and WebFlux HTTP request metrics
See gh-14486
2018-09-18 12:00:12 +01:00
Andy Wilkinson 6da483f970 Merge branch '2.0.x' 2018-09-18 11:59:52 +01:00
Andy Wilkinson 6fba477d5e Remove redundant handling of a null exchange from WebFluxTags.uri()
Closes gh-14504
2018-09-18 11:59:19 +01:00
Andy Wilkinson eefa7e9f78 Merge branch '2.0.x' 2018-09-18 11:30:44 +01:00
Andy Wilkinson 6020cb67d3 Polish javadoc of status method on WebFluxTags and WebMvcTags 2018-09-18 11:30:35 +01:00
durigon 7aaeefbc0e Use Matcher from pre-compiled Pattern rather than String for replaceAll
Closes gh-14483
2018-09-17 10:54:54 +01:00
Stephane Nicoll 7ff41e7c8c Polish 2018-09-05 13:39:51 +02:00
Stephane Nicoll ca8be3f6bd Polish "Add Health details using maps"
Closes gh-14305
2018-09-05 13:39:18 +02:00
Michael Pratt 5c86f9eca4 Add Health details using maps
See gh-14305
2018-09-05 13:20:03 +02:00
Phillip Webb 9d1b3a2b49 Merge branch '2.0.x' 2018-09-04 16:25:17 -07:00
Phillip Webb 9af6b3422f Polish 2018-09-04 16:18:47 -07:00
Stephane Nicoll 3d732e86f4 Merge branch '2.0.x' 2018-09-04 08:52:35 +02:00
Johnny Lim ca57e58ee5 Polish
See gh-14293
2018-09-04 08:52:13 +02:00
Stephane Nicoll e0ee4f22a5 Merge branch '2.0.x' 2018-09-04 08:49:04 +02:00
Johnny Lim 3eef927499 Use InvalidEndpointRequestException for MetricsEndpoint
Closes gh-14291
2018-09-04 08:33:33 +02:00
Stephane Nicoll 0590c4de32 Merge branch '2.0.x' 2018-08-29 17:38:15 +02:00
Stephane Nicoll f9081a2c23 Revert "Polish some joining collectors"
See gh-14221
2018-08-29 17:37:33 +02:00
Stephane Nicoll 5af7835e83 Merge branch '2.0.x' 2018-08-28 17:18:20 +02:00
dreis2211 afda71e419 Polish some joining collectors
Closes gh-14221
2018-08-28 17:17:46 +02:00
dreis2211 422a436df1 Polish some Collectors
See gh-13727
2018-08-27 18:09:02 +02:00
Stephane Nicoll 429cd8d114 Optimize use of Jackson ObjectMapper instances
Closes gh-1789
2018-08-23 14:09:48 +02:00
Vedran Pavic 644ab5f3e4 Align SessionsEndpoint with Spring Session API improvements
This commit aligns SessionsEndpoint with
FindByIndexNameSessionRepository API improvements that simplifies
retrieval of sessions by principal name.

Closes gh-14124
2018-08-18 11:27:35 +02:00
Madhura Bhave d724f154f4 Merge branch '2.0.x' 2018-08-16 15:45:20 -07:00
Madhura Bhave b93c2b9a9f Allow actuator endpoints to be used with mvcMatchers
This commit changes AbstractWebMvcEndpointHandlerMapping to
be a MatchableHandlerMapping. Additionally, EndpointRequest,
now delegates to MvcRequestMatcher for Spring MVC applications.

For all other applications, AntPathRequestMatcher is used as
a delegate.

Closes gh-13962
2018-08-16 15:41:02 -07:00
Andy Wilkinson 971caad6f8 Merge branch '2.0.x' 2018-08-16 10:19:05 +01:00
Andy Wilkinson 3e093035b4 Merge branch '1.5.x' into 2.0.x 2018-08-16 10:18:52 +01:00
Madhura Bhave 64f9d33956 Merge branch '2.0.x' 2018-08-15 16:58:21 -07:00
Johnny Lim 5f3f1a1f11 Polish
Closes gh-14067
2018-08-15 16:54:46 -07:00
Stephane Nicoll d0f272960e Merge branch '2.0.x' 2018-08-15 10:43:28 +03:00
Johnny Lim b4abccc07c Polish
See gh-14049
2018-08-15 10:43:04 +03:00
Andy Wilkinson 2756d87b3f Merge branch '2.0.x' 2018-08-09 11:15:13 +01:00
Andy Wilkinson 27f5e46587 Polish "Fix NPE in FlywayEndpoint when migration.installedOn is null"
Closes gh-14019
2018-08-09 11:10:21 +01:00
artsiom 83fbdc6ea8 Fix NPE in FlywayEndpoint when migration.installedOn is null
See gh-14019
2018-08-09 11:10:02 +01:00
Stephane Nicoll a12ca0a0dc Merge branch '2.0.x' 2018-08-08 16:05:34 +02:00
Stephane Nicoll a023bd030a Add configurable timeout for Couchbase health indicator
This commit makes sure to use a configurable timeout to check if the
Couchbase cluster is up, rather than relying on the default that can be
quite long.

Closes gh-13879
2018-08-08 16:01:58 +02:00
Stephane Nicoll 13d5b00fe7 Merge branch '2.0.x' 2018-08-08 11:13:15 +02:00
Stephane Nicoll fbf3c48bf8 Fix setter detection in `configprops` endpoint
Previously, the setter of a property whose second letter is upper-case (
such as `oAuth2Uri`) was not detected properly. The JavaBean spec states
that, in such a case, the first letter should not be capitalized (i.e.
the setter should be `setoAuth2Uri` rather than `setOAuth2Uri`).

This commit makes sure that Jackson uses standard bean names and fixes
the setter detection algorithm to take this case into account.

Closes gh-13878
2018-08-08 11:13:03 +02:00
Stephane Nicoll 6a2cb883a5 Merge branch '2.0.x' 2018-08-06 18:35:54 +02:00
Stephane Nicoll f731f6aa39 Restore customization of HTTP trace request headers
This commit restore the use of the `postProcessRequestHeaders` method
when overridden in a custom HttpExchangeTracer implementation.

Closes gh-13924
2018-08-06 18:35:12 +02:00
Johnny Lim 7b72fe0ffa Polish
See gh-13963
2018-08-01 11:08:22 +02:00
Stephane Nicoll 0c1b229764 Merge branch '2.0.x' 2018-08-01 10:59:05 +02:00
Stephane Nicoll 4e45f36bd1 Clean basePath if necessary
This commit makes sure that ServletEndpointRegistrar does not add a
duplicate `/` if the basePath is suffixed with it already

Close gh-13964
2018-08-01 10:58:40 +02:00
Phillip Webb 80da9cf5eb Merge branch '2.0.x' 2018-07-29 09:28:56 +01:00
Phillip Webb aeb885192e Polish ternary expressions 2018-07-29 09:24:46 +01:00
Phillip Webb ce9c053cbf Fix checkstyle issues on master
Fix checkstyle issues following 2.0.x merge and
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:36:04 +01:00
Phillip Webb a6c9c92f2e Merge branch '2.0.x' 2018-07-28 01:35:43 +01:00
Phillip Webb 63b609827e Fix checkstyle method order issues
Fix checkstyle issues with method ordering following the
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:11:53 +01:00
Phillip Webb e6a68b39a3 Fix checkstyle javadoc issues
Fix checkstyle issues in javadoc following the spring-javaformat
upgrade.

See gh-13932
2018-07-28 01:11:52 +01:00
Phillip Webb 7fc455654a Fix checkstyle ternary issues
Fix checkstyle issues with ternary expressions following the
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:11:52 +01:00
Phillip Webb b5b60c2053 Merge branch '2.0.x' 2018-07-26 13:23:07 +01:00
Phillip Webb 9a9111af21 Support path discovery for main dispatcher servlet
Add an `DispatcherServletPath` interface which provides a much more
consistent way to discover the path of the main dispatcher servet.

Prior to this commit, auto-configurations would often make use of the
`ServerProperties` class to discover the dispatcher servlet path. This
mechanism isn't very explicit and also makes it hard for us to relocate
that property in Spring Boot 2.1.

This commit also reverts most of fddc9e9c7e since it is now clear that
the supporting multiple dispatcher servlet paths will be much more
involved that we originally anticipated.

Closes gh-13834
2018-07-26 11:35:12 +01:00
Stephane Nicoll 1e7aa7c4bc Fix Spring Integration imports 2018-07-25 16:25:06 +02:00
Stephane Nicoll af0aa11d15 Polish "Add reactive health indicator for Cassandra"
Closes gh-13864
2018-07-25 10:16:17 +02:00
artsiom 61c41555c8 Add reactive health indicator for Cassandra
See gh-13864
2018-07-25 10:16:17 +02:00
Stephane Nicoll 0c41384e50 Merge branch '2.0.x' 2018-07-25 09:18:04 +02:00
Stephane Nicoll a25b6bd473 Restore support for TransactionAwareCacheDecorator
This commit makes sure to unwrap any transaction aware cache before
collecting metrics for them.

Closes gh-13861
2018-07-25 09:17:49 +02:00
Stephane Nicoll f3ef7caf09 Merge branch '2.0.x' 2018-07-24 13:35:25 +02:00
Stephane Nicoll 829ac3fbef Prevent headers to be mutated
This commit rework 1189ccc to prevent a mutate call on the original
headers map.

Closes gh-13871
2018-07-24 13:34:49 +02:00
Stephane Nicoll 2ad548485c Merge branch '2.0.x' 2018-07-24 09:40:38 +02:00
Stephane Nicoll 1a0afc6bbe Polish "Use Collection.removeIf() where possible"
Closes gh-13871
2018-07-24 09:38:51 +02:00
dreis2211 1189ccc936 Use Collection.removeIf() where possible
See gh-13871
2018-07-24 09:38:34 +02:00
Stephane Nicoll 6dc0cb4f67 Merge branch '2.0.x' 2018-07-24 09:33:22 +02:00
Johannes Edmeier ab1f8cf77b Add metric description and base unit to metrics endpoint
See gh-13813
2018-07-24 09:32:22 +02:00
Stephane Nicoll 237f2fb494 Merge branch '2.0.x' 2018-07-19 14:55:21 +02:00
Stephane Nicoll 592754d806 Polish "Make sure exception tag values are not empty in web metrics"
Closes gh-13187
2018-07-19 14:53:29 +02:00
Jon Schneider ee37dc1c31 Make sure exception tag values are not empty in web metrics
See gh-13187
2018-07-19 14:40:58 +02:00
Andy Wilkinson 6a189cee06 Merge branch '2.0.x' 2018-07-17 19:26:08 +01:00
Andy Wilkinson a57d0f0853 Reinstate order of WebMvcMetricsFilter
Closes gh-13781
2018-07-17 19:14:17 +01:00
Johnny Lim 58df752af4 Polish
See gh-13790
2018-07-17 10:25:38 +02:00
Andy Wilkinson 1ea91ece23 Merge branch '2.0.x' 2018-07-11 17:49:19 +01:00
Andy Wilkinson cced3514a7 Polish 2018-07-11 17:49:10 +01:00
Stephane Nicoll 5fcf45c4d0 Merge branch '2.0.x' 2018-07-10 17:07:46 +02:00
Stephane Nicoll 3423c5dddb Detect DispatcherServlets registered via ServletRegistrationBean
Previously, when a DispatcherServlet was registered via a
ServletRegistrationBean, the mappings endpoint did not expose any
information about it as it wasn't detected.

This commit fixes the detection of available DispatcherServlets in the
context so that the mappings endpoint include them all.

Closes gh-13186
2018-07-10 17:06:36 +02:00
Stephane Nicoll 8426e3c2c9 Merge branch '2.0.x' 2018-07-10 15:58:39 +02:00
Johnny Lim 46e6aa5963 Fix query string encoding in TraceableHttpServletRequest
Closes gh-13545
2018-07-10 15:56:10 +02:00
Stephane Nicoll 8c691273e3 Merge branch '2.0.x' 2018-07-10 15:31:56 +02:00
Johnny Lim 0de8317979 Separate logging from getUrlMappings()
Closes gh-13710
2018-07-10 15:27:43 +02:00
Stephane Nicoll 0b48e223f3 Merge branch '2.0.x' 2018-07-09 10:50:18 +02:00
Johnny Lim ab6adc8265 Polish
Closes gh-13616
2018-07-09 10:45:01 +02:00
Brian Clozel bdd95f09a4 Polish WebClient metrics support
This commit improves the for Actuator Metrics in WebClient.

Unlike the server couterpart of WebFlux, using a `retry` operator on a
`WebClient` pipeline does resubscribes to the whole chain.
The previous implementation recorded start time at the time of pipeline
build phase, but outside of it. This doesn't work since retrying the
same pipeline doesn't update the recorded start time and the duration of
sequential calls are cumulative.

This is now fixed using the Reactor `Context`, since we're now recording
the start time at subscription time and record metrics on `onNext` and
`onError` signals.

Closes gh-12228
2018-07-05 15:58:34 +02:00
Andy Wilkinson b6b37c91bb Upgrade to Flyway 5.1.3
Closes gh-13672
2018-07-03 17:30:48 +01:00
Madhura Bhave 4eff07f6c0 Merge branch '2.0.x' 2018-06-28 12:49:34 -07:00
Madhura Bhave fddc9e9c7e Support multiple paths in DispatcherServletPathProvider
Closes gh-13603
2018-06-28 12:36:58 -07:00
Andy Wilkinson 4cccc9a886 Merge branch '2.0.x' 2018-06-28 14:27:21 +01:00
Andy Wilkinson a5d20ffed7 Avoid NPE when creating method tag for WebFlux req with non-standard method
Previously, a NullPointerException would occur when WebFluxTags
attempted to create a method Tag for a request with a non-standard
method.

This commit updates WebFluxTags to use getMethodValue(), which will
never return null, rather than getMethod(), which may return null,
when determining the tag's value for the given request.

Closes gh-13596
2018-06-28 14:27:02 +01:00
Andy Wilkinson 80ede14510 Merge branch '2.0.x' 2018-06-25 11:25:21 +01:00
Andy Wilkinson 911453d478 Merge branch '1.5.x' into 2.0.x 2018-06-25 11:25:10 +01:00
Brian Clozel cc894ce4f2 Fix Micrometer tag providers after HttpStatus changes
Since SPR-16898, `HttpStatus.toString()` has changed and we should
instead rely on `HttpStatus.value()` to get the HTTP status number.
2018-06-19 16:05:40 +02:00
Johnny Lim 403f8927c3 Polish CachesEndpoint
Closes gh-13487
2018-06-15 13:56:39 +02:00
Johnny Lim de3c3cd755 Add CLIENT_NAME_NONE to WebClientExchangeTags 2018-06-12 09:20:46 +02:00
Johnny Lim c908445bff Use a precompiled pattern in WebClientExchangeTags.extractPath() 2018-06-12 14:56:02 +09:00
Madhura Bhave 87506248b0 Merge branch '2.0.x' 2018-06-07 12:53:37 -07:00
Madhura Bhave ed734d7e43 Trace filter ignores invalid requests
Fixes gh-12987
2018-06-07 09:27:49 -07:00
Phillip Webb ade1397ea2 Merge branch '2.0.x' 2018-06-04 17:28:54 -07:00
Phillip Webb 571c50e43f Switch to functional web code to use static imports
Update the samples and tests to use the more idiomatic static import
style.
2018-06-04 17:27:34 -07:00
Madhura Bhave 360d392eb1 Merge branch '2.0.x' 2018-06-04 12:51:07 -07:00
Madhura Bhave 60a4d67b13 Handle special characters in TraceableHttpServletRequest
Fixes gh-13273
2018-06-04 12:50:11 -07:00
Brian Clozel bd8106d77f Upgrade to Spring Framework 5.1
As of Spring Framework 5.1, we're depending on the Reactor Californium
release train.
Reactor Netty is now at version 0.8 and changed its artifact
coordinates, package names and broke several APIs. Spring Framework is
now up-to-date with those changes and this commit does the same for
Spring Boot.

Note that in that process, the `NettyServerCustomizer` has been changed
since the former `HttpServerOptions.Builder` API is now gone from
Reactor Netty, and we're now relying on immutable server instances
instead of a stateful builder pattern.

See gh-13321
2018-06-04 18:59:17 +02:00
Andy Wilkinson 92629ac5af Merge branch '2.0.x' 2018-06-04 15:43:58 +01:00
Andy Wilkinson ea51cfabca Avoid uri tag explosion when use of path variable is undetected
Previously, WebMvcTags would fall back to using the request’s path
info if Spring MVC’s best matching path pattern attribute was not
available. For non-Spring MVC web frameworks that support path
variables, such as Jersey, this led to an explosion of URI tags that
could exhaust the heap.

Closes gh-12447
2018-06-04 15:43:48 +01:00
Vedran Pavic 205b1c1327 Upgrade to Hazelcast 3.10.1
Closes gh-13322
2018-06-01 09:30:42 +02:00
Stephane Nicoll f06627c408 Allow CompositeHealthIndicator to be created with a Map as before
See gh-4965
2018-05-30 16:09:07 +02:00
Stephane Nicoll c8f57acca6 Merge branch '2.0.x' 2018-05-29 16:03:00 +02:00
Stephane Nicoll faa9910e46 Enable cache when a SecurityContext parameter is used
This commit restores caching for the main read operation when the
SecurityContext does not expose a principal (i.e. guest access).

Closes gh-13238
2018-05-29 15:56:22 +02:00
Stephane Nicoll 39861bf819 Merge branch '2.0.x' 2018-05-29 14:18:26 +02:00
Stephane Nicoll 4259817572 Fix extension discovery when endpoint instance is sub-classed
This commit fixes endpoint extension discovery when the related endpoint
is sub-classed. Previously, a strict by type check was applied against
the `endpoint` attribute of `EndpointExtension`.

Rather than using a `Class` check, this commit extracts the id of an
endpoint and uses it to match its extension, if any.

Closes gh-13082
2018-05-29 14:12:23 +02:00
Stephane Nicoll 3bbdeee70b Merge branch '2.0.x' 2018-05-29 09:33:03 +02:00
Johnny Lim bd2053aa17 Use more Tag constants
Closes gh-13286
2018-05-29 09:32:26 +02:00
Johnny Lim de01e7aad4 Polish
See gh-13243
2018-05-28 09:46:40 +02:00
Stephane Nicoll f91b53747a Merge branch '2.0.x' 2018-05-28 09:41:41 +02:00
Johnny Lim f385a1cb11 Polish
Closes gh-13243
2018-05-28 09:36:15 +02:00
Phillip Webb 68ffbafbae Fix checkstyle violations 2018-05-26 00:01:45 -07:00
Phillip Webb 3702da4573 Formatting 2018-05-25 23:52:38 -07:00
Stephane Nicoll 4464a5f5bd Remove code deprecated in 2.0
Closes gh-12962
2018-05-22 14:48:25 +02:00
Phillip Webb c5f63c19a4 Merge branch '2.0.x' 2018-05-21 21:38:32 -07:00
Phillip Webb 2dc4f1df00 Polish 2018-05-21 21:32:42 -07:00
Stephane Nicoll afe6abb20d Merge branch '2.0.x' 2018-05-17 15:31:02 +02:00
Johnny Lim 75639aa682 Polish
Closes gh-13192
2018-05-17 15:29:50 +02:00
Stephane Nicoll b51b997b70 Run specific health check
This commit improves the `health` endpoint to run health check for a
particular component or, if that component is itself a composite, an
instance of that component.

Concretely, it is now possible to issue a `GET` on
`/actuator/health/{component}` and
`/actuator/health/{component}/instance` to retrieve the health of a
component or an instance of a composite component, respectively.

If details cannot be showed for the current user, any request leads to a
404 and does not invoke the health check at all.

Closes gh-8865
2018-05-17 15:26:38 +02:00
Stephane Nicoll 2c176a3770 Add support for ReactiveHealthIndicatorRegistry
This commit updates the initial proposal to add support for reactive
use cases as well. A reactive application can use
ReactiveHealthIndicatorRegistry as an alternative to
HealthIndicatorRegistry.

Closes gh-4965
2018-05-16 17:48:41 +02:00
Stephane Nicoll 95b251590e Polish "Introduce HealthIndicatorRegistry"
See gh-4965

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2018-05-16 17:39:20 +02:00
Vedran Pavic d829d522be Introduce HealthIndicatorRegistry
This commit introduces HealthIndicatorRegistry which handles
registration of HealthIndicator instances. Registering new
HealthIndicator instances is now possible in runtime.

See gh-4965
2018-05-16 13:59:34 +02:00
Stephane Nicoll 24024b00da Merge branch '2.0.x' 2018-05-14 17:42:15 +02:00
Stephane Nicoll 2be1c8f527 Polish "Set classloader for JMX endpoints to application classloader"
Closes gh-12209
2018-05-14 17:41:47 +02:00
David Herberth e44c81672f Set classloader for JMX endpoints to application classloader
See gh-12209
2018-05-14 17:41:31 +02:00
Stephane Nicoll b0433d66c1 Merge branch '2.0.x' 2018-05-11 14:24:13 +02:00
dreis2211 e6a23fa3ff Remove unnecessary semicolons
Closes gh-13144
2018-05-11 14:23:47 +02:00
Stephane Nicoll c72df104d8 Improve caches endpoint format
This commit adds an intermediate "caches" element so that additional
cache manager attributes can be added in the future.

Closes gh-13079
2018-05-09 11:08:23 +02:00
Andy Wilkinson a41c9eb736 Merge branch '2.0.x' 2018-05-09 09:14:48 +01:00
Andy Wilkinson c826310fd1 Polish 2018-05-09 08:44:15 +01:00
Johnny Lim 96ce71ddc4 Polish
Closes gh-13078
2018-05-07 14:55:13 +02:00
Phillip Webb c578a30e90 Polish 2018-05-04 23:12:42 -07:00
Phillip Webb a323a85e3b Merge branch '2.0.x' 2018-05-04 20:06:55 -07:00
Phillip Webb 975e986fef Polish 2018-05-04 20:06:27 -07:00
Phillip Webb 7b120c1c97 Formatting 2018-05-04 16:36:35 -07:00
Phillip Webb 42c053cf1b Merge branch '2.0.x' 2018-05-04 16:31:46 -07:00
Phillip Webb 5b3cb8a698 Update copyright header year for changed files 2018-05-04 15:59:26 -07:00
Phillip Webb 57bfbfb3ad Fix checkstyle errors 2018-05-04 15:58:59 -07:00
Phillip Webb 6e09e497f2 Formatting 2018-05-04 12:06:19 -07:00
Phillip Webb b6a2a46f78 Merge branch '2.0.x' 2018-05-03 23:54:42 -07:00
Phillip Webb 2d70a7ae5e Polish caught exception names
Prefer `ex` over `e`.
2018-05-03 22:43:32 -07:00
Phillip Webb 41efea51a7 Polish ternary expressions
Consistently format ternary expressions and always favor `!=` as the
the check.
2018-05-03 22:43:12 -07:00
Phillip Webb 8c0c0ee55a Merge branch '2.0.x' 2018-05-03 12:44:58 -07:00
Phillip Webb e125085993 Merge branch '1.5.x' into 2.0.x 2018-05-03 12:43:50 -07:00
Andy Wilkinson 0526594a3c Merge branch '2.0.x' 2018-05-02 12:26:23 +01:00
Andy Wilkinson f019d5c85b Merge branch '1.5.x' into 2.0.x 2018-05-02 12:22:04 +01:00
Stephane Nicoll fb8a5a9864 Polish "Add cache actuator endpoint"
This commit improves the initial proposal by providing a by name read
operation that returns the detail of a particular cache. It also adds
more tests and complete API documentation for the feature.

Closes gh-12216
2018-04-30 16:34:00 +02:00
Johannes Edmeier 1a57673345 Add cache actuator endpoint
This commits adds an actuator endpoint which lists the caches per
context and cacheManager and provides a delete operation to clear the
caches. As the statistics are exposed via the metrics endpoint they are
not included

See gh-12216
2018-04-30 16:34:00 +02:00
Brian Clozel 1ef0098ab5 Add WebClient metrics support
This commit adds support for Actuator Metrics for WebClient.
This support mirrors the current behavior for `RestTemplate`, reusing
the same metric name `"http.client.requests"` and tags.

`WebClient` is instrumented by a `MetricsWebClientFilterFunction` which
is applied by a `WebClientCustomizer`. This instrumentation happens
automatically only if you create an instance of `WebClient` using an
auto-configured `WebClient.Builder` bean.

This infrastructure is reusing de facto the `MeterFilter` that has been
added for `RestTemplate` in order to limit the "uri" tag cardinality.

Closes gh-12228
2018-04-27 13:54:14 +02:00
Stephane Nicoll 03cf4fbb10 Polish "Add actuator endpoint for exposing the Spring Integration graph"
Closes gh-12331
2018-04-25 16:16:43 +02:00
Tim Ysewyn 8c67ef1079 Add actuator endpoint for exposing the Spring Integration graph
See gh-12331
2018-04-25 16:16:43 +02:00
Stephane Nicoll 2b98b11c12 Polish "Less object instantiation in WebMvcTags"
Closes gh-12894
2018-04-18 09:41:40 +02:00
Jon Schneider d676147680 Less object instantiation in WebMvcTags
See gh-12894
2018-04-18 09:38:23 +02:00
Stephane Nicoll 0bc7bef5e5 Properly handle InvalidEndpointRequestException
This commit makes sure that `InvalidEndpointRequestException` is wrapped
in a `ReflectionException` when invoked via JMX.

Closes gh-12857
2018-04-16 11:33:22 +02:00
dreis2211 2bbf438c36 Fix duplicate words in comments
Closes gh-12866
2018-04-16 08:09:40 +02:00
Stephane Nicoll fa542bacc0 Translate user-defined exception when invoking JMX operation
This commit makes sure to respect the MBeanServer#invoke contract by
wrapping any user-defined exception in an MBeanException. Also, any
exception not from the JDK is translated, as it may lead to unexpected
issue on the client if that class isn't present. This is consistent
with our operation result mapping strategy.

Closes gh-10448
2018-04-13 16:26:04 +02:00
Brian Clozel b2e7be17ab Polish gh-11514
As pointed out by Rossen in gh-11514 comments, a handler might commit
the response and then send an error signal in the pipeline. In this
case, adding a callback to `beforeCommit` is useless because it won't be
triggered. In those cases, we need to collect metrics right away.
2018-04-12 22:50:16 +02:00
Brian Clozel 3fa8fe85af Deprecate RouterFunctionMetrics
Spring Boot now deploys both annotation-based and functional endpoints
under the same `HttpHandler`; this means the currently auto-configured
`MetricsWebFilter` is instrumenting all endpoints to produce metrics.

There is no need for a WebFlux functional specific support.
This commit removes mentions of `RouterFunctionMetrics` in the docs and
deprecates that class.

Closes gh-12833
2018-04-12 12:08:44 +02:00
Brian Clozel 77be10e7bc Fix "status" metrics tag for error responses
Prior to this commit, the metrics `WebFilter` would handle exceptions
flowing through the pipeline and extract tag information right away.
Since error handling turns the exception information into error HTTP
responses later in the chain, the information extracted from the
response earlier is invalid.
In this case, the "status" information could be "200" whereas error
handlers would later set that status to "500".

This commit delays the tags extraction later in the process, right
before the response is comitted. The happy path is not changed, as
handlers signal that the response is fully taken care of at that point.

Fixes gh-11514
2018-04-12 11:30:43 +02:00
Stephane Nicoll e8fac7d9c4 Properly discover endpoints that are proxied
Previously to this commit, if a `@ControllerEndpoint`,
`@RestControllerEndpoint` or `@ServletEndpoint` annotated bean was
proxied, the endpoint wasn't properly detected.

This commit makes sure that annotation retrieval works on the user class
while preserving the get (vs. find) retrieval semantic

Closes gh-12441
2018-04-10 20:23:55 +02:00
Stephane Nicoll 86b96254a1 Migrate to ApplicationContextRunner 2018-04-10 20:23:54 +02:00
Johnny Lim f03849d502 Polish
See gh-12812
2018-04-10 11:46:16 +02:00
Andy Wilkinson 8d5b9f37d5 Merge branch '1.5.x' 2018-04-09 17:59:53 +01:00
Phillip Webb 598e9bb842 Polish 2018-04-04 18:01:25 -07:00
Brian Clozel f6d16c8b99 Align WebFluxTags uri support on WebMvcTags
This commit ensures that `WebFluxTags` not only relies on
`BEST_MATCHING_PATTERN_ATTRIBUTE` or request URI to provide the "uri"
tag information.

To avoid cardinality explosion, HTTP not found and redirects are
assigned fixed uri tags.

Closes gh-12685
2018-04-04 11:46:10 +02:00
Phillip Webb 98a2a91d16 Polish 2018-03-29 14:00:13 -07:00
Brian Clozel ebb2f70e0b Make WebMvgTags use matched patterns for HTTP 404
Prior to this commit, `WebMvcTags' would always mark as "NOT_FOUND" or
"REDIRECTION" *any* exchange with responses of 404 and 3xx status, even
if those responses are actually returned by Controller handlers.

This commit checks inverts those checks and first considers if the
"BEST_MATCHING_PATTERN_ATTRIBUTE" request attribute is present and uses
it - then falls back to "NOT_FOUND" and "REDIRECTION" to avoid
cardinality explosion.

Fixes gh-12577
2018-03-29 20:33:07 +02:00
Madhura Bhave 8b29823885 Prevent StackOverFlowException in metadata processor
Fixes gh-11037
2018-03-28 07:58:13 -07:00
dreis2211 3b0f6e7168 Use Supplier variants of Assert methods
See gh-12630
2018-03-26 17:58:17 +02:00
Johnny Lim 625bf93598 Polish
See gh-12584
2018-03-26 17:33:25 +02:00