Hello,
I am using Storm 0.9.5 in a vagrant box. My topology works fine when I
don't have any metrics consumer. If I add a metrics consumer storm-ui
breaks and topology doesn't work.
I added LoggingMetricsConsumer in storm.yml as follows:
## Metrics Consumers
topology.metrics.consumer.register:
- class: "backtype.storm.metric.LoggingMetricsConsumer"
parallelism.hint: 2
After adding this I get following error in Storm UI
java.lang.RuntimeException: Cannot get field 'bolt' because union is
currently set to spout
at
backtype.storm.generated.ExecutorSpecificStats.get_bolt(ExecutorSpecificStats.java:245)
at backtype.storm.ui.core$aggregate_bolt_stats$fn__5558.invoke(core.clj:173)
at clojure.core$map$fn__4207.invoke(core.clj:2485)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4207.invoke(core.clj:2479)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.boundedLength(RT.java:1654)
at clojure.lang.RestFn.applyTo(RestFn.java:130)
at clojure.core$apply.invoke(core.clj:619)
at backtype.storm.ui.core$aggregate_counts.invoke(core.clj:119)
at backtype.storm.ui.core$aggregate_bolt_stats.invoke(core.clj:173)
at backtype.storm.ui.core$compute_executor_capacity.invoke(core.clj:274)
at clojure.core$map$fn__4207.invoke(core.clj:2485)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4207.invoke(core.clj:2479)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$apply.invoke(core.clj:617)
at backtype.storm.ui.core$compute_bolt_capacity.invoke(core.clj:288)
at
backtype.storm.ui.core$visualization_data$iter__5671__5675$fn__5676.invoke(core.clj:399)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.next(RT.java:598)
at clojure.core$next.invoke(core.clj:64)
at clojure.core$dorun.invoke(core.clj:2781)
at clojure.core$doall.invoke(core.clj:2796)
at backtype.storm.ui.core$visualization_data.invoke(core.clj:434)
at backtype.storm.ui.core$topology_page.invoke(core.clj:642)
at backtype.storm.ui.core$fn__6096.invoke(core.clj:853)
at compojure.core$make_route$fn__4275.invoke(core.clj:93)
at compojure.core$if_route$fn__4263.invoke(core.clj:39)
at compojure.core$if_method$fn__4256.invoke(core.clj:24)
at compojure.core$routing$fn__4281.invoke(core.clj:106)
at clojure.core$some.invoke(core.clj:2443)
at compojure.core$routing.doInvoke(core.clj:106)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:619)
at compojure.core$routes$fn__4285.invoke(core.clj:111)
at ring.middleware.reload$wrap_reload$fn__4310.invoke(reload.clj:14)
at backtype.storm.ui.core$catch_errors$fn__6135.invoke(core.clj:909)
at
ring.middleware.keyword_params$wrap_keyword_params$fn__4952.invoke(keyword_params.clj:27)
at
ring.middleware.nested_params$wrap_nested_params$fn__4991.invoke(nested_params.clj:65)
at ring.middleware.params$wrap_params$fn__4924.invoke(params.clj:55)
at
ring.middleware.multipart_params$wrap_multipart_params$fn__5019.invoke(multipart_params.clj:103)
at ring.middleware.flash$wrap_flash$fn__5200.invoke(flash.clj:14)
at ring.middleware.session$wrap_session$fn__5189.invoke(session.clj:43)
at ring.middleware.cookies$wrap_cookies$fn__5120.invoke(cookies.clj:160)
at ring.adapter.jetty$proxy_handler$fn__5400.invoke(jetty.clj:16)
at
ring.adapter.jetty.proxy$org.mortbay.jetty.handler.AbstractHandler$0.handle(Unknown
Source)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
What am I doing wrong here?