Coder Social home page Coder Social logo

storm-metrics-reporter's Introduction

storm-metrics-reporter

A Storm metrics reporter capable of sending both Storm built-in metrics, as well as custom ones, to various metrics reporters such as Graphite or plain JMX.

Please take a look at the Wiki for further details.

Usage

Add a pom dependency (hosted by maven central):

<dependency>
  <groupId>com.github.staslev</groupId>
  <artifactId>storm-metrics-reporter</artifactId>
  <version>1.5.0</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 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

storm-metrics-reporter's People

Contributors

cm-cnnxty avatar ooasis avatar staslev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

storm-metrics-reporter's Issues

release for JMX Reporter

Hi,

the JMX reporter was added a while back, but there hasn't been a release since.

Could you please create one, so we don't have to use local jars?

Thanks,
Cheers!

When I use a customized scheduler Storm does not collect metrics

Hi, when I use a customized scheduler which implements IScheduler interface I cannot see any metrics on Graphite anymore. I tested without a customized scheduler and it works. However it stops to work when I just configure a customized scheduler on the storm.yaml

supervisor.scheduler.meta:
  site: "cluster"
storm.scheduler: "org.sense.storm.scheduler.SiteAwareScheduler"

Do you have any hint of what could be happening?
Thanks

Can't see Storm in my graphite UI

Hi,

I like to report Storm's built-in metrics using the storm-metrics-reporter, here how I make it, first

  1. add dependency in my topology pom

    com.github.staslev
    storm-metrics-reporter
    1.0
  2. add this snippet my code:

import com.github.staslev.storm.metrics.graphite.SimpleGraphiteStormMetricGauge;
import com.github.staslev.storm.metrics.MetricReporterConfig;
import com.github.staslev.storm.metrics.MetricReporter;

conf.put(MetricReporter.METRICS_HOST, "10.100.70.29");
conf.put(MetricReporter.METRICS_PORT, "2003");
conf.registerMetricsConsumer(MetricReporter.class,
new MetricReporterConfig("(.execute.|.latency.|.capacity.)",
SimpleGraphiteStormMetricGauge.class.getCanonicalName()),
1);
I successfully build the jar and submit the topology.

  1. Now I assume my topology has registered the storm-metrics-reporter and sending buildin metrics to graphite.
  2. This is how I start graphite-web
    PYTHONPATH=pwd/storage/whisper ./bin/run-graphite-devel-server.py --port=8085 --libs=pwd/webapp /opt/graphite 1>/opt/graphite/storage/log/webapp/process.log 2>&1 &
  3. carbon.conf
    [cache]
    LINE_RECEIVER_INTERFACE = 0.0.0.0
    LINE_RECEIVER_PORT = 2003
    CACHE_QUERY_INTERFACE = 0.0.0.0
    CACHE_QUERY_PORT = 7002

However, I can't see storm metrics in graphite, any ideas?

thanks

AL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.