All Projects → openzipkin-contrib → Brave Opentracing

openzipkin-contrib / Brave Opentracing

Licence: apache-2.0
Bridge between OpenTracing and Brave

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Brave Opentracing

Zipkin Go Opentracing
OpenTracing Bridge for Zipkin Go
Stars: ✭ 472 (+637.5%)
Mutual labels:  tracing, instrumentation, distributed-tracing, zipkin, opentracing
Brave
Java distributed tracing implementation compatible with Zipkin backend services.
Stars: ✭ 2,117 (+3207.81%)
Mutual labels:  tracing, instrumentation, distributed-tracing, zipkin
Opencensus Node
A stats collection and distributed tracing framework
Stars: ✭ 249 (+289.06%)
Mutual labels:  tracing, instrumentation, distributed-tracing, zipkin
go-sensor
🚀 Go Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 90 (+40.63%)
Mutual labels:  instrumentation, tracing, opentracing, distributed-tracing
Spring Cloud Sleuth
Distributed tracing for spring cloud
Stars: ✭ 1,531 (+2292.19%)
Mutual labels:  tracing, instrumentation, distributed-tracing, zipkin
zipkin-cpp-opentracing
OpenTracing Tracer implementation for Zipkin in C++
Stars: ✭ 46 (-28.12%)
Mutual labels:  instrumentation, tracing, opentracing, zipkin
Molten
php probe for zipkin and opentracing
Stars: ✭ 740 (+1056.25%)
Mutual labels:  tracing, instrumentation, zipkin, opentracing
dropwizard-zipkin
Dropwizard Zipkin Bundle
Stars: ✭ 48 (-25%)
Mutual labels:  instrumentation, tracing, zipkin, distributed-tracing
nginx-opentracing
Instrument nginx for OpenTracing.
Stars: ✭ 21 (-67.19%)
Mutual labels:  instrumentation, tracing, opentracing, zipkin
easeagent
An agent component for the Java system
Stars: ✭ 437 (+582.81%)
Mutual labels:  tracing, opentracing, zipkin, distributed-tracing
zipkin-ruby-opentracing
OpenTracing Tracer implementation for Zipkin in Ruby
Stars: ✭ 15 (-76.56%)
Mutual labels:  instrumentation, tracing, opentracing, zipkin
ruby-sensor
💎 Ruby Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 23 (-64.06%)
Mutual labels:  instrumentation, tracing, opentracing, distributed-tracing
Zipkin Go
Zipkin tracer library for go
Stars: ✭ 435 (+579.69%)
Mutual labels:  tracing, instrumentation, distributed-tracing, zipkin
Jaeger Ui
Web UI for Jaeger
Stars: ✭ 639 (+898.44%)
Mutual labels:  tracing, distributed-tracing, opentracing
gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (+46.88%)
Mutual labels:  tracing, zipkin, distributed-tracing
java-okhttp
OpenTracing Okhttp client instrumentation
Stars: ✭ 21 (-67.19%)
Mutual labels:  instrumentation, tracing, opentracing
java-web-servlet-filter
OpenTracing Java Web Servlet Filter Instrumentation
Stars: ✭ 20 (-68.75%)
Mutual labels:  instrumentation, tracing, opentracing
pitchfork
Convert tracing data between Zipkin and Haystack formats
Stars: ✭ 40 (-37.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
vertx-tracing
Vertx integration with tracing libraries
Stars: ✭ 21 (-67.19%)
Mutual labels:  tracing, opentracing, zipkin
Haystack
Top level repository for Haystack, containing documentation and deployment scripts
Stars: ✭ 261 (+307.81%)
Mutual labels:  tracing, distributed-tracing, opentracing

OpenTracing Java Bridge for Zipkin

Gitter chat Build Status Maven Central

This library is a Java bridge between the Brave/Zipkin Api and OpenTracing. It allows its users to write portable (in the OpenTracing sense) instrumentation that's translated into Brave instrumentation transparently.

Compatibility

opentracing-api has broken compatibility on most releases, which limits the ability for this project to provide a large version range.

Here are the versions currently available, noting only the latest version of opentracing-api is likely to have new work in this repository.

Version opentracing-api version
0.34.0+ 0.32.0, 0.33.0
0.33.13 0.31.0

Required Reading

In order to understand OpenTracing Api, one must first be familiar with the OpenTracing project and terminology more generally.

To understand how Zipkin and Brave work, you can look at Zipkin Architecture and Brave Api documentation.

Setup

Firstly, you need a Tracer, configured to report to Zipkin.

// Configure a reporter, which controls how often spans are sent
//   (the dependency is io.zipkin.reporter2:zipkin-sender-okhttp3)
sender = OkHttpSender.create("http://127.0.0.1:9411/api/v2/spans");
spanReporter = AsyncReporter.create(sender);

// If you want to support baggage, create a field you would like to
// propagate and configure it with `BaggagePropagation`
COUNTRY_CODE = BaggageField.create("country-code");

// Baggage does not need to be sent remotely via headers, but if you configure
// with `addRemoteField()`, it will be
propagationFactory = BaggagePropagation.newFactoryBuilder(B3Propagation.FACTORY)
                                       .addRemoteField(COUNTRY_CODE)
                                       .build()

// Now, create a Brave tracing component with the service name you want to see in Zipkin.
//   (the dependency is io.zipkin.brave:brave)
braveTracing = Tracing.newBuilder()
                      .localServiceName("my-service")
                      .propagationFactory(propagationFactory)
                      .spanReporter(spanReporter)
                      .build();

// use this to create an OpenTracing Tracer
tracer = BraveTracer.create(braveTracing);
countryCode = span.getBaggageItem(COUNTRY_CODE.name());

// You can later unwrap the underlying Brave Api as needed
braveTracing = tracer.unwrap();
countryCode = COUNTRY_CODE.get(span.unwrap().context());

Note: If you haven't updated to a server running the Zipkin v2 api, you can use the old Zipkin format like this:

sender = OkHttpSender.json("http://127.0.0.1:9411/api/v1/spans");
spanReporter = AsyncReporter.builder(sender).build(SpanEncoder.JSON_V1);

Artifacts

The artifact published is brave-opentracing under the group ID io.opentracing.brave

Library Releases

Releases are at Sonatype and Maven Central

Library Snapshots

Snapshots are uploaded to Sonatype after commits to master.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].