Building Software Reliability with Distributed Tracing