Commit Graph

312 Commits

Author SHA1 Message Date
Dave Syer 68448a8c68 Use the ServerProperties to add prefixes to paths
when server.servletPath is set we need to add prefixes to
the security filter paths.

Fixes gh-945
2014-05-24 08:33:14 +01:00
Phillip Webb 96a0d672af Rename SimpleDataSourceHealthIndicator
Rename SimpleDataSourceHealthIndicator to DataSourceHealthIndicator.
2014-05-23 10:58:40 +01:00
Phillip Webb aa03d9a41c Make Health and Status immutable
Update Health and Status objects to be immutable, update the existing
builder methods to return new instances and add static convenience
methods to Health.
2014-05-23 10:58:40 +01:00
Eric Dahl 3457cc4f39 Fix multiple typos in documentation, as well as "thread.deamon" typo in actuator 2014-05-22 21:18:08 -05:00
Christian Dupuis 297d14f5f8 Polish 2014-05-22 22:44:45 +02:00
Phillip Webb 1a475102de Polish 2014-05-22 20:33:08 +01:00
Andy Wilkinson d8e783f856 Update SolrHealthIndicator to extend AbstractHealthIndicator 2014-05-22 19:51:33 +01:00
Christian Dupuis db74d27ea0 Extract AbstractHealthIndicator
to make it more simple to implement HealthIndicator
2014-05-22 19:06:15 +02:00
Andy Wilkinson b76a519f65 Add a HealthIndicator for Solr 2014-05-22 17:29:12 +01:00
Christian Dupuis 40b55b0ff6 Extract AbstractHealthAggregator
This commit makes it easier for users to implement HealthAggregators
2014-05-22 17:40:38 +02:00
Christian Dupuis f9aeb6aefe Polish 2014-05-22 17:31:43 +02:00
Dave Syer 59c108a4b0 Fix bug in group names (again) 2014-05-22 15:48:29 +01:00
Dave Syer 1fabfaa259 Align behaviour of in-memory and redis mult repos
The in-memory version has to force the incoming metric keys to
start with the group name. Redis doesn't have that restriction
but normally we expect both to be used in such a way that
the metric keys already match the prefix. In that case the two
repositories behave the same now in terms of set and get.
2014-05-22 15:35:55 +01:00
Dave Syer 0dca2dd978 Small docs tweaks in metrics 2014-05-22 14:51:19 +01:00
Dave Syer b12d7c705c Improve redis repository implementations
Storing values in zset makes them less prone to races.

Fixes gh-929
2014-05-22 12:41:24 +01:00
Christian Dupuis b77a9c5a8e Remove List.sort usage for Collections.sort 2014-05-22 13:17:20 +02:00
Dave Syer 0cbd0b609a Add increment() to PrefixMetricWriter
In the redis repository we also switch to store the value in the
zset (so it can be atomically incremented) rather than in the
regular key-value.

Fixes gh-929
2014-05-22 12:05:56 +01:00
Christian Dupuis 14899ba3b2 Fix compile problem
Something slipped the recent merge
2014-05-22 12:45:15 +02:00
Christian Dupuis 0c2bc99af3 Return different http return status codes for different system health states
fixes #880
2014-05-22 12:27:03 +02:00
Christian Dupuis 4bc6a0f49e Rename Status.status to Status.code 2014-05-22 12:27:03 +02:00
Christian Dupuis 4648188782 Rework HealthEndpoint and HealthIndicator
With this commit the state of a component or subsystem becomes a first-class citizen in Boot's application health support. HealthIndicators now return a Health instance with status and some contextual details.

An aggregation strategy has been introduced to aggregate several Health instances into one final application Health instance. Out of the box OrderedHealthAggregator can be configured to allow different ordering or a custom HealthAggregator bean can be registered.
2014-05-22 12:27:03 +02:00
Dave Syer d59cbc830a Group resolution for RedisMultiMetricRepository with prefix
The prefix needs to be added before looking for keys. In addition
I rationalized the constructor and final fields (it didn't make
any sense for the prefix to be mutable).

Fixes gh-927
2014-05-22 09:35:08 +01:00
Dave Syer ed2876e931 Add a PrefixMetricWriter interface to cleanly separate write/read
The PrefixMetricGroupExporter only really makes sesne if the writer
is aware of the groups, so it seemed better to use a new interface
than mix read/write.
2014-05-22 09:10:49 +01:00
Dave Syer 94e891e924 Rename method count() -> countGroups()
Fixes gh-923
2014-05-22 09:10:49 +01:00
Phillip Webb 8bcda1bcbe Polish 2014-05-20 18:26:56 +01:00
Christian Dupuis 3f498a4803 Add configuration properties to disable out of the box health checks 2014-05-19 15:54:32 +02:00
Christian Dupuis 4ffe816a21 Fix typo 2014-05-19 15:54:31 +02:00
Christian Dupuis fef998f914 Remove autowired injection of HealthIndicators into HealthEndpoint
Moved into EndpointAutoConfiguration
2014-05-19 15:54:31 +02:00
Phillip Webb 938609fdc0 Merge branch '1.0.x'
Conflicts:
	spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/CrshAutoConfiguration.java
	spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java
2014-05-15 16:35:43 +01:00
Christian Dupuis 875e77d420 Correctly decode URL coming into the Jolokia endpoint
fixes #869
2014-05-15 17:29:21 +02:00
Phillip Webb fa7da5925b Remove checked exceptions from @PostConstructs
Update all @PostConstruct methods to ensure that they don't throw
checked exceptions. Required to allow deployment of Spring Boot
applications on Glassfish.

Fixes gh-868
2014-05-15 15:47:44 +01:00
Dave Syer 5249f54c5a Integrate @ConfigurationProperties @Beans with DataSource configuration
We now have a much simpler DataSourceAutoConfiguration that binds to whatever
DataSource concrete type it finds at runtime. To be able to quickly switch between
Hikari and the other types of DataSource there's a minute shim for translating
the common properties (username, password, url, driverClassName), but actually
only url is different. The shim and also DataSource initialization is supported
through DataSourceProperties, but the other native properties get bound directly
through the concrete runtime type of the DataSource.

The /configprops endpoint works (and is exposed in the actuator sample).

Fixes gh-840, fixes gh-477, see also gh-808.
2014-05-13 16:46:04 +01:00
Dave Syer 660b73b5c6 Ensure only bindable properties are reported in /configprops
Introspects the properties that are being exposed in the report
and only renders the ones that are a) convertible from String
and b) have a setter. That goes a long way to making it a bullet
proof generic renderer of any Java object that can be bound with
@ConfigurationProperties.
2014-05-13 16:46:03 +01:00
Dave Syer 85719f75e4 Add @Bean-level config properties to /configprops 2014-05-13 16:45:48 +01:00
Christian Dupuis 9e56c38b7a Rename DefaulErrorAttributes to DefaultErrorAttributes
fixes #853
2014-05-13 17:43:28 +02:00
Phillip Webb 30ac768cbf Remove @ControllerAdvice from BasicErrorController
Update the BasicErrorController so that it no longer needs to implement
@ControllerAdvice or have an @ExceptionHandler method.

A new ErrorAttributes interface is now used to obtain error details,
the DefaultErrorAttributes implementation uses a
HandlerExceptionResolver to obtain root exception details if the
`javax.servlet.error.*` attributes are missing.

This change also removes the need for the extract(...) method on
ErrorController as classes such as WebRequestTraceFilter can
now use the ErrorAttributes interface directly.

See gh-839, gh-538
Fixes gh-843
2014-05-12 19:46:57 +01:00
Andy Wilkinson fec136e213 Merge branch '1.0.x'
Conflicts:
	spring-boot-dependencies/pom.xml
2014-05-12 10:37:06 +01:00
Andy Wilkinson f761daf253 Upgrade to CRaSH 1.3.0-beta18
Closes #841
2014-05-12 10:35:20 +01:00
Lukasz Kryger e7484c66f5 Registering PID file to be deleted on JVM exit 2014-05-11 09:21:19 -07:00
Phillip Webb bd38893f55 Rename rabbitHealthIndicator bean
Rename the rabbitHealthIndicator bean which was accidentally named
redisHealthIndicator.
2014-05-10 22:34:18 +01:00
Christian Dupuis a62bc9ca60 Polish 2014-05-10 11:15:31 +02:00
Christian Dupuis b026b13c66 Add HealthIndicator for Rabbit 2014-05-10 11:12:04 +02:00
Phillip Webb 1acffdf649 Polish 2014-05-09 08:52:11 +01:00
Christian Dupuis 51dddc2dc4 Add gc information to /metrics endpoint 2014-05-08 17:10:37 +02:00
Christian Dupuis dfd6f91aef Merge pull request #819 from cdupuis/health-indicator
Rework HealthIndicator support
2014-05-08 16:40:44 +02:00
Christian Dupuis 288e7a5d92 Rename missing test 2014-05-08 16:32:50 +02:00
Christian Dupuis 916a85c615 Rename SimpleHealthIndicator to SimpleDataSourceHealthIndicator 2014-05-08 16:20:50 +02:00
Christian Dupuis eeaa96725f Rename SimpleHealthIndicator to SimpleDataSourceHealthIndicator 2014-05-08 16:20:22 +02:00
Christian Dupuis c5ec735afb Add unit test for (Mongo|Redis)HealthIndicator 2014-05-08 15:56:29 +02:00
Dave Syer 14d3b46809 Add constants to SecurityProperties and ManagementServerProperties
For the convenience of users who want to selectively override the
access rules in an application without taking complete control of the
security configuration we now have some constants:

* SecurityProperties.ACCESS_OVERRIDE_ORDER for overriding just the
application endpoint access rules

* ManagementServerProperties.ACCESS_OVERRIDE_ORDER for overriding the
application endpoint and management endpoint access rules

Fixes gh-803
2014-05-08 05:32:43 -07:00