func ContextToGRPC(tracer opentracing.Tracer, logger log.Logger) func(ctx context.Context, md *metadata.MD) context.Context
ContextToGRPC returns a grpc RequestFunc that injects an OpenTracing Span found in `ctx` into the grpc Metadata. If no such Span can be found, the RequestFunc is a noop.
func ContextToHTTP(tracer opentracing.Tracer, logger log.Logger) kithttp.RequestFunc
ContextToHTTP returns an http RequestFunc that injects an OpenTracing Span found in `ctx` into the http headers. If no such Span can be found, the RequestFunc is a noop.
func GRPCToContext(tracer opentracing.Tracer, operationName string, logger log.Logger) func(ctx context.Context, md metadata.MD) context.Context
GRPCToContext returns a grpc RequestFunc that tries to join with an OpenTracing trace found in `req` and starts a new Span called `operationName` accordingly. If no trace could be found in `req`, the Span will be a trace root. The Span is incorporated in the returned Context and can be retrieved with opentracing.SpanFromContext(ctx).
func HTTPToContext(tracer opentracing.Tracer, operationName string, logger log.Logger) kithttp.RequestFunc
HTTPToContext returns an http RequestFunc that tries to join with an OpenTracing trace found in `req` and starts a new Span called `operationName` accordingly. If no trace could be found in `req`, the Span will be a trace root. The Span is incorporated in the returned Context and can be retrieved with opentracing.SpanFromContext(ctx).
func TraceClient(tracer opentracing.Tracer, operationName string, opts ...EndpointOption) endpoint.Middleware
TraceClient returns a Middleware that wraps the `next` Endpoint in an OpenTracing Span called `operationName` with client span.kind tag.
func TraceEndpoint(tracer opentracing.Tracer, operationName string, opts ...EndpointOption) endpoint.Middleware
TraceEndpoint returns a Middleware that wraps the `next` Endpoint in an OpenTracing Span called `operationName`.
If `ctx` already has a Span, child span is created from it. If `ctx` doesn't yet have a Span, the new one is created.
func TraceServer(tracer opentracing.Tracer, operationName string, opts ...EndpointOption) endpoint.Middleware
TraceServer returns a Middleware that wraps the `next` Endpoint in an OpenTracing Span called `operationName` with server span.kind tag..
EndpointOption allows for functional options to endpoint tracing middleware.
type EndpointOption func(*EndpointOptions)
func WithIgnoreBusinessError(ignoreBusinessError bool) EndpointOption
WithIgnoreBusinessError if set to true will not treat a business error identified through the endpoint.Failer interface as a span error.
func WithOperationNameFunc(getOperationName func(ctx context.Context, name string) string) EndpointOption
WithOperationNameFunc allows to set function that can set the span operation name based on the existing one for the endpoint and information in the context.
func WithOptions(options EndpointOptions) EndpointOption
WithOptions sets all configuration options at once by use of the EndpointOptions struct.
func WithTags(tags opentracing.Tags) EndpointOption
WithTags adds default tags for the spans created by the Endpoint tracer.
func WithTagsFunc(getTags func(ctx context.Context) opentracing.Tags) EndpointOption
WithTagsFunc set the func to extracts additional tags from the context.
EndpointOptions holds the options for tracing an endpoint
type EndpointOptions struct { // IgnoreBusinessError if set to true will not treat a business error // identified through the endpoint.Failer interface as a span error. IgnoreBusinessError bool // GetOperationName is an optional function that can set the span operation name based on the existing one // for the endpoint and information in the context. // // If the function is nil, or the returned name is empty, the existing name for the endpoint is used. GetOperationName func(ctx context.Context, name string) string // Tags holds the default tags which will be set on span // creation by our Endpoint middleware. Tags opentracing.Tags // GetTags is an optional function that can extract tags // from the context and add them to the span. GetTags func(ctx context.Context) opentracing.Tags }