The Network, The Kingmaker
Distributed Tracing and Zipkin

About The Last Pickle


We help people deliver and improve
Apache Cassandra based solutions

Based in
USA, New Zealand, Australia, France, Spain, Sweden


50+ years combined Cassandra experience.

Distributed Tracing

Zipkin 2

Zipkin & Cassandra

Scaling Data & People


MicroServices, BASE, and lambda architectures


the missing piece for many is tracing and profiling difficult to reproduce problems



Zipkin

an implementation of Google's Dapper paper



Zipkin Install


git clone git@github.com:openzipkin/zipkin.git
mvn install -DskipTests
java -jar ./zipkin-server/target/zipkin-server-*exec.jar

open   http://localhost:9411/


( or `docker run -d -p 9411:9411 openzipkin/zipkin` )

search traces

search traces

analyze one trace

real-time* in browser

platform call graph

client        |        server



CS -->                            
                            --> SR

                            <-- SS
CR <--                            



simple http call



[ Brave – https://github.com/openzipkin/brave ]



simple http call





continuing a trace… (in-process)





http call passing through headers




continuing the trace… (x-process)



one way tracing


custom tags


Tracing in C*

Tracing in C*

Tracing in C*

Zipkin in C*


  • visualization
  • detailed timings
  • hierarchy and asynchronisity
  • zero tracing overhead

Cassandra-3.4


Cassandra-3.11.0

Download Brave-Cassandra Tracing


 git clone git@github.com:openzipkin/brave-cassandra.git

 mvn install

 cp cassandra/target/brave-instrumentation-cassandra-*-all.jar \
     $CASSANDRA_HOME/lib/


then run, enabling zipkin tracing
JVM_OPTS="-Dcassandra.custom_tracing_class=brave.cassandra.Tracing"   cassandra

Zipkin across C*


Zipkin across C*

Zipkin into C*


Zipkin into C*


http call passing through headers




c* call using custom payload


c* call using custom payload




enable zipkin tracing and the custom payload handler

bin/cassandra
    -Dcassandra.custom_tracing_class=..ZipkinTracing
    -Dcassandra.custom_query_handler_class=..CustomPayloadMirroringQueryHandler

Zipkin Self Tracing

analyze one trace

Thanks


The Last Pickles