erma/erma — pull request #2 by orirawlings (2012-08-21 19:03:36+00:00)
Title: Statsd extensions

Statsd is both a server implementation and protocol, used to provide aggregation and transport of metrics from applications to one or more backends (such as graphite or nagios). Documentation on statsd can be found at https://github.com/etsy/statsd and http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/.

The extensions in this pull request provide a bridge between ERMA instrumentation and the statsd protocol. This is achieved primarily through the addition of com.orbitz.monitoring.lib.processor.statsd.StatsdMonitorProcessor. This MonitorProcessor uses a configured instance of com.orbitz.statsd.StatsdClient to transform Monitor data into statsd messages and send them over a UDP datagram channel.

The three main monitor types in ERMA map to the three main monitor types in statsd protocol:

1. TransactionMonitors to timers
2. EventMonitors to counters
3. ValueMonitors to gauges

The com.orbitz.statsd.StatsdClient class was originally provided as an example in the original statsd project at https://github.com/etsy/statsd. It is distributed under the MIT License and thus compatible for inclusion and redistribution within this project.