我的目标是在整个拓扑中添加指标。事情在扩展Base / Rich bolt类的螺栓上运行良好,但是我没有在扩展以下AbstractRedisBolt
class的螺栓中注册任何指标。
我试图将TopologyContext放在一个扩展AbstractRedisBolt
的螺栓中。但是,此类的prepare
方法不会将拓扑上下文公开给派生类。
我尝试通过为上下文定义一个类属性来扩展AbstractRedisBolt
类,并返回一个返回该属性的方法,但这并没有真正解决。我最终在我的bolt中获得拓扑上下文的引用,但是context.registerMetric
操作没有注册任何指标。
谢谢,
答案 0 :(得分:1)
只需覆盖prepare()
,包括调用超类:
public class MyRedisBolt extends AbstractRedisBolt {
private TopologyContext context = null;
public void prepare(Map map, TopologyContext topologyContext, OutputCollector collector) {
super.prepare(map, topologyContext, collector);
this.context = topologContext;
}
}