Also, you can read the code from our latest release JStorm 2.1.1. On Mon, Mar 21, 2016 at 11:10 PM, Cody Innowhere <e.neve...@gmail.com> wrote:
> @Jungtaek, > We did some tests on codahale metrics, compared to meters/histograms, > counters are quite fast. So we mainly focused on the optimization of meters > and histograms (they are indeed very slow) including double sampling, > changing the clock from ns (System.nanoTime) to ms, etc. > You can take a look at the > "com.alipay.dw.jstorm.example.sequence.bolt.TotalCount" class of our > sequence-split-merge example code, as the client code entry to metrics. > After that, you may dig to TopologyMaster class, which is still part of a > topology, and then to TopologyMetricsRunnable, which is a part of nimbus > server, finally to MetricUploader plugin, this is where the metrics > interfere with our "metrics server". Still, there're some nits in the code, > but I think that should be no big problem. > > I'd also like to point out that our "metrics server" is not strictly a > real metrics server, since most of the duty lies on nimbus server and > topology master, it's more appropriate to call it metrics storage. The main > reason for this is that we don't want to make a heavy-weight metrics server > out of JStorm, and this makes us very easy to maintain (we have teams that > specifically maintain HBase/OTS in Alibaba since they're so commonly used > in production). > > On Mon, Mar 21, 2016 at 10:54 PM, Jungtaek Lim <kabh...@gmail.com> wrote: > >> Thanks Cody and Bobby for the explanation. >> >> Cody, >> I took a look at design doc and looks promising, especially it doesn't do >> sampling when metric type is 'counter'. As far as I heard (I didn't try >> it) >> it becomes huge performance hit in Apache Storm when we change sample rate >> to 1.0. >> Could you guide the entry point of metric feature in JStorm to dig into? >> >> And just a curiosity, did you consider extracting metric feature (which is >> done with TopologyMasters and Nimbuses) into separate component? >> I understood your mention to 'metrics server' as separate component, but >> after seeing design doc, feature seems to be implemented on Nimbus. >> >> Thanks, >> Jungtaek Lim (HeartSaVioR) >> >> 2016년 3월 19일 (토) 오전 1:25, Cody Innowhere <e.neve...@gmail.com>님이 작성: >> >> > JStorm has provided a MetricUploader interface, which is similar to >> > IMetricsConsumer in storm, and the underlying implementation is >> pluggable, >> > you can use HBase, or any other KV store that supports timeline queries >> or >> > even a database(maybe for it's a small cluster). We provide model >> classes >> > in jstorm-core, as to what kinds of metrics data need to be stored, it's >> > totally up to the detailed implementation. Our internal implementation >> uses >> > OTS, which is a product of aliyun (https://www.aliyun.com/product/ots/ >> ), >> > but it's easy to adapt to other implementations. >> > >> > On Fri, Mar 18, 2016 at 11:52 PM, Bobby Evans >> <ev...@yahoo-inc.com.invalid >> > > >> > wrote: >> > >> > > Yes we originally wanted to try and use the Hadoop Timeline Server for >> > > storm metrics feedback to nimbus + UI + history like server. But it >> was >> > > not stable at the time, so we stopped. For the sake of playing nicely >> > with >> > > the rest of the big data ecosystem I would like to see us support it >> as >> > an >> > > option for metrics collection/query, but until the timeline server v2 >> is >> > > ready and released. For me the important thing is that we have a >> decent >> > > time series DB that comes with storm by default and is pluggable so we >> > can >> > > replace it with something else that has similar capabilities in the >> > future. >> > > - Bobby >> > > >> > > On Friday, March 18, 2016 10:39 AM, Cody Innowhere < >> > > e.neve...@gmail.com> wrote: >> > > >> > > >> > > It's actually in Phase 2 of porting JStorm, but I'm absolutely ok to >> > > discuss this in advance. >> > > >> > > On Fri, Mar 18, 2016 at 11:31 PM, Cody Innowhere <e.neve...@gmail.com >> > >> > > wrote: >> > > >> > > > Yes it's already in production. >> > > > The implementation basically follows the design document in >> > > > https://issues.apache.org/jira/browse/STORM-1329, you can take a >> look >> > > > first and feel free to ask questions. >> > > > >> > > > On Fri, Mar 18, 2016 at 10:19 PM, Jungtaek Lim <kabh...@gmail.com> >> > > wrote: >> > > > >> > > >> Hi, >> > > >> >> > > >> I got something to do with metrics so I'm seeking the pull requests >> > > which >> > > >> addresses metrics. >> > > >> And at #753 <https://github.com/apache/storm/pull/753> I found >> Cody >> > > said >> > > >> we >> > > >> (maybe it means Alibaba team) are currently working on Metrics >> Server. >> > > >> (I also found comment which said there was some talk while ago >> around >> > > >> integrating Hadoop timeline server. Seems like no one came up with >> the >> > > >> result, and I prefer to avoid big dependency so I'm in favor of >> > Metrics >> > > >> Server for now.) >> > > >> >> > > >> I think that would improve metrics feature of Storm much better, so >> > I'd >> > > >> like to see how the work is going. Sure it's only when there's no >> > issue >> > > >> for >> > > >> you to work transparently. I just would like to prevent >> duplication of >> > > >> work, and would like to help if needed and possible. >> > > >> >> > > >> Thanks, >> > > >> Jungtaek Lim (HeartSaVioR) >> > > >> >> > > > >> > > > >> > > >> > > >> > > >> > > >> > >> > >