Commit Graph

480 Commits

Author SHA1 Message Date
Jon Schneider
9934285bca Remove destroy methods from auto-configured MeterRegistry beans
Closes gh-12121
2018-02-19 17:44:38 +00:00
Andy Wilkinson
73460a5b25 Use auto-configuration to create composite, not a BFPP
Closes gh-12122
2018-02-19 17:41:23 +00:00
Stephane Nicoll
1e932860c4 Specify default micrometer values
This commit adds micrometer's default values for each monitoring
system with tests that validate those defaults are consistent. This
makes sure that those defaults are part of the metadata and any tooling
support that uses it.

Closes gh-12089
2018-02-19 16:41:28 +01:00
Stephane Nicoll
202ed7b72b Polish 2018-02-19 16:20:56 +01:00
Stephane Nicoll
cd0c81fe39 Restore prefix in ConditionalOnProperty 2018-02-19 15:46:39 +01:00
Andy Wilkinson
c3a31fafe2 Remove tangle between actuate.endpoint and actuate.endpoint.invoke
See gh-11854
2018-02-19 13:04:23 +00:00
Stephane Nicoll
6c85ed70e4 Polish "Add SignalFxConfig source property"
Closes gh-12066
2018-02-19 10:53:25 +01:00
Jon Schneider
a732053afd Add SignalFxConfig source property
See gh-12066
2018-02-19 10:49:43 +01:00
Stephane Nicoll
1dab83adaa Polish "Restore behavior of management.metrics.export.simple.enabled"
Closes gh-12106
2018-02-19 10:44:09 +01:00
Jon Schneider
da759f29d0 Restore behavior of management.metrics.export.simple.enabled
See gh-12106
2018-02-19 10:08:22 +01:00
Phillip Webb
9e75680e6f Polish 2018-02-16 18:11:54 -08:00
Andy Wilkinson
c1c162ab0c Polish "Add auto-configuraton for exporting metrics to Wavefront"
Closes gh-12068
2018-02-16 20:30:31 +00:00
Jon Schneider
142dbb2213 Add auto-configuration for exporting metrics to Wavefront
See gh-12068
2018-02-16 20:00:45 +00:00
Andy Wilkinson
17c7f027e0 Add details of the request mapping conditions to mappings endpoint
Closes gh-12080
2018-02-16 17:36:06 +00:00
Andy Wilkinson
2c19257d6d Add HandlerMethod and HandlerFunction details to mappings endpoint
Closes gh-11864
2018-02-16 17:08:47 +00:00
Stephane Nicoll
99466e7fa6 Polish 2018-02-16 14:04:44 +01:00
Andy Wilkinson
fe4c8f95ed Rename ReactiveWebServerAutoConfiguration
Closes gh-12086
2018-02-16 10:02:35 +00:00
Andy Wilkinson
e72506c353 Protect TomcatMetrics auto-config against early MeterBinder init
Closes gh-11916
2018-02-16 09:07:12 +00:00
Andy Wilkinson
83626c7c12 Polish metrics export auto-configuration tests 2018-02-15 10:46:11 +00:00
Jon Schneider
d70594a2b1 Fix upstream micrometer renames
Fix for the rename of `HistogramConfig` to `DistributionStatisticConfig`

Closes gh-12030
2018-02-13 14:50:20 -08:00
Phillip Webb
6771cc9674 Polish 2018-02-13 14:41:12 -08:00
Andy Wilkinson
d238a31d3d Polish 2018-02-13 17:50:40 +00:00
Andy Wilkinson
25520a9e32 Polish “Auto-configure FileDescriptorMetrics”
Closes gh-12022
2018-02-13 16:40:18 +00:00
Tommy Ludwig
a51fcd071e Auto-configure FileDescriptorMetrics
See gh-12022
2018-02-13 16:40:18 +00:00
Tommy Ludwig
149963bc61 Auto-configure ClassLoaderMetrics
Auto-configure ClassLoaderMetrics as part of the JVM metrics from
Micrometer.

See gh-12022
2018-02-13 16:40:18 +00:00
Jon Schneider
49f21a2264 Remove unnecessary config options for JDBC, Rabbit, and Cache metrics
See gh-12017
2018-02-13 14:36:52 +01:00
Andy Wilkinson
ce9b2b8266 Auto-configure Micrometer’s Tomcat metrics
Closes gh-11916
2018-02-13 12:47:25 +00:00
Andy Wilkinson
01b1c1d947 Perform failure analysis of MissingRequiredConfigurationException
Closes gh-12010
2018-02-13 11:35:18 +00:00
Stephane Nicoll
28f5392787 Polish "Add health indicator for reactive MongoDB"
Closes gh-11997
2018-02-13 11:22:04 +01:00
Yulin Qin
eee2694648 Add health indicator for reactive MongoDB
See gh-11997
2018-02-13 11:22:04 +01:00
Andy Wilkinson
a02fdc755e Stop MeterRegistries when context is closed
Closes gh-12006
2018-02-13 09:34:11 +00:00
Johnny Lim
87bf0b26df Polish modifier order
See gh-12019
2018-02-13 09:49:59 +01:00
Phillip Webb
3bec55e16c Formatting 2018-02-12 17:49:53 -08:00
Madhura Bhave
16a499b2fa Cloud Foundry health should always show details
Fixes gh-12014
2018-02-12 15:28:06 -08:00
Phillip Webb
f34aa6f4d8 Migrate to Spring Integration Micrometer support
Remove custom `SpringIntegrationMetrics` and instead provide
auto-configuration to the direct Micrometer support added in Spring
Integration 5.0.2.

Closes gh-11985
2018-02-12 13:24:29 -08:00
Andy Wilkinson
b0e86bd7ac Align New Relic and Signal FX tests with those for other exporters
Closes gh-11970
2018-02-12 20:43:56 +00:00
Andy Wilkinson
384a4ed6a9 Use metrics export.*.enabled properties to control auto-configuration
Closes gh-11978
2018-02-12 20:18:11 +00:00
Phillip Webb
0348889fd7 Polish 2018-02-12 10:03:06 -08:00
Andy Wilkinson
e49d50fe9d Improve testing of metrics auto-configuration
Closes gh-11970
2018-02-12 17:05:05 +00:00
Johnny Lim
5a9865dabb Polish
Closes gh-12004
2018-02-12 17:10:43 +01:00
Stephane Nicoll
7473642f58 Harmonize endpoints exclude property
Closes gh-11914
2018-02-12 14:00:40 +01:00
Andy Wilkinson
037b6d8ba2 Auto-configure Micrometer's New Relic and SignalFX support
Closes gh-11803
2018-02-12 12:00:38 +00:00
Andy Wilkinson
bc814d2039 Prevent authenticated principal from clashing with argument of same name
Closes gh-11988
2018-02-12 10:46:19 +00:00
Phillip Webb
63c827b14d Ensure exports are configured before endpoint
Update `SimpleMetricsExportAutoConfiguration` to ensure that it runs
before `SimpleMetricsExportAutoConfiguration`.

See gh-11977
2018-02-09 14:44:07 -08:00
Phillip Webb
d259f68fbf Drop recordRequestPercentiles property
Drop the `recordRequestPercentiles` property as it overlaps with the
property based `MeterFilter` support.

Fixes gh-11982
2018-02-09 13:59:46 -08:00
Phillip Webb
601157f552 Polish "Add publishUnchangedMeters StatsD support"
Closes gh-11967
2018-02-09 12:09:45 -08:00
Jon Schneider
e02eba2a33 Add publishUnchangedMeters StatsD support
Add configuration property to support publishing unchanged pollable
meters.

See gh-11967
2018-02-09 12:09:41 -08:00
Phillip Webb
3ec778fb64 Polish 2018-02-09 11:31:53 -08:00
Andy Wilkinson
351e1ec4de Ensure that metrics export backs off when there's no Clock
Closes gh-11977
2018-02-09 17:14:06 +00:00
Madhura Bhave
e9fe918d25 Add option to skip ssl for reactive CF actuators
Fixes gh-10898
2018-02-09 08:46:29 -08:00
Andy Wilkinson
fee9dacab1 Allow use of custom DatadogConfig without requiring api-key property
Closes gh-11979
2018-02-09 16:04:16 +00:00
Andy Wilkinson
cc3d7648c1 Auto-configure Micrometer's Clock in a single place
Closes gh-11977
2018-02-09 15:26:10 +00:00
Stephane Nicoll
077d00fcb3 Polish 2018-02-09 16:07:58 +01:00
Andy Wilkinson
03d7c3a7af Repackage HTTP tracing auto-configuration classes
Closes gh-11934
2018-02-09 12:03:48 +00:00
Andy Wilkinson
a6ecd55f1f Make expose and exclude properties affect servlet endpoints
Closes gh-11968
2018-02-09 11:24:18 +00:00
Andy Wilkinson
2993dccd1e Provide links to all types of endpoints
Previously, links were only provide to web endpoints. This commit
expands link resolution to also provide links for servlet endpoints,
controller endpoints, and rest controller endpoints.

Closes gh-11902
2018-02-09 10:56:15 +00:00
Phillip Webb
204f6f67fd Migrate all of metrics to auto-configuration
Migrate remaining metrics `@Configuration` classes to individual
auto-configurations.

Fixes gh-11935
2018-02-08 22:39:47 -08:00
Phillip Webb
6f7f11fd96 Refine metrics export auto-configure ordering
The `SimpleMetricsExportAutoConfiguration` should be last and it should
check for a `MeterRegistry` bean.

See gh-11838
2018-02-08 19:22:37 -08:00
Phillip Webb
5de46c3186 Polish 2018-02-08 16:35:10 -08:00
Phillip Webb
387804e600 Format with Eclipse Oxygen SR2 2018-02-08 15:44:32 -08:00
Andy Wilkinson
5522174e96 Provide package info for all packages included in javadoc 2018-02-08 16:50:37 +00:00
Andy Wilkinson
dec37ec5e2 Move EndpointMapping into spring-boot-actuator 2018-02-08 15:13:27 +00:00
Andy Wilkinson
4beb6be179 Rename HTTP trace properties and packages
Closes gh-11934
2018-02-08 13:08:27 +00:00
Andy Wilkinson
a09c64e18c Polish 2018-02-08 11:15:36 +00:00
Stephane Nicoll
7cd19822c6 Polish "Add Kafka health indicator"
Closes gh-11515
2018-02-08 11:58:42 +01:00
Juan Camilo Rada
0dbd9429cc Add Kafka health indicator
See gh-11515
2018-02-08 11:55:37 +01:00
Andy Wilkinson
76a450dfba Format with Eclipse Oxygen SR2 2018-02-08 10:53:53 +00:00
Madhura Bhave
7136bed126 Fix tests 2018-02-07 17:36:44 -08:00
Michael J. Simons
97a97f3784 Polish 2018-02-07 13:37:10 +00:00
Stephane Nicoll
63d2e944ba Polish "Add influx property to govern whether db is auto-created or not"
Closes gh-11922
2018-02-07 12:55:20 +01:00
Jon Schneider
9b215df4e9 Add influx property to govern whether db is auto-created or not 2018-02-07 12:55:20 +01:00
Andy Wilkinson
8229733f0d Avoid triggering early init when creating MeterRegistryPostProceesor
Closes gh-11890
2018-02-07 11:13:11 +00:00
Andy Wilkinson
8605499a64 Provide more control over when the health endpoint shows details
Closes gh-11869
2018-02-07 09:51:19 +00:00
Phillip Webb
d8de8752ea Change metrics exporters to auto-configurations
Refactor `*ExportConfiguration` classes to be regular auto-configuration
classes.

Also removed the `@ConditionalOnProperty` guards for `.enabled` properties
since auto-configuration can now be excluded in the usual way. Enabled
properties remain where applicable and are adapted for Micrometer to use
as it sees fit.

Fixes gh-11838
2018-02-06 17:42:14 -08:00
Phillip Webb
6889ad59b8 Support property based MeterFilters
Add per-meter property support for `enabled`, `percentiles-histogram`,
`percentiles` and `sla`.

Fixes gh-11800
2018-02-06 13:21:27 -08:00
Andy Wilkinson
7d561f5ed0 Polish "Align with Micrometer's standardized cache metrics"
Closes gh-11918
2018-02-06 11:13:37 +00:00
Andy Wilkinson
2cc7325017 Polish 2018-02-02 20:51:14 +00:00
Andy Wilkinson
875091ed85 Polish “Remove or use unused method parameters”
Closes gh-11812
2018-02-02 09:34:19 +00:00
igor-suhorukov
717bd2c580 Remove or use unused method parameters 2018-02-02 09:34:19 +00:00
Phillip Webb
3ff772957b Add WebServerApplicationContext abstraction
Add a new `WebServerApplicationContext` interface that provides a common
abstraction for all application contexts that create and manage the
lifecycle of an embedded `WebServer`.

Allows server namespaces to become a first-class concept (rather
subverting `ConfigurableWebApplicationContext.getNamespace()`) and
allow us to drop `getServerId()` from `WebServerInitializedEvent`.

Also helps to improve `ManagementContextAutoConfiguration` and
`ManagementContextFactory`.

Fixes gh-11881
2018-02-01 16:38:15 -08:00
Jon Schneider
09181d6b16 Fix CompositeMeterRegistryPostProcessor autowire
Update `CompositeMeterRegistryPostProcessor` to use constructor
autowiring for `Clock` detection.

Fixes gh-11856
2018-01-30 20:27:22 -08:00
Stephane Nicoll
f7bf79c9b3 Polish deprecated metadata 2018-01-30 17:45:01 +01:00
Stephane Nicoll
8b3c2b01e3 Fix broken replacement ids 2018-01-30 15:23:21 +01:00
Andy Wilkinson
356efaa7c8 Rename trace to httptrace
Closes gh-11806
2018-01-30 12:55:27 +00:00
Jon Schneider
2612b43179 Restrict maximum URI tags to prevent memory issues
Add MeterFilter to restrict the maximum number of web client URI tags
created. Prior to this commit, if a user was manually building URIs for
use with a RestTemplate (rather than using uriVariables) the JVM could
run out of memory.

Fixes gh-11338

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2018-01-30 00:32:09 -08:00
Phillip Webb
8f23ee4e58 Apply micrometer MeterFilter beans automatically
Update `MeterRegistryPostProcessor` and `MetricsAutoConfiguration` so
that micrometer `MeterFilter` beans are automatically applied.

Fixes gh-11843
2018-01-30 00:15:33 -08:00
Phillip Webb
c90a5a9e9e Polish 2018-01-29 21:35:56 -08:00
Phillip Webb
5632d043ff Fix enums following upstream micrometer change
See gh-11575
2018-01-29 19:51:51 -08:00
Phillip Webb
9a8c182d19 Only use micrometer composites when necessary
Update micrometer auto-configuration so that a `CompositeMeterRegistry`
is only created when more than one `MeterRegistry` bean is declared.
When a composite is crated, it is marked as `@Primary` so that it
can be directly injected. Meter registries can now be defined directly
as beans, and auto-configuration can back off in the usual way.

The `MeterRegistryConfigurer` is now called `MeterRegistryCustomizer`
and is generically types so it's easy to apply customizations to a
particular `MeterRegistry` implementation.

Fixes gh-11799

Co-authored-by: Jon Schneider <jschneider@pivotal.io>
2018-01-29 16:52:01 -08:00
Andy Wilkinson
e834b25ef1 Polish 2018-01-29 20:20:58 +00:00
Phillip Webb
af50a18da9 Polish 2018-01-29 09:47:03 -08:00
Stephane Nicoll
eba476ba6e Disable LoggersEndpoint if the logging system is disabled
Closes gh-11793
2018-01-29 16:37:28 +01:00
Andy Wilkinson
9edcd25c25 Simply test for async dispatch metrics filter registration
Previously, the test in MetricsAutoConfigurationIntegrationTests was
testing the functionality of WebMvcMetricsFilter to verify that the
auto-configuration had registered the filter for async dispatches.
This test was complex and covered the same code as a test in
WebMvcMetricsFilterTests.

This commit reworks the test to examine the dispatcher types on the
filter registration directly instead.

Closes gh-11826
2018-01-29 11:23:58 +00:00
Stephane Nicoll
a515c5b7d1 Polish contribution
Closes gh-11811
2018-01-29 08:12:35 +01:00
Johnny Lim
914bdb393f Polish
See gh-11811
2018-01-29 08:11:09 +01:00
Phillip Webb
5767350380 Polish 2018-01-26 22:12:07 -08:00
Johnny Lim
6d68806275 Polish
Closes gh-11805
2018-01-27 05:22:04 +01:00
Jon Schneider
b254761c5e Support micrometer Graphite tagsAsPrefix property
Fixes gh-11797
2018-01-26 19:57:48 -08:00
Phillip Webb
0b689a5b10 Polish MetricsFilter registration async support
Closes gh-11348
2018-01-26 19:51:03 -08:00
Nikolay Rybak
b6af06a55f Fix MetricsFilter registration to support async
Update `WebMvcMetricsConfiguration` so that the filter is registered
with the correct settings to support async requests.

See gh-11348
2018-01-26 19:51:03 -08:00
Phillip Webb
25815ca7e1 Refine WebMvcMetricsFilter for async support
Rework `WebMvcMetricsFilter` so that async requests can be handled
correctly.

See gh-11348
2018-01-26 19:51:02 -08:00
Phillip Webb
643cda480f Migrate to updated micrometer Tags class
See gh-11575
2018-01-26 14:42:38 -08:00
Jon Schneider
fd237f85cc Extract common micrometer test setup
Create `MetricsRun` that can be used to apply common micrometer test
configuration to a `ApplicationContextRunner`.

Closes gh-11804
2018-01-26 14:42:22 -08:00
Jon Schneider
d1de1cd053 Upgrade to micrometer 1.0.0-SNAPSHOT
Move to the snapshots and rework changed APIs in preparation for
the upcoming rc8 release.

See gh-11575
2018-01-26 11:40:37 -08:00
Phillip Webb
b234501af3 Polish 2018-01-26 11:39:41 -08:00
Andy Wilkinson
988fc18f8c Simplify endpoint enablement and update reference documentation
Closes gh-11755
2018-01-26 12:12:11 +00:00
Stephane Nicoll
fe7d7e2fc9 Polish 2018-01-26 09:51:54 +01:00
Johnny Lim
15fb62718d Remove unused parameters
Closes gh-11785
2018-01-26 09:30:02 +01:00
Andy Wilkinson
3565961d68 Rework HTTP exchange tracing and add support for WebFlux
Closes gh-9980
2018-01-25 13:27:07 +00:00
Andy Wilkinson
4c23afdcd8 Polish 2018-01-25 11:04:16 +00:00
Phillip Webb
017efda6ec Add @EndpointServlet and migrate Jolokia
Add first class support for Servlet based endpoints and rework the
Jolokia endpoint to use it.

Fixes gh-10264
2018-01-24 17:06:13 -08:00
Phillip Webb
3bd940baaa Polish "Add more WebEndpointAutoConfiguration tests"
Closes gh-11754
2018-01-24 16:24:50 -08:00
Yunkun Huang
d8527a9708 Add tests for WebEndpointAutoConfiguration
Closes gh-11754
See gh-11684
2018-01-24 16:24:50 -08:00
Phillip Webb
ab6ad6aa4b Polish 2018-01-24 16:09:14 -08:00
Andy Wilkinson
292025936e Omit null properties from actuator endpoint API response examples
Closes gh-11757
2018-01-24 16:40:10 +00:00
Madhura Bhave
55c8ceb440 Polish 2018-01-23 17:01:46 +05:30
andrey.onufreyko
b19dcb13e2 Replace string arguments with char
Optimize method calls by replacing single character String arguments
with char.

Closes gh-11680
2018-01-22 16:35:06 -08:00
Johnny Lim
768e7c07e6 Polish
Closes gh-11720
2018-01-22 16:06:45 -08:00
Andy Wilkinson
fbb1ba1bb3 Move actuator mappings introspection classes into dedicated packages
Closes gh-9979
2018-01-22 11:25:40 +00:00
Phillip Webb
bda9b892b3 Add direct WebFlux and WebMvc endpoint support
Add `@ControllerEndpoint` and `@RestControllerEndpoint` annotations that
can be used to develop a Spring-only request mapped endpoint. Both
Spring MVC and Spring WebFlux are supported.

This feature is primarily for use when deeper Spring integration is
required or when existing Spring Boot 1.5 projects want to migrate to
Spring Boot 2.0 without re-writing existing endpoints. It comes at the
expense of portability, since such endpoints will be missing from
Jersey.

Fixes gh-10257
2018-01-19 21:06:32 -08:00
Phillip Webb
340ef52f78 Refactor endpoint path concerns
Create a `PathMappedEndpoint` interface that allows any `ExposedEndpoint`
to provide root path details. The `EndpointPathResolver` interface has
been renamed to `PathMapper` and is now only used during endpoint
discovery.

`EndpointPathProvider` has been replaced with `PathMappedEndpoints`
which simply finds relevant path mapped endpoints.

Fixes gh-10985
2018-01-19 20:44:24 -08:00
Phillip Webb
1d39feffea Overhaul actuator endpoint code
Refactor several areas of the actuator endpoint code in order to make
future extensions easier. The primary goal is to introduce the concept
of an `ExposableEndpoint` that has technology specific subclasses and
can carry additional data for filters to use. Many other changes have
been made along the way including:

* A new EndpointSupplier interface that allows cleaner separation of
  supplying vs discovering endpoints. This allows cleaner class names
  and allows for better auto-configuration since a user can choose to
  provide their own supplier entirely.

* A `DiscoveredEndpoint` interface that allows the `EndpointFilter`
  to be greatly simplified. A filter now doesn't need to know about
  discovery concerns unless absolutely necessary.

* Improved naming and package structure. Many technology specific
  concerns are now grouped in a better way. Related concerns are
  co-located and concepts from one area no longer leakage into another.

* Simplified `HandlerMapping` implementations. Many common concerns have
  been pulled up helping to create simpler subclasses.

* Simplified JMX adapters. Many of the intermediary `Info` classes have
  been removed. The `DiscoveredJmxOperation` is now responsible for
  mapping methods to operations.

* A specific @`HealthEndpointCloudFoundryExtension` for Cloud Foundry.
  The extension logic used to create a "full" health endpoint extension
  has been made explicit.

Fixes gh-11428
Fixes gh-11581
2018-01-19 20:44:24 -08:00
Phillip Webb
dc935fba48 Polish 2018-01-19 20:44:18 -08:00
Madhura Bhave
5e2cc02499 Move servlet specific security auto-config 2018-01-20 09:41:50 +05:30
Stephane Nicoll
c926bed6f5 Polish "Fix modifiers order"
Closes gh-11681
2018-01-19 11:30:30 +01:00
igor-suhorukov
e2d05607f2 Fix modifiers order
See gh-11681
2018-01-19 11:30:06 +01:00
Johnny Lim
9d24186942 Use this() in EndpointRequests
Closes gh-11690
2018-01-19 11:15:42 +01:00
Phillip Webb
0b81f78a2a Revert "Create CloudFoundry-specific EndpointWebExtension"
This reverts commit 7189f426ed.
2018-01-18 23:21:51 -08:00
Phillip Webb
f3379668ac Polish 2018-01-18 23:21:51 -08:00
Stephane Nicoll
8704cf1fe7 Harmonize metric property names
See gh-11667
2018-01-18 17:21:40 +01:00
Stephane Nicoll
6086bc714f Fix json structure 2018-01-18 17:04:37 +01:00
Stephane Nicoll
7002507304 Polish 2018-01-18 16:34:56 +01:00
Stephane Nicoll
beaa49a2d6 Polish "Add auto-configuration for RabbitMQ metrics"
Closes gh-10887
2018-01-18 16:16:26 +01:00
Arnaud Cogoluègnes
58c8c4d56a Add auto-configuration for RabbitMQ metrics
See gh-10887
2018-01-18 16:11:50 +01:00
Stephane Nicoll
5cb6c086b6 Rename micrometer instrumentation flags
Closes gh-11667
2018-01-18 14:16:40 +01:00
Andy Wilkinson
849baa4c02 Do not require after in audit events endpoint
Closes gh-11605
2018-01-18 11:59:46 +00:00
Andy Wilkinson
54c0cf513b Polish 2018-01-17 19:03:23 +00:00
Andy Wilkinson
3cf1fb6763 Polish formatting in Actuator API documentation 2018-01-16 20:46:42 +00:00
Andy Wilkinson
67a299020b Rework mappings endpoint
Improve the structure of the response and include mappings from
WebFlux and Servlet and Filter registrations in addition to the
mappings from Spring MVC.

Closes gh-9979
2018-01-16 18:26:59 +00:00
Andy Wilkinson
5b8a2f9675 Improve context hierarchy handling in Actuator endpoints
Previously, a number of Actuator endpoints ignored a context hierarchy
or assumed that it would always be linear. This commit reworks the
affected endpoints so that the no longer assume a linear hierarchy.

A side-effect of a non-linear hierarchy is that there may be multiple
different beans with the same name (in a linear hierarchy, a bean
with the same name as one in an ancestor context, replaces that bean).
The affected endpoints have also been updated so that, when bean names
are used as keys, those keys are grouped by application context. This
prevents a bean in one context from accidentially overwriting a bean
in another context.

Closes gh-11019
2018-01-16 09:53:52 +00:00
Andy Wilkinson
23d8d608c4 Polish 2018-01-15 13:35:46 +00:00
Andy Wilkinson
2b99962a85 Replace use of Date with OffsetDateTime and Instant in Actuator
Closes gh-10976
2018-01-12 17:26:05 +00:00
Stephane Nicoll
ae3cd75d1a Polish "Upgrade to Micrometer 1.0.0-rc.6"
Closes gh-11598
2018-01-11 18:35:31 +01:00
Jon Schneider
ccc820f723 Upgrade to Micrometer 1.0.0-rc.6
See gh-11598
2018-01-11 18:35:31 +01:00
Brian Clozel
69d5b7a4e8 Add missing header expectations in tests
Fixes gh-11318
2018-01-11 14:44:50 +01:00
Stephane Nicoll
7189f426ed Create CloudFoundry-specific EndpointWebExtension
Closes gh-11428
2018-01-11 11:23:20 +01:00
Brian Clozel
d264af8142 Apply server.tomcat.* config to reactive servers
This commit applies most `server.tomcat.*` configuration
properties to Tomcat when set up as a reactive web server.

Some Servlet-specific properties are not applied:

* server.tomcat.additional-tld-skip-patterns
* server.tomcat.redirect-context-root
* server.tomcat.use-relative-redirects

Fixes gh-11334
2018-01-11 11:15:02 +01:00
Madhura Bhave
e57aafd63d Provide EndpointRequest for WebFlux-based Security
Closes gh-11022
2018-01-09 16:06:36 -08:00
Madhura Bhave
fa8bca41f8 Fix javadoc 2018-01-09 14:47:32 -08:00
Madhura Bhave
8fedc29ed7 Update copyright year of changed files 2018-01-09 14:45:43 -08:00
Madhura Bhave
3d30c62162 Fix package tangle in cloudfoundry configuration
Fixes gh-11273
2018-01-09 14:42:28 -08:00
Phillip Webb
b078698f20 Update copyright year of changed files 2018-01-09 12:13:27 -08:00
Johnny Lim
0f0c6e0729 Polish
Closes gh-11536
2018-01-09 09:28:56 +01:00
Phillip Webb
cae02ce0b8 Make WebMvcMetricsFilter lazy
Update `WebMvcMetricsFilter` so that it no longer causes early
initialization of Spring MVC concerns.

Fixes gh-11571
2018-01-08 15:19:06 -08:00
Phillip Webb
25609c060e Polish 2018-01-08 15:19:06 -08:00
Stephane Nicoll
ac004eabf3 Update copyright header
See gh-11510
2018-01-05 10:30:43 +01:00
Johnny Lim
37d8eedae3 Polish
Closes gh-11510
2018-01-05 10:29:22 +01:00
Phillip Webb
bee5fa7fc6 Polish 2018-01-03 13:24:04 -08:00
Phillip Webb
6bac365a72 Polish micrometer cache metrics
Change `CacheMeterBinderProvider` to include a cache type
generic which helps to simplify implementations. Also move
and extract a few classes.

See gh-11221
2018-01-03 13:19:31 -08:00
Stephane Nicoll
0515ca0dd0 Auto configure micrometer cache metrics
Closes gh-11221
2018-01-03 15:22:08 +01:00
Johnny Lim
24b5a78e39 Polish
Closes gh-11448
2017-12-30 17:21:13 +01:00
Madhura Bhave
8102dc78cb Remove redundant throws declarations 2017-12-29 12:10:13 -08:00
Johnny Lim
8ae2be6043 Fix property names in MeterBindersConfiguration
Closes gh-11443
2017-12-29 14:36:56 +01:00
Madhura Bhave
c29fe05708 Remove redundant property from tests 2017-12-28 12:45:51 -08:00
Stephane Nicoll
8d1bd7eb3c Polish 2017-12-28 14:57:49 +01:00
Stephane Nicoll
81af02fde7 Improve JVM metrics
This commit adds GC and thread jvm metrics to the existing memory
metrics. All three are now managed by a unique
management.metrics.binders.jvm.enabled property.

Closes gh-11425
2017-12-28 14:57:13 +01:00
Stephane Nicoll
f0d94a46fd Polish 2017-12-28 12:09:27 +01:00
Stephane Nicoll
afba8fed79 Harmonize management.server.context-path property
This commit moves management.server.context-path to
management.server.servlet.context-path to align with the configuration
key for the application's main context path.

Closes gh-11359
2017-12-28 12:08:51 +01:00
Stephane Nicoll
2738147947 Polish "Move CorsEndpointProperties to the parent package"
Closes gh-11439
2017-12-28 11:01:14 +01:00
Johnny Lim
8383b76138 Move CorsEndpointProperties to the parent package
`CorsEndpointProperties` lives in `endpoint.web.servlet` but is also used
in `endpoint.web.reactive`, so this PR moves it to its common parent
package.

This commit also extracts `CorsConfiguration` creation logic duplicated
in `WebMvcEndpointManagementContextConfiguration` and
`WebFluxEndpointManagementContextConfiguration` into
`CorsEndpointProperties`.

See gh-11439
2017-12-28 10:40:51 +01:00
Johnny Lim
3c5ccb1166 Polish
Closes gh-11418
2017-12-26 09:47:10 +01:00
Johnny Lim
b35348b41d Remove org.flywaydb.core.internal.util.StringUtils import
Closes  gh-11396
2017-12-24 12:20:03 +01:00
Johnny Lim
3a276d2a87 Rename CloudFoundryHealthWebEndpointManagementContextConfiguration
Closes gh-11400
2017-12-23 14:23:24 +01:00
Johnny Lim
240aaadd83 Fix package name for InfluxDB
Closes gh-11364
2017-12-23 13:27:58 +01:00
Eddú Meléndez
cc9b2a9786 Fix property key to enable influxdb health endpoint
Closes gh-11365
2017-12-23 12:51:24 +01:00
Phillip Webb
6cb331ed2c Cache endpoint enabled-by-default result
Update `OnEnabledEndpointCondition` so that the result of
`management.endpoints.enabled-by-default` is cached between calls.

Fixes gh-11407
2017-12-22 20:52:07 -08:00
Phillip Webb
befdbaaaa9 Polish 2017-12-15 14:57:25 -08:00
Stephane Nicoll
2ed162a0be Fix outdated references to server.context-path
Closes gh-11358
2017-12-15 10:24:14 +01:00
Stephane Nicoll
a33c3eec3f Polish "Add InfluxDb health indicator"
Closes gh-11159
2017-12-14 15:16:00 +01:00
Eddú Meléndez
cdbdc1cb7f Add InfluxDb health indicator
See gh-11159
2017-12-14 15:15:08 +01:00
Stephane Nicoll
ef78cb33b3 Move metrics properties to "management.metrics"
Closes gh-11340
2017-12-14 12:27:24 +01:00
Stephane Nicoll
de8fe7550f Polish 2017-12-14 12:16:22 +01:00
Stephane Nicoll
41720ca93d Improve extension of Neo4jHealthIndicator
This commit makes it easier to extend `Neo4jHealthIndicator` for cases
where a custom cypher needs to be executed.

Closes gh-11120
2017-12-14 10:01:57 +01:00
Phillip Webb
3273859fde Polish 2017-12-13 14:32:55 -08:00
Stephane Nicoll
681fdb1ee8 Property detect Health web extension with management context
Previously, the Health web extension was defined in the management
context and, as a result, it wasn't found when a separate port was
required. The side effect is that anything that the health web extension
does was not active anymore in that case.

This commit makes sure that the extension is always defined as part of
the main context where operations are discovered and merged.

Closes gh-11285
2017-12-13 17:47:18 +01:00
Johnny Lim
de72f2ae32 Polish
Closes gh-11327
2017-12-13 09:38:20 +01:00
Brian Clozel
175f451b0f Polish 2017-12-12 16:41:44 +01:00
Alessandro Ciccimarra
e1def637ae Apply configurers on MeterRegistry before injection
MeterRegistryConfigurers are now applied within the Bean method
creating the CompositeMeterRegistry, instead of applying them
later in its lifecycle, when the bean itself could have been
injected somewhere.

Fixes gh-11319
2017-12-12 16:03:37 +01:00
Stephane Nicoll
23218add90 Polish 2017-12-12 11:57:30 +01:00
Brian Clozel
5f3c2bef50 Add CORS support to Actuator WebFlux
Closes gh-11308
2017-12-11 22:33:51 +01:00
Stephane Nicoll
5ef9364085 Polish 2017-12-11 17:55:12 +01:00
Johnny Lim
384819ab5f Add @Configuration to ScheduledTasksEndpointAutoConfiguration
Closes gh-11313
2017-12-11 17:46:16 +01:00
Johnny Lim
6d54072e04 Remove "final" keywords
Closes gh-11294
2017-12-08 11:13:07 -08:00
Andy Wilkinson
c0e3ae9042 Polish 2017-12-07 18:27:52 +00:00
Johnny Lim
d33c6773da Use volatile for ReactiveTokenValidator.cacheTokenKeys
Closes gh-11233
2017-12-06 15:10:01 +00:00
Johnny Lim
ada4d13a4e Document spring.metrics.binders.*
Closes gh-11262
2017-12-05 15:57:46 -08:00
Stephane Nicoll
a4913712cb Do not expose the composite ReactiveHealthIndicator as a bean
Previously, a `ReactiveHealthIndicator` bean was exposed to define the
health indicator to use for the reactive endpoint. Having it exposed as
a bean has the side effect that the regular `HealthIndicator` composite
is picked up and a "reactive" entry is added to the health details.

This commit creates such indicator internally as it should be.

Closes gh-11222
2017-12-02 08:29:07 +01:00
Stephane Nicoll
5dc28ec446 Merge branch '1.5.x' 2017-11-30 18:01:36 +01:00
Johnny Lim
44299bb980 Polish
Closes gh-11206
2017-11-29 09:37:36 -08:00
Johnny Lim
952224ef56 Polish
Closes gh-11193
2017-11-29 10:50:42 +01:00
Phillip Webb
2c959b8e2a Polish health indicators
Align reactive and non-reactive web extensions and update `showDetails`
so that it only applies to web exposure.

See gh-11113
See gh-11192
2017-11-28 21:19:53 -08:00
Madhura Bhave
9e95483645 Add cloudfoundry health extensions
Fixes gh-11192
2017-11-28 18:49:17 -08:00
Phillip Webb
e1306c6228 Polish micrometer rc.5 upgrade
Closes gh-11071
2017-11-28 16:58:53 -08:00
Jon Schneider
2e0a915281 Upgrade to micrometer 1.0.0-rc.5
See gh-11071
2017-11-28 16:58:53 -08:00
Phillip Webb
960083bd33 Polish 2017-11-28 16:21:09 -08:00
Madhura Bhave
2319d01feb Prevent race condition in ReactiveTokenValidator 2017-11-28 14:24:22 -08:00
Andy Wilkinson
22a426fe39 Polish 2017-11-28 10:50:28 +00:00
Madhura Bhave
9f76832488 Optimize fetching tokenKeys for reactive actuators
Closes gh-10899
2017-11-27 12:32:21 -08:00
Johnny Lim
70d92037bd Use BeanIds.SPRING_SECURITY_FILTER_CHAIN
See gh-11162
2017-11-27 10:31:32 +01:00
Stephane Nicoll
480039f212 Fix default value of management.endpoints.web.expose 2017-11-24 15:22:57 +01:00
Stephane Nicoll
a12bab453c Polish "Fix PropertiesConfigAdapter delegation logic"
Closes gh-11135
2017-11-24 13:48:06 +01:00
Nikolay Rybak
9163d65b0e Fix PropertiesConfigAdapter delegation logic
This change replaces fallback logic in PropertiesConfigAdapter and its
descendants such that instead of falling back to default "empty" config
it delegates to superinterface default implementation of the same class.

This allows default implementation to call back to other properties,
like DatadogConfig.uri() does.

See gh-11135
2017-11-24 13:31:00 +01:00
Stephane Nicoll
45e8c237de Polish 2017-11-24 11:16:46 +01:00
Johnny Lim
01a48412d2 Polish
Closes gh-11126
2017-11-23 16:00:55 +00:00
Stephane Nicoll
97bb70cd0c Polish 2017-11-23 16:28:00 +01:00
Stephane Nicoll
3a6a238ea9 Improve error metadata for Actuator 2017-11-23 15:59:51 +01:00
Vedran Pavic
63aef58d30 Fix references to management related properties
See gh-11091
2017-11-23 10:48:37 +01:00
Phillip Webb
07f71e889e Move /application to /actuator
Change the endpoint default path from `/application` to `/actuator`.

Fixes gh-10970
2017-11-22 23:18:22 -08:00
Phillip Webb
3e2ede51d6 Delete status documentation
See gh-11113
2017-11-22 23:18:21 -08:00
Phillip Webb
31025d9f6c Drop status endpoint
Drop the status endpoint and merge functionality back into the health
endpoint. The `management.endpoint.health.show-details` property can
be used to change if full details, or just the status is displayed.

Fixes gh-11113
2017-11-22 22:01:58 -08:00
Phillip Webb
e82913dd5a Align appendix edits with source code
Port editing changes from append to java source files to ensure that
IDE meta-data also reflects the improvements.

Closes gh-10870
2017-11-20 15:47:49 -08:00
Phillip Webb
64c5e8b6ed Rename @DurationUnit -> @DefaultDurationUnit
Rename `@DurationUnit` to `@DefaultDurationUnit` to make it clearer
that it only changes the unit if one isn't specified by the user.

Closes gh-11078
2017-11-20 12:18:14 -08:00
Andy Wilkinson
bc98b84013 Reduce excessive logging by disabling Statsd metrics export
Closes gh-11009
2017-11-20 15:27:01 +00:00
Phillip Webb
8f4bf233b4 Update configuration properties to use Duration
Update appropriate configuration properties to use the `Duration`
type, rather than an ad-hoc mix of milliseconds or seconds.

Configuration properties can now be defined in a consistent and readable
way. For example `server.session.timeout=5m`.

Properties that were previously declared using seconds are annotated
with `@DurationUnit` to ensure a smooth upgrade experience. For example
`server.session.timeout=20` continues to mean 20 seconds.

Fixes gh-11080
2017-11-19 21:52:57 -08:00
Johnny Lim
73c65286ea Polish 2017-11-18 10:07:30 -08:00
Phillip Webb
7ff2cb5dc8 Polish 2017-11-18 10:03:30 -08:00
Madhura Bhave
49768e2b1f Register config classes once in reactive child context
Fixes gh-10939
2017-11-17 19:49:31 -08:00
Phillip Webb
a6cefc5ba0 Polish 2017-11-17 14:18:31 -08:00
Madhura Bhave
5ce9067e30 Clean trailing slash from endpoints.web.base-path
Fixes gh-11021
2017-11-17 12:00:55 -08:00
Andy Wilkinson
3e46b5c5c7 Auto-configure endpoints in main context so they are always discovered
Closes gh-11046
2017-11-17 14:09:20 +00:00
Andy Wilkinson
3b45342359 Make Actuator Web API documentation compatible with Java 9
Closes gh-8042
2017-11-17 12:24:37 +00:00
Jay Bryant
706600c003 Polish Actuator Web API documentation
See gh-8042
2017-11-17 11:27:41 +00:00
Andy Wilkinson
4de208bc94 Provide reference documentation for Actuator web endpoints
Closes gh-8042
2017-11-17 11:27:16 +00:00
Johnny Lim
e8563c54dd Polish
Closes gh-11050
2017-11-17 09:56:16 +01:00
Stephane Nicoll
54b54b7c30 Fix condition for Datadog's api key
Closes gh-11053
2017-11-17 09:47:57 +01:00
Johnny Lim
cbb483735d Polish
Closes gh-10948
2017-11-16 10:36:20 +01:00
Stephane Nicoll
bcab23e538 Polish "Separate endpoint concerns"
* Fix the endpoint prefix for generated metadata.
* Polish and improve configuration key descriptions.

Closes gh-10176
2017-11-16 10:32:34 +01:00
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
2017-11-15 14:41:38 -08:00
Phillip Webb
f647f5689f Polish 2017-11-15 12:47:47 -08:00
Andy Wilkinson
1a094598b8 Add an endpoint for retrieving information about scheduled tasks
Closes gh-8831
2017-11-15 13:28:38 +00:00
Stephane Nicoll
1830dcf103 Rename AutoConfigurationReportEndpoint to ConditionsEndpoint
This commit further aligns the change to ConditionEvaluationReport by
renaming the 'autoconfig' endpoint to 'conditions'.

Closes gh-2945
2017-11-14 15:25:07 +01:00
Stephane Nicoll
401fe7e1e2 Polish micrometer configuration key descriptions
Closes gh-10890
2017-11-14 11:37:05 +01:00
Stephane Nicoll
92c62b6e9f Remove resuscitated properties from the deprecation list
This commit removes two properties that were remove in earlier
milestones of Spring Boot 2 and reintroduced with the support of
micrometer.

Closes gh-11015
2017-11-14 11:34:31 +01:00
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
2017-11-12 11:19:14 +00:00
Andy Wilkinson
07462be090 Polish 2017-11-11 16:29:12 +00:00
Johnny Lim
bd0dcfb172 Utilize StandardCharsets
Closes gh-10972
2017-11-10 09:49:13 +01:00
Madhura Bhave
3be521e825 Add DefaultHandlerExceptionResolver to child context
Fixes gh-10560
2017-11-08 17:52:24 -08:00
Andy Wilkinson
60afbdc868 Polish 2017-11-06 11:44:53 +00:00
Johnny Lim
c05a299520 Polish
Closes gh-10921
2017-11-06 12:28:43 +01:00
Phillip Webb
cf17e5708b Polish Micrometer 1.0.0-rc.3 upgrade
Polish Micrometer 1.0.0-rc.3 upgrade changes.

Closes gh-10906
2017-11-03 23:47:51 -07:00