/storm-metrics-reporter

A Storm metrics reporter module.

Primary LanguageJavaApache License 2.0Apache-2.0

storm-metrics-reporter

A pretty generic Storm metrics reporter, currently used to adapt Storm metrics to Yammer metrics API and report them to Graphite, inspired by storm-metrics-statsd.

Currently it provides the following core features:

  • Sending built-in Storm metrics to Graphite (or whatever, basically)
  • Bolt capacity metrics (not one of Storm's built-in metrics, and a bit of a pain to calculate using Graphite's mathematical functions)
  • Yammer metrics semantics over Storms metric mechanism
    • Counter
    • Gauge
    • Timer
    • Histogram
    • Meter

Please take a look at the Wiki for furter deatils.

Usage

Add a pom dependency (hosted by maven central):

<dependency>
  <groupId>com.github.staslev</groupId>
  <artifactId>storm-metrics-reporter</artifactId>
  <version>1.1</version>
</dependency>

Or, in case you wish to build the jar yourself:

git clone https://github.com/staslev/storm-metrics-reporter.git
cd storm-metrics-reporter
mvn package install

Screenshots

Graphite metric hierarchy

Execute Latency Metrics

Disclaimers

  • This project was inspired by storm-metrics-statsd, thanks jt6211!
  • The screenshots above were generated using a custom StormMetricProcessor implementation, not the one included in the sources. It depicts a particular Graphite naming convention (the host for instance, is not seen in the metric hierarchy chart as it's located higher in the hierarchy). Metrics naming styles are subject to change in other environemnts.
  • storm-metrics-reporter currently supports reporting metrics to Graphite only, but it should be pretty straight forward to extend it to support other metrics reporting mechanisms.

Further Reading