forked from alebabai/go-kit-kafka
/
kafka.go
29 lines (23 loc) · 1.18 KB
/
kafka.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package opentracing
import (
"github.com/opentracing/opentracing-go"
"github.com/opentracing/opentracing-go/ext"
"github.com/go-kit/kit/endpoint"
kitopentracing "github.com/go-kit/kit/tracing/opentracing"
)
// TraceConsumer returns a endpoint.Middleware that wraps the `next` endpoint.Endpoint in an
// OpenTracing Span called `operationName` with consumer span.kind tag.
func TraceConsumer(tracer opentracing.Tracer, operationName string, opts ...kitopentracing.EndpointOption) endpoint.Middleware {
opts = append(opts, kitopentracing.WithTags(map[string]interface{}{
ext.SpanKindConsumer.Key: ext.SpanKindConsumer.Value,
}))
return kitopentracing.TraceEndpoint(tracer, operationName, opts...)
}
// TraceProducer returns a endpoint.Middleware that wraps the `next` endpoint.Endpoint in an
// OpenTracing Span called `operationName` with producer span.kind tag.
func TraceProducer(tracer opentracing.Tracer, operationName string, opts ...kitopentracing.EndpointOption) endpoint.Middleware {
opts = append(opts, kitopentracing.WithTags(map[string]interface{}{
ext.SpanKindProducer.Key: ext.SpanKindProducer.Value,
}))
return kitopentracing.TraceEndpoint(tracer, operationName, opts...)
}