Gumbo Apache Storm 监控指标

Gumbo Apache Storm Monitoring Metrics

我正在尝试为来自 here

的风暴拓扑监控配置 Gumbo

网站上没有给出明确的示例或用法,需要澄清上面网站上给出的参数是什么以及在何处添加此代码

MonitorClient mclient = MonitorClient.forConfig(conf);

// There are multiple metric groups, each with multiple metrics.
// Components have names and multiple instances, each of which has an    integer ID

mclient.declare(metricGroup,metric,task_id,component_id);

mclient.increment(metricGroup,metric, 1L , task_id);

TaskHook.registerTo(config);

现在我们需要为 MetricGroup、metric、task_id 和 component_id 提供什么值?如果需要从每个 Spout 和 Bolt 中找到它,我们该怎么办?这段代码应该放在哪里,是在提交拓扑之前在拓扑构建器中,还是在 open/prepare 方法下的单独 Spout/Bolt class 中或其他地方。感谢对这个问题的任何帮助。

我尝试了几个选项,下面是对我有用的配置,组名可以是任何东西,度量名称是从一个组件到另一个组件的流的名称,taskid 可以是任何唯一的任务编号,

conf.put("gumbo.server.kind", "local");
conf.put("gumbo.local.port", 8086); //Any port it must be same in the html file
conf.put("gumbo.start", System.currentTimeMillis());  // should be the same for all calls
conf.put("gumbo.bucketSize", 1000L);
conf.put("gumbo.enabled", true);
conf.put("gumbo.http.host", "hostname");
conf.put("gumbo.http.port", 8086);//Any port it must be same in the html file
conf.put("gumbo.http.app", "gumbo");
conf.put("gumbo.enabled", true);
conf.put("gumbo.server.key", topology_id);

MonitorClient mclient = MonitorClient.connect(conf);

GumboTaskHook.registerTo(conf);
    mclient.declare("Backlog",RTConstants.MATCH_LEFT_STREAM,3,RTConstants.TRANSFORM_LEFT_BOLT);       
    mclient.increment("Backlog",RTConstants.MATCH_LEFT_STREAM, 1L , 3);

    mclient.declare("Backlog",RTConstants.MATCH_RIGHT_STREAM,4,RTConstants.TRANSFORM_RIGHT_BOLT);       
    mclient.increment("Backlog",RTConstants.MATCH_RIGHT_STREAM, 1L , 4);