I've been running Zipkin successfully for a week or so with sqllite. I'm now trying to get a more production ready configuration running using cassandra.
I've built a collector distribution from the latest code on the master branch. I added a new config for the collector that is shown below.
import com.twitter.logging.{Formatter, Policy, FileHandler, Level, LoggerFactory}
import com.twitter.zipkin.builder.Scribe
import com.twitter.zipkin.cassandra
import com.twitter.zipkin.collector.builder.CollectorServiceBuilder
import com.twitter.zipkin.storage.Store
import com.twitter.zipkin.builder.ZipkinServerBuilder
val keyspaceBuilder = cassandra.Keyspace.static(
nodes = Set("cassandra-soa-node01", "cassandra-soa-node02", "cassandra-soa-node03",
"cassandra-soa-node04"))
val cassandraBuilder = Store
.Builder(cassandra.StorageBuilder(keyspaceBuilder), cassandra.IndexBuilder(keyspaceBuilder), cassandra.AggregatesBuilder(keyspaceBuilder))
val formatter = new Formatter(useFullPackageNames = true, prefix = "%.5s [<yyyyMMdd-HH:mm:ss.SSS>] %s: ")
val loggers = List(LoggerFactory(level = Some(Level.DEBUG),
handlers = List(FileHandler(filename = "/tmp/zipkin-collector.log", rollPolicy = Policy.Daily, append = true, formatter = formatter))))
CollectorServiceBuilder(Scribe.Interface(categories = Set("zipkin"))).writeTo(cassandraBuilder)
.copy(serverBuilder = ZipkinServerBuilder(9410, 9990).loggers(loggers))
StackTrace:
DEBUG [20140501-11:07:30.161] com.twitter.cassie: Received: %s
FATAL [20140501-11:07:30.165] monitor: Fatal exception propagated to the root monitor!
FATAL [20140501-11:07:30.165] monitor: java.lang.NoSuchMethodError: com.twitter.concurrent.Spool$.syntax(Lcom/twitter/util/Future;)Lcom/twitter/concurrent/Spool$Syntax;
FATAL [20140501-11:07:30.165] monitor: at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$2.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$2.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor: at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:130)
FATAL [20140501-11:07:30.165] monitor: at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:275)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ClusterRemapper.scala:73)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.cassie.ClusterRemapper$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ClusterRemapper.scala:61)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Future$$anonfun$onSuccess$1.apply(Future.scala:832)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Future$$anonfun$onSuccess$1.apply(Future.scala:831)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise$Monitored.apply(Promise.scala:66)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise$Monitored.apply(Promise.scala:57)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise$$anon$2.run(Promise.scala:333)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.concurrent.LocalScheduler$Activation.run(Scheduler.scala:129)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.concurrent.LocalScheduler$Activation.submit(Scheduler.scala:107)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.concurrent.LocalScheduler.submit(Scheduler.scala:150)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.concurrent.Scheduler$.submit(Scheduler.scala:59)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise.runq(Promise.scala:310)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise.updateIfEmpty(Promise.scala:605)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise.update(Promise.scala:583)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.util.Promise.setValue(Promise.scala:559)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.concurrent.AsyncQueue.offer(AsyncQueue.scala:71)
FATAL [20140501-11:07:30.165] monitor: at com.twitter.finagle.transport.ChannelTransport.handleUpstream(ChannelTransport.scala:41)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
FATAL [20140501-11:07:30.165] monitor: at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
FATAL [20140501-11:07:30.165] monitor: (...more...)