34 lines
724 B
Go
34 lines
724 B
Go
|
|
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
|
||
|
|
}
|