Skip to content
Snippets Groups Projects
Commit 2c5f006b authored by ale's avatar ale
Browse files

Switch to go.opentelemetry.io API for tracing

parent 1eb6de82
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
......@@ -11,11 +11,10 @@ import (
"strconv"
"sync"
openzipkin "github.com/openzipkin/zipkin-go"
zipkinHTTP "github.com/openzipkin/zipkin-go/reporter/http"
"contrib.go.opencensus.io/exporter/zipkin"
"go.opencensus.io/plugin/ochttp"
"go.opencensus.io/trace"
othttp "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/zipkin"
"go.opentelemetry.io/otel/sdk/trace"
)
var (
......@@ -97,31 +96,33 @@ func initTracing(endpointAddr string) {
return
}
initOnce.Do(func() {
localEndpoint, err := openzipkin.NewEndpoint(getServiceName(), endpointAddr)
ze, err := zipkin.New(config.ReportURL)
if err != nil {
log.Printf("warning: error creating tracing endpoint: %v, tracing disabled", err)
log.Printf("error creating Zipkin exporter: %v", err)
return
}
reporter := zipkinHTTP.NewReporter(config.ReportURL)
ze := zipkin.NewExporter(reporter, localEndpoint)
trace.RegisterExporter(ze)
var tc trace.Config
var sampler trace.Sampler
switch config.Sample {
case "", "always":
tc.DefaultSampler = trace.AlwaysSample()
sampler = trace.AlwaysSample()
case "never":
tc.DefaultSampler = trace.NeverSample()
sampler = trace.NeverSample()
default:
frac, err := strconv.ParseFloat(config.Sample, 64)
if err != nil {
log.Printf("warning: error in tracing configuration: sample: %v, tracing disabled", err)
return
}
tc.DefaultSampler = trace.ProbabilitySampler(frac)
sampler = trace.TraceIDRatioBased(frac)
}
trace.ApplyConfig(tc)
tp := trace.NewTracerProvider(
trace.WithSampler(sampler),
trace.WithBatcher(ze),
)
otel.SetTracerProvider(tp)
log.Printf("tracing enabled (report_url %s)", config.ReportURL)
......@@ -138,7 +139,7 @@ func Init() {
// tracing functionality, if it is globally enabled.
func WrapTransport(t http.RoundTripper) http.RoundTripper {
if Enabled {
t = &ochttp.Transport{Base: t}
t = othttp.NewTransport(t)
}
return t
}
......@@ -148,7 +149,7 @@ func WrapTransport(t http.RoundTripper) http.RoundTripper {
func WrapHandler(h http.Handler, endpointAddr string) http.Handler {
if Enabled {
initTracing(endpointAddr)
h = &ochttp.Handler{Handler: h}
h = othttp.NewHandler(h, getServiceName())
}
return h
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment