kinesis-consumer/examples/distributed-tracing/utility/tracer.go

34 lines
724 B
Go
Raw Normal View History

package utility
import (
"io"
"log"
"github.com/opentracing/opentracing-go"
jaegerConfig "github.com/uber/jaeger-client-go/config"
)
// A Noop opentracing tracer
var globalTracer = &opentracing.NoopTracer{}
// A Noop io.Closer
type nullCloser struct{}
func (*nullCloser) Close() error { return nil }
func NewTracer(serviceName string) (opentracing.Tracer, io.Closer) {
config, err := jaegerConfig.FromEnv()
if err != nil {
log.Printf("error loading tracer config: %s", err.Error())
return globalTracer, &nullCloser{}
}
if len(serviceName) > 0 {
config.ServiceName = serviceName
}
tracer, closer, err := config.New(serviceName)
if err != nil {
panic("cannot init jaeger")
}
return tracer, closer
}