无法通过 cyanite http 服务获取数据
Unable to fetch data through cyanite http services
我设置了 cassandra 和 运行 蓝晶石罐。我能够将数据推送到 cassandra,并且 http 服务 ping 给出了正确的响应。但是,当我尝试使用 cyanite http 服务 "paths" (http://localhost:8090/paths?query=*) 时,我收到以下错误消息作为响应 {"message":"No matching method found: substring for class io.cyanite.index$segmentize"}
这是错误的堆栈跟踪
ERROR [2016-06-10 00:19:47,110] nioEventLoopGroup-3-1 - io.cyanite.api could not process request
java.lang.IllegalArgumentException: No matching method found: substring for class io.cyanite.index$segmentize
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:53) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_partition.invokeStatic(glob.clj:272) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_partition.invoke(glob.clj:266) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$partial$fn__4759.invoke(core.clj:2515) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$map$fn__4785.invoke(core.clj:2646) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.RT.seq(RT.java:521) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$seq__4357.invokeStatic(core.clj:137) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$apply.invokeStatic(core.clj:641) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$mapcat.invokeStatic(core.clj:2674) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_ast.invokeStatic(glob.clj:313) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$glob.invokeStatic(glob.clj:355) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches$iter__4447__4451$fn__4452$fn__4453.invoke(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches$iter__4447__4451$fn__4452.invoke(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.RT.seq(RT.java:521) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$seq__4357.invokeStatic(core.clj:137) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6738.invokeStatic(protocols.clj:75) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6738.invoke(protocols.clj:75) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6684$G__6679__6697.invoke(protocols.clj:13) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$reduce.invokeStatic(core.clj:6545) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches.invokeStatic(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index.AgentIndex.prefixes(index.clj:107) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$fn__7338.invokeStatic(api.clj:115) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$fn__7338.invoke(api.clj:109) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.MultiFn.invoke(MultiFn.java:229) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$process.invokeStatic(api.clj:89) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$make_handler$fn__7360.invoke(api.clj:153) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http$request_handler$fn__7081.invoke(http.clj:110) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http$netty_handler$fn__7089.invoke(http.clj:125) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http.proxy$io.netty.channel.ChannelInboundHandlerAdapter$ff19274a.channelRead(Unknown Source) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:840) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [cyanite-0.5.1-standalone.jar:na]
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:112) [cyanite-0.5.1-standalone.jar:na]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [cyanite-0.5.1-standalone.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
这是我的 cyanite.yaml
logging:
level: info
console: true
files:
- "/opt/cyanite/cyanite.log"
input:
- type: "carbon"
host: "localhost"
port: 2003
index:
- type: cassandra
options:
cluster: "localhost"
keyspace: "metric"
store:
cluster: "localhost"
keyspace: "metric"
api:
port: 8090
engine:
rules:
default:
- "5s:1h"
这是一个错误还是我做错了什么?
问题在我使用旧版本的 cassandra 后得到解决,这可能主要是由于某些版本冲突
我设置了 cassandra 和 运行 蓝晶石罐。我能够将数据推送到 cassandra,并且 http 服务 ping 给出了正确的响应。但是,当我尝试使用 cyanite http 服务 "paths" (http://localhost:8090/paths?query=*) 时,我收到以下错误消息作为响应 {"message":"No matching method found: substring for class io.cyanite.index$segmentize"}
这是错误的堆栈跟踪
ERROR [2016-06-10 00:19:47,110] nioEventLoopGroup-3-1 - io.cyanite.api could not process request
java.lang.IllegalArgumentException: No matching method found: substring for class io.cyanite.index$segmentize
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:53) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_partition.invokeStatic(glob.clj:272) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_partition.invoke(glob.clj:266) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$partial$fn__4759.invoke(core.clj:2515) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$map$fn__4785.invoke(core.clj:2646) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.RT.seq(RT.java:521) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$seq__4357.invokeStatic(core.clj:137) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$apply.invokeStatic(core.clj:641) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$mapcat.invokeStatic(core.clj:2674) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$filter_compound_ast.invokeStatic(glob.clj:313) ~[cyanite-0.5.1-standalone.jar:na]
at globber.glob$glob.invokeStatic(glob.clj:355) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches$iter__4447__4451$fn__4452$fn__4453.invoke(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches$iter__4447__4451$fn__4452.invoke(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.RT.seq(RT.java:521) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$seq__4357.invokeStatic(core.clj:137) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6738.invokeStatic(protocols.clj:75) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6738.invoke(protocols.clj:75) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core.protocols$fn__6684$G__6679__6697.invoke(protocols.clj:13) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.core$reduce.invokeStatic(core.clj:6545) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index$matches.invokeStatic(index.clj:71) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.index.AgentIndex.prefixes(index.clj:107) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$fn__7338.invokeStatic(api.clj:115) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$fn__7338.invoke(api.clj:109) ~[cyanite-0.5.1-standalone.jar:na]
at clojure.lang.MultiFn.invoke(MultiFn.java:229) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$process.invokeStatic(api.clj:89) ~[cyanite-0.5.1-standalone.jar:na]
at io.cyanite.api$make_handler$fn__7360.invoke(api.clj:153) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http$request_handler$fn__7081.invoke(http.clj:110) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http$netty_handler$fn__7089.invoke(http.clj:125) [cyanite-0.5.1-standalone.jar:na]
at io.cyanite.http.proxy$io.netty.channel.ChannelInboundHandlerAdapter$ff19274a.channelRead(Unknown Source) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) [cyanite-0.5.1-standalone.jar:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:840) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [cyanite-0.5.1-standalone.jar:na]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [cyanite-0.5.1-standalone.jar:na]
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:112) [cyanite-0.5.1-standalone.jar:na]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [cyanite-0.5.1-standalone.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
这是我的 cyanite.yaml
logging:
level: info
console: true
files:
- "/opt/cyanite/cyanite.log"
input:
- type: "carbon"
host: "localhost"
port: 2003
index:
- type: cassandra
options:
cluster: "localhost"
keyspace: "metric"
store:
cluster: "localhost"
keyspace: "metric"
api:
port: 8090
engine:
rules:
default:
- "5s:1h"
这是一个错误还是我做错了什么?
问题在我使用旧版本的 cassandra 后得到解决,这可能主要是由于某些版本冲突