OpenTracing-Go-Plugins
The plugins of opentracing-go.
Installation
go get -u github.com/yuewokeji/opentracing-go-plugins
Configuration
Initialize a tracer
Create a tracer such as jaeger.
package main
import (
"github.com/opentracing/opentracing-go"
"github.com/uber/jaeger-client-go"
"github.com/uber/jaeger-client-go/transport"
"io"
)
func initJaeger(service, url string) (opentracing.Tracer, io.Closer) {
sender := transport.NewHTTPTransport(url)
reporter := jaeger.NewRemoteReporter(sender, jaeger.ReporterOptions.Logger(jaeger.StdLogger))
// samples 100% of traces
tracer, closer := jaeger.NewTracer(service, jaeger.NewConstSampler(true), reporter)
return tracer, closer
}
Initialize the global tracer
Let's initialize the global tracer, that's because the function opentracing.GlobalTracer()
returns a no-op tracer by default.
func initGlobalTracer() io.Closer {
// the closer can be used in shutdown hooks
tracer, closer := initJaeger("hello-world", "https://your-reporter-url")
opentracing.SetGlobalTracer(tracer)
return closer
}