Brave is a library used to capture latency information about distributed operations. It reports this data to Zipkin as spans.
Zipkin is based on Dapper. Dapper (dutch) = Brave (english)... So, that's where the name comes from.
Most users won't write tracing code directly. Rather, they reuse instrumentation code others have written. Check for instrumentation written here and Zipkin's list before rolling your own. Common tracing libraries like JDBC, Servlet and Spring already exist. Instrumentation written here are tested and benchmarked.
You can look at our example project for how to trace a simple web application.
If you are trying to trace legacy applications, you may be interested in Spring XML Configuration. This allows you to setup tracing without any custom code.
You may want to put trace IDs into your log files, or change thread local behavior. Look at our context libraries, for integration with tools such as SLF4J.
Brave's dependency-free tracer library works against JRE6+.
This is the underlying api that instrumentation use to time operations
and add tags that describe them. This library also includes code that
parses X-B3-TraceId
headers.
We worked very hard to make writing new instrumentation easy and efficient. Most of our built-in instrumentation are 50-100 lines of code, yet allow flexible configuration of tags and sampling policy.
If you need to write new http instrumentation, check our docs, as this shows how to write it in a way that is least effort for you and easy for others to configure. For example, we have a standard test suite you can use to make sure things interop, and standard configuration works.
If you need to do something not http, you'll want to use our tracer library. If you are in this position, you may find our feature tests helpful.
Regardless, you may need support along the way. Please reach out on gitter, as there's usually others around to help.
Releases are uploaded to Bintray and synchronized to Maven Central
Snapshots are uploaded to JFrog after commits to master.