[ 
https://issues.apache.org/jira/browse/STORM-200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14046403#comment-14046403
 ] 

ASF GitHub Bot commented on STORM-200:
--------------------------------------

Github user d2r commented on the pull request:

    https://github.com/apache/incubator-storm/pull/38#issuecomment-47400870
  
    Metrics test hangs for me (tried three times).  OSX/1.7.0_60
    
    Still looking...
    
    ```
    main [SLEEPING] CPU time: 1d 14h 58m 9s
    java.lang.Thread.sleep(long)
    backtype.storm.utils.Time.sleepUntil(long)
    backtype.storm.utils.Time.sleep(long)
    backtype.storm.util$sleep_secs.invoke(Object)
    backtype.storm.daemon.supervisor$shutdown_worker.invoke(Object, Object)
    
backtype.storm.daemon.supervisor$fn__7334$exec_fn__1404__auto__$reify__7343.shutdown_all_workers()
    java.lang.reflect.Method.invoke(Object, Object[])
    clojure.lang.Reflector.invokeMatchingMethod(String, List, Object, Object[])
    clojure.lang.Reflector.invokeNoArgInstanceMember(Object, String)
    backtype.storm.testing$kill_local_storm_cluster.invoke(Object)
    backtype.storm.metrics_test$fn__2189$fn__2190.invoke()
    backtype.storm.metrics_test$fn__2189.invoke()
    clojure.test$test_var$fn__7145.invoke()
    clojure.test$test_var.invoke(Object)
    clojure.test$test_all_vars$fn__7149$fn__7156.invoke()
    clojure.test$default_fixture.invoke(Object)
    clojure.test$test_all_vars$fn__7149.invoke()
    clojure.test$default_fixture.invoke(Object)
    clojure.test$test_all_vars.invoke(Object)
    clojure.test$test_ns.invoke(Object)
    clojure.core$map$fn__4207.invoke()
    clojure.lang.LazySeq.sval()
    clojure.lang.LazySeq.seq()
    clojure.lang.Cons.next()
    clojure.lang.RT.boundedLength(ISeq, int)
    clojure.lang.RestFn.applyTo(ISeq)
    clojure.core$apply.invoke(Object, Object, Object)
    clojure.test$run_tests.doInvoke(Object)
    clojure.lang.RestFn.invoke(Object)
    com.theoryinpractise.clojure.testrunner$eval7799$fn__7804$fn__7847.invoke()
    com.theoryinpractise.clojure.testrunner$eval7799$fn__7804.invoke()
    com.theoryinpractise.clojure.testrunner$eval7799.invoke()
    clojure.lang.Compiler.eval(Object, boolean)
    clojure.lang.Compiler.load(Reader, String, String)
    clojure.lang.Compiler.loadFile(String)
    clojure.main$load_script.invoke(Object)
    clojure.main$script_opt.invoke(Object, Object)
    clojure.main$main.doInvoke(Object)
    clojure.lang.RestFn.invoke(Object)
    clojure.lang.Var.invoke(Object)
    clojure.lang.AFn.applyToHelper(IFn, ISeq)
    clojure.lang.Var.applyTo(ISeq)
    clojure.main.main(String[])
    ```


> Proposal for Multilang's Metrics feature
> ----------------------------------------
>
>                 Key: STORM-200
>                 URL: https://issues.apache.org/jira/browse/STORM-200
>             Project: Apache Storm (Incubating)
>          Issue Type: New Feature
>            Reporter: DashengJu
>            Priority: Minor
>         Attachments: update.patch
>
>
> Storm 0.9.0.1 exposes a metrics interface to report summary statistics across 
> the full topology. We can build our own metric, and build metrics consumer to 
> use those statistics.
> But when we use Multilang(ie. Python), we can not use this feature. So we 
> want to summit a proposal for multilang's metrics. 
> The specifics of the proposal:
> 1. The main idea is: when user want to add a metric statistics in 
> multilang(python) bolt,
>     a) he need first create a metric object and register in ShellBolt's 
> sub-class, 
>     b) then update the metric in Python bolt process through RPC call.
> 2. In Metrics API:
>     a) extend IMetric interface add a method for RPC call:public void 
> updateMetricFromRPC(List<Object> params);  
>     b) modify IMetric implements, to support updateMetricFromRPC;
> 3. In ShellBolt,
>     a) we have a Map<String, IMetric> to hold user's registered metrics  
> object;
>     b) we have a method registerMetric(String name, T metric) for user to 
> register their metris object;
>     c) we have a method handleMetrics(Map action) to handle RPC call from 
> Python process;
> 4) In Multilang protocol: add a command "metrics" for shell process to make 
> RPC call. The protocol is: {"command":"metrics", 
> "name":"metric-registerd-name", "params":["param-1", param-2]}
> 5) In storm.py:add rpcMetrics(name, params), user can update remote metric 
> through this RPC call.
> any suggestions?



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to