config/tracer.go (32 lines of code) (raw):
package config
import (
"fmt"
"github.com/opentracing/opentracing-go"
"github.com/uber/jaeger-client-go/config"
"io"
"os"
)
func NewPluginTracer(pc *PluginConfig) (opentracing.Tracer, io.Closer, error) {
c := &config.Configuration{
ServiceName: ServiceName,
Sampler: &config.SamplerConfig{
Type: "const",
Param: pc.TracingSamplerPercentage,
},
RPCMetrics: pc.TracingRPCMetrics,
}
agentHost, agentHostExists := os.LookupEnv("JAEGER_AGENT_HOST")
agentPort, agentPortExists := os.LookupEnv("JAEGER_AGENT_PORT")
if agentHostExists && agentPortExists {
c.Reporter = &config.ReporterConfig{
LogSpans: true,
LocalAgentHostPort: fmt.Sprintf("%s:%s", agentHost, agentPort),
}
}
tracer, closer, err := c.NewTracer()
if err != nil {
return nil, nil, err
}
opentracing.SetGlobalTracer(tracer)
return tracer, closer, nil
}