kinesis-consumer/examples/distributed-tracing/utility/tracer.go
Edward Tsang 43cf094b27 * instrumented consumer amd producer example with opentracing
* add doc for jaeger and steps for running opentracing examples
* add context appropriate
* add utility for AWS tracing .. Createing tracer/logger etc
2018-11-06 15:03:34 -08:00

33 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
}