From e4753fb1ab68f738d51a0e7b2d9dffdfbd5ad998 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 4 Oct 2017 15:52:20 -0700 Subject: Update readme --- README.md | 45 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4f705ff..d33ed1f 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,50 @@ # Driver Tracing Library -A vendor-neutral, pure-Scala [1] tracing library for Akka-HTTP. - -[1] Pure-Scala, in this context, refers to no direct Java library -dependencies. Dependencies are kept to a minimum, however it is -possible that Java libraries may be included transitively. +A vendor-neutral tracing library for Akka-HTTP. This library provides tracing directives for Akka-HTTP. It specifies common client abstractions and implementations that may be used with different tracing solutions, such as Google Stackdriver Tracing. ## Getting Started -TODO + +Driver tracing is published to maven central as a standard Scala +library. Include it in sbt by adding the following snippet to your +build.sbt: + +```scala +libraryDependencies += "xyz.driver" %% "tracing" % "0.0.1" +``` + +### Example +```scala +import xyz.driver.tracing._ +import xyz.driver.tracing.TracingDirectives._ + +val tracer = new LoggingTracer(println) + +val route = + // report how long any request to this service takes + trace(tracer) { + path("my-service-endpoint") { + get { + // include a sub-trace with a custom name + trace(tracer, Some("complex-call")) { + // do something that takes time + complete("done") + } + } + } ~ + path("proxy-service-endpoint") { + // extract tracing headers so they may be injected into nested requests + extractTraceHeaders{ headers => + // call external service with the existing parent tracing headers + complete("done") + } + } + } + +``` ## Tracing Backends -- cgit v1.2.3