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

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

GitHub user dashengju opened a pull request:

    https://github.com/apache/incubator-storm/pull/176

    [STORM-254] one Spout/Bolt can register metric twice with same name in 
different timeBucket

    In a Bolt's prepare method, we can register metrics twice with the same 
name, using different timeBucketSizeInSecs parameter, like this:
    
---------------------------------------------------------------------------------------
    public void prepare(Map stormConf, TopologyContext context)
    { 
        mapper = new ObjectMapper(); 
        CountMetric cMetric = new CountMetric(); 
        context.registerMetric("JavaBoltCount", cMetric, 120); 
        CountMetric ccMetric = new CountMetric(); 
        context.registerMetric("JavaBoltCount", ccMetric, 60); 
    }
    
----------------------------------------------------------------------------------------
    This is caused by TopologyContext's registerMetric. 
    In TopologyContext, all registered metrics holds in a map defined below:
    private Map<Integer,Map<Integer, Map<String, IMetric>>> _registeredMetrics;
    timeBucketSizeInSecs ----> __taskId ----> metricName ----> metirc
    But the same name check just at the innermost layer.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/dashengju/incubator-storm 
upstream_master_storm254

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-storm/pull/176.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #176
    
----
commit f8c9995ac7f1d5fcdd19b3d0f67f0abd111f320e
Author: dashengju <[email protected]>
Date:   2014-07-02T15:32:30Z

    resolve storm-254, fobbiden to register same name metrics in different 
timeBucket

----


> one Spout/Bolt can register metric twice with same name
> -------------------------------------------------------
>
>                 Key: STORM-254
>                 URL: https://issues.apache.org/jira/browse/STORM-254
>             Project: Apache Storm (Incubating)
>          Issue Type: Bug
>    Affects Versions: 0.9.2-incubating
>            Reporter: DashengJu
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> In a Bolt's prepare method, we can register metrics twice with the same name, 
> using different timeBucketSizeInSecs parameter, like this:
>     public void prepare(Map stormConf, TopologyContext context) {
>       mapper = new ObjectMapper();
>       
>       cMetric = new MTCountMetric();
>       context.registerMetric("JavaBoltCount", cMetric, 120);
>       ccMetric = new MTCountMetric();
>       context.registerMetric("JavaBoltCount", ccMetric, 60);
>     }
> ----------------------------------------------------------------------------------------
> This is caused by TopologyContext's registerMetric. In TopologyContext, all 
> registered metrics holds in a map defined below:
> private Map<Integer,Map<Integer, Map<String, IMetric>>> _registeredMetrics;
> timeBucketSizeInSecs ----> __taskId ----> metricName ----> metirc



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

Reply via email to