Documentation ¶
Index ¶
- Constants
- func ContextWithTracer(ctx context.Context, tracer opentracing.Tracer) context.Context
- func CopyTraceContext(trgt, src context.Context) context.Context
- func DoInSpan(ctx context.Context, operationName string, doFn func(context.Context), ...)
- func DoWithSpan(ctx context.Context, operationName string, doFn func(context.Context, Span), ...)
- func HTTPMiddleware(tracer opentracing.Tracer, name string, logger log.Logger, next http.Handler) http.HandlerFunc
- func HTTPTripperware(logger log.Logger, next http.RoundTripper) http.RoundTripper
- func StreamClientInterceptor(tracer opentracing.Tracer) grpc.StreamClientInterceptor
- func StreamServerInterceptor(tracer opentracing.Tracer) grpc.StreamServerInterceptor
- func UnaryClientInterceptor(tracer opentracing.Tracer) grpc.UnaryClientInterceptor
- func UnaryServerInterceptor(tracer opentracing.Tracer) grpc.UnaryServerInterceptor
- type Span
- type Tag
- type Tags
- type Tracer
Constants ¶
const (
// ForceTracingBaggageKey is a request header name that forces tracing sampling.
ForceTracingBaggageKey = "X-Thanos-Force-Tracing"
)
Variables ¶
This section is empty.
Functions ¶
func ContextWithTracer ¶
ContextWithTracer returns a new `context.Context` that holds a reference to given opentracing.Tracer.
func CopyTraceContext ¶ added in v0.14.0
CopyTraceContext copies the necessary trace context from given source context to target context.
func DoInSpan ¶ added in v0.12.0
func DoInSpan(ctx context.Context, operationName string, doFn func(context.Context), opts ...opentracing.StartSpanOption)
DoInSpan executes function doFn inside new span with `operationName` name and hooking as child to a span found within given context if any. It uses opentracing.Tracer propagated in context. If no found, it uses noop tracer notification.
func DoWithSpan ¶ added in v0.14.0
func DoWithSpan(ctx context.Context, operationName string, doFn func(context.Context, Span), opts ...opentracing.StartSpanOption)
DoWithSpan executes function doFn inside new span with `operationName` name and hooking as child to a span found within given context if any. It uses opentracing.Tracer propagated in context. If no found, it uses noop tracer notification.
func HTTPMiddleware ¶
func HTTPMiddleware(tracer opentracing.Tracer, name string, logger log.Logger, next http.Handler) http.HandlerFunc
HTTPMiddleware returns an HTTP handler that injects the given tracer and starts a new server span. If any client span is fetched from the wire, we include that as our parent.
func HTTPTripperware ¶
func HTTPTripperware(logger log.Logger, next http.RoundTripper) http.RoundTripper
HTTPTripperware returns HTTP tripper that assumes given span in context as client child span and injects it into the wire. NOTE: It assumes tracer is given in request context. Also, it is caller responsibility to finish span.
func StreamClientInterceptor ¶
func StreamClientInterceptor(tracer opentracing.Tracer) grpc.StreamClientInterceptor
StreamClientInterceptor returns a new streaming client interceptor for OpenTracing.
func StreamServerInterceptor ¶
func StreamServerInterceptor(tracer opentracing.Tracer) grpc.StreamServerInterceptor
StreamServerInterceptor returns a new streaming server interceptor for OpenTracing and injects given tracer.
func UnaryClientInterceptor ¶
func UnaryClientInterceptor(tracer opentracing.Tracer) grpc.UnaryClientInterceptor
UnaryClientInterceptor returns a new unary client interceptor for OpenTracing.
func UnaryServerInterceptor ¶
func UnaryServerInterceptor(tracer opentracing.Tracer) grpc.UnaryServerInterceptor
UnaryServerInterceptor returns a new unary server interceptor for OpenTracing and injects given tracer.
Types ¶
type Span ¶ added in v0.23.0
type Span = opentracing.Span
func StartSpan ¶
func StartSpan(ctx context.Context, operationName string, opts ...opentracing.StartSpanOption) (Span, context.Context)
StartSpan starts and returns span with `operationName` and hooking as child to a span found within given context if any. It uses opentracing.Tracer propagated in context. If no found, it uses noop tracer without notification.