DashengJu created STORM-200:
-------------------------------

             Summary: 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


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.1.5#6160)

Reply via email to