An Introduction to Distributed Tracing and Zipkin