Skip to content
forked from openzipkin/brave

Java distributed tracing implementation compatible with Zipkin backend services.

License

Notifications You must be signed in to change notification settings

jonnyquan/brave

 
 

Repository files navigation

Build Status Maven Central Gitter chat

Brave

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.

What's included

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.

Writing new instrumentation

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.

Artifacts

Library Releases

Releases are uploaded to Bintray and synchronized to Maven Central

Library Snapshots

Snapshots are uploaded to JFrog after commits to master.

About

Java distributed tracing implementation compatible with Zipkin backend services.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 97.3%
  • Other 2.7%