The metrics_storm project adds easy performance metrics collection infrastructure, as well as an embedded web console, to any Storm (http://github.com/nathanmarz/storm) topology, based on Coda Hale's excellent metrics library (http://metrics.codahale.com). At a minimum, the following is supported:
In addition, if you enable MetricsStormHooks, then you get automatic emit and ack rate meters for every bolt and spout in your topology. To enable, place the following in your storm.yaml:
topology.auto.task.hooks:
- "ooyala.common.metrics_storm.MetricsStormHooks"
You can also programmatically inject the above configuration, like this:
config.put(Config.TOPOLOGY_AUTO_TASK_HOOKS, List(classOf[MetricsStormHooks].getName).asJava)
Refer to https://github.com/nathanmarz/storm/wiki/Hooks for more information.
Set the following parameter in storm.yaml, listing one port per supervisor.slot.ports, like this:
worker.webconsole.ports:
- 7000
- 7001
If this parameter is not set, the web console port defaults to 7070.
You can build this project using SBT 0.11.2 or higher. To run the unit tests:
sbt test
To create a jar in target/scala-*/:
sbt package
To publish to ~/.ivy2/local/, including POM files:
sbt publish-local
Contributions via pull request are very welcome.
Apache 2.0, see LICENSE.md
Copyright(c) 2013, Ooyala, Inc.