Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes.
However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I’ll demo some of those, that will make DevOps more than a little happy.
15. Graphite
• Store numeric time-series
data
• Render graphs of this data
on demand
@nicolas_frankel
16. For development
• Either define the 2 reporters
– Set
@ConditionalOnMissingBean
– Use a "Development" profile
• Or define only the JMX
reporter
– In production, use JMXTrans
@nicolas_frankel
18. Health checks
• A good way to monitor
your application
• Each check wraps a
dependency
–e.g. a datasource
@nicolas_frankel
19. Health checks
• Each check returns an
Health object
–Status UP or DOWN
–If not, possibly with
details
@nicolas_frankel
20. Health check endpoint
• /health aggregates all
checks
• Health are objects
–Serialized in JSON
• If only one is down, the
HTTP code is set to 5xx
@nicolas_frankel
21. Health check
• Bean must implement
HealthIndicator
• Doesn’t use Dropwizard
HealthCheck
@nicolas_frankel
22. References
• Graphite Vagrant
– https://github.com/tilmans/vagrant-statsd-graphite-
puppet
• Enhanced Spring Pet Clinic
– https://github.com/nfrankel/enhanced-pet-clinic
@nicolas_frankel