Closed kcamenzind closed 8 years ago
cc @zinuga: how should we proceed with this? We don't have commit rights to the repo... Thanks.
@bensigelman and @kcamenzind I have invited you to join grpc-opntracing-team and the team has admin writes to this repo.
Looks excellent! Merging. Thanks again for all of your work on this.
This PR provides support for OpenTracing in gRPC-java clients and servers.
Purpose Distributed tracing has become increasingly important to gain visibility into the application stack, since distributed systems (such as ones that use gRPC) propagate requests across process boundaries. OpenTracing is a set of consistent, expressive, vendor-neutral APIs for distributed tracing and context propagation, and by providing support for OpenTracing in gRPC, we make it easy for developers to trace their gRPC requests.
Usage This package allows gRPC-java users to trace client calls and server responses by adding a
ClientTracingInterceptor
andServerTracingInterceptor
to their clients and servers respectively. We also utilize theio.grpc.Context
to allow users to gain access to the current span during server-side request handling, in order to continue the trace further into the application stack.In order to actually produce a trace, developers can bind OpenTracing to any tracing implementation that uses a span model (such as Uber's Jaeger Bindings, an open-source Zipkin-compatible tracer).
Next Steps
Any comments on this implementation are welcome. We'd also like to know whether gRPC wants to host these artifacts, or whether we should publish them under
io.opentracing.contrib.grpc
.