0
私の目標は、トポロジ全体にメトリックを追加することです。ベース/リッチボルトクラスを拡張するボルトではうまくいくが、次のようなボルトにはメトリックを登録できない。AbstractRedisBolt
class抽象クラス内のTopologyContextへのアクセス方法
私は、AbstractRedisBolt
を拡張するボルト内でTopologyContextを取得しようとしています。ただし、このクラスのprepare
メソッドは、トポロジコンテキストを派生クラスに公開しません。
AbstractRedisBolt
クラスを拡張しようとしましたが、コンテキストのクラスプロパティとそのプロパティを返すメソッドを定義することで、実際にはうまくいきませんでした。私はボルト内のトポロジーコンテキストへの参照を取得することになりますが、context.registerMetric
操作ではメトリックは登録されません。
ちょうどスーパークラスへの呼び出しを含むprepare()
を上書きし、
こんにちはマティアス、返信していただきありがとうございます。 AbstractRedisBoltを拡張しようとしましたが、このメッセージがスローされ始めました。java.lang.RuntimeException:TopologyContext.registerMetricは、オーバーライドされたIBolt :: prepare()またはISpout :: open()メソッド内からのみ呼び出すことができます。また、 'numEventsEnriched = new CountMetric();'と 'registerMetric'を子クラス内でインスタンス化する必要があるかどうかはまだ分かりません。 'prepare'メソッドが利用できないので、私は現在' execute'メソッド内でそれをやっています: 'super.context.registerMetric(ConfigTopology.METRICS_TOTAL_TO_ENRICH、numEventsEnriched、oneMin); ' –
こんにちは、マティアス。どうもありがとうございます。私はちょうどRTFMをしました、ここで "M"はメッセージを表します;)実際、メッセージはそれをすべて言っていました。私は単に 'prepare'メソッドのオーバーライドをボルト内で行い、' prepare'メソッド内でメトリックを宣言して登録しました。 Muchas graciasseñor! –
私はRTFMが好きです! ;) –