This isn't as elegant of a solution as it doesn't take advantage of the new features you mention in 0.9 but I simply implement ITaskHook with a constructor that takes in a sensible name for bolts and spouts. This name is used to dump metrics into Codahale and then the Codahale GraphiteReporter ships the metics over periodically.
On Tue, Jan 21, 2014 at 8:28 PM, James Kebinger <[email protected]>wrote: > I'm trying to implement a metrics consumer for a Trident topology, so I'm > using the example LoggingMetricsConsumer as an example. I see that each > call to handleDataPoints passes in an instance of TaskInfo containing a > source component id. How do I map that component id to the name of a bolt > so that I can disambiguate metrics that could possibly have the same name > from multiple bolts? > > The task id and component id from the output are "6:b-0". I see that i can > get an instance of ComponentCommon at that point, but not sure what to do > with that. > > It looks like in storm, bolts can be assigned names, but maybe that's not > the case in trident? > > > Here's a line of the output with my custom metric in it (hostname removed) > 10725423 [Thread-26-__metricsbacktype.storm.metric.LoggingMetricsConsumer] > INFO backtype.storm.metric.LoggingMetricsConsumer - 1390352500 > mashentuck.hostname.com:1 6:b-0 lag 0.6 > > Thanks > > > >
