mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-30 10:56:28 +02:00
* tracing: support dynamic reloading, more aggressive envoy restart * set exporter to nil * actually register tracer
37 lines
805 B
Go
37 lines
805 B
Go
package trace
|
|
|
|
import (
|
|
"contrib.go.opencensus.io/exporter/jaeger"
|
|
octrace "go.opencensus.io/trace"
|
|
)
|
|
|
|
type jaegerProvider struct {
|
|
exporter *jaeger.Exporter
|
|
}
|
|
|
|
func (provider *jaegerProvider) Register(opts *TracingOptions) error {
|
|
jOpts := jaeger.Options{
|
|
ServiceName: opts.Service,
|
|
AgentEndpoint: opts.JaegerAgentEndpoint,
|
|
}
|
|
if opts.JaegerCollectorEndpoint != nil {
|
|
jOpts.CollectorEndpoint = opts.JaegerCollectorEndpoint.String()
|
|
}
|
|
jex, err := jaeger.NewExporter(jOpts)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
octrace.RegisterExporter(jex)
|
|
provider.exporter = jex
|
|
return nil
|
|
}
|
|
|
|
func (provider *jaegerProvider) Unregister() error {
|
|
if provider.exporter == nil {
|
|
return nil
|
|
}
|
|
octrace.UnregisterExporter(provider.exporter)
|
|
provider.exporter.Flush()
|
|
provider.exporter = nil
|
|
return nil
|
|
}
|