I used Nimbus Thrift on my end.

The one thing to note about that approach is that, if you're planning to plot those metrics (say, on Graphite), the results aren't very interesting because the metrics -- emitted, transferred, acks, etc. -- are aggregates and simply monotonically increase, which lead to not so insightful graphs (... more-or-less lines that
go up from left-to-right forever).

However, I took consecutive metrics samples from Nimbus, say,
every 5 seconds, and plotted the difference between the two samples divided by 5 to plot average quantities instead. That was insightful. So while (except for latency type metrics) Nimbus doesn't provide you with average rates for emits/transferred/acks (and you won't see them on the UI either), you can easily derive them manually and send that to Graphite (or to your charting platform). If using Graphite, btw., you also have the option of letting Graphite calculate the averages on the back-end
for you, too (giving you options).

Finally, for application specific metrics exposed via Java Mbeans, consider Codahale's
Metric's API (in-band), and JMXtrans (out-of-band).

Noel Milton Vega
Dimension Data, LLC.
[email protected]
[email protected]



On 03/17/2014 08:30 PM, Michael Rose wrote:
Depending on what you need, you could use the Thrift interface to Nimbus to grab the statistics. The UI project does do some calculations on the raw metrics, so it's not quite the same. The algorithms it uses aren't too difficult to replicate.

We ended up building something very similar to what Ooyala did, customized for our specific needs, it's an excellent pattern.

Michael Rose (@Xorlev <https://twitter.com/xorlev>)
Senior Platform Engineer, FullContact <http://www.fullcontact.com/>
[email protected] <mailto:[email protected]>



On Mon, Mar 17, 2014 at 6:21 PM, Chris Bedford <[email protected] <mailto:[email protected]>> wrote:


    Hi, I'm interested in getting metrics via JMX on not only   "
    container level " factors (such as # of garbage collects, heap
    usage,etc.),   but also metrics that describe how spouts and bolts
    are performing  (e.g., # of tuples emitted, # transferred -- the
    same kind of stuff that the storm UI
    shows.)

    I ran across this project :
    :
    
https://github.com/ooyala/metrics_storm/blob/master/src/ooyala/common/metrics_storm/MetricsStorm.scala


    I was just wondering if this is the best best to pursue.  Does
    anyone have any concrete experience with this that they can share?
    thanx!

     chris



Reply via email to