Documentation ¶
Overview ¶
Package opentracing provides Go kit integration in term of transport layer for Apache Kafka to the OpenTracing project. OpenTracing implements a general purpose interface that microservices can program against, and which adapts to all major distributed tracing systems.
Index ¶
- func ContextToKafka(tracer opentracing.Tracer, logger log.Logger) transport.RequestFunc
- func KafkaToContext(tracer opentracing.Tracer, operationName string, logger log.Logger) transport.RequestFunc
- func TraceConsumer(tracer opentracing.Tracer, operationName string, ...) endpoint.Middleware
- func TraceProducer(tracer opentracing.Tracer, operationName string, ...) endpoint.Middleware
- type KafkaHeadersCarrier
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextToKafka ¶
func ContextToKafka(tracer opentracing.Tracer, logger log.Logger) transport.RequestFunc
ContextToKafka returns an transport.RequestFunc that injects an OpenTracing Span found in `ctx` into the kafka headers. If no such Span can be found, the transport.RequestFunc is a noop.
func KafkaToContext ¶
func KafkaToContext(tracer opentracing.Tracer, operationName string, logger log.Logger) transport.RequestFunc
KafkaToContext returns an transport.RequestFunc that tries to join with an OpenTracing trace found in `msg` and starts a new Span called `operationName` accordingly. If no trace could be found in `msg`, the Span will be a trace root. The Span is incorporated in the returned Context and can be retrieved with opentracing.SpanFromContext(ctx).
func TraceConsumer ¶
func TraceConsumer(tracer opentracing.Tracer, operationName string, opts ...kitopentracing.EndpointOption) endpoint.Middleware
TraceConsumer returns a endpoint.Middleware that wraps the `next` endpoint.Endpoint in an OpenTracing Span called `operationName` with consumer span.kind tag.
func TraceProducer ¶
func TraceProducer(tracer opentracing.Tracer, operationName string, opts ...kitopentracing.EndpointOption) endpoint.Middleware
TraceProducer returns a endpoint.Middleware that wraps the `next` endpoint.Endpoint in an OpenTracing Span called `operationName` with producer span.kind tag.
Types ¶
type KafkaHeadersCarrier ¶
KafkaHeadersCarrier satisfies both opentracing.TextMapWriter and opentracing.TextMapReader.
Example usage for consumer side:
carrier := KafkaHeadersCarrier(msg.Headers) clientContext, err := tracer.Extract(opentracing.TextMap, carrier)
Example usage for producer side:
carrier := KafkaHeadersCarrier(msg.Headers) err := tracer.Inject( span.Context(), opentracing.TextMap, carrier, )
func (KafkaHeadersCarrier) ForeachKey ¶
func (c KafkaHeadersCarrier) ForeachKey(handler func(key string, val string) error) error
ForeachKey conforms to the opentracing.TextMapReader interface.
func (*KafkaHeadersCarrier) Set ¶
func (c *KafkaHeadersCarrier) Set(key, val string)
Set conforms to the opentracing.TextMapWriter interface.