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
34 lines
703 B
Go
34 lines
703 B
Go
package trace
|
|
|
|
import (
|
|
datadog "github.com/DataDog/opencensus-go-exporter-datadog"
|
|
octrace "go.opencensus.io/trace"
|
|
)
|
|
|
|
type datadogProvider struct {
|
|
exporter *datadog.Exporter
|
|
}
|
|
|
|
func (provider *datadogProvider) Register(opts *TracingOptions) error {
|
|
dOpts := datadog.Options{
|
|
Service: opts.Service,
|
|
TraceAddr: opts.DatadogAddress,
|
|
}
|
|
dex, err := datadog.NewExporter(dOpts)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
octrace.RegisterExporter(dex)
|
|
provider.exporter = dex
|
|
return nil
|
|
}
|
|
|
|
func (provider *datadogProvider) Unregister() error {
|
|
if provider.exporter == nil {
|
|
return nil
|
|
}
|
|
octrace.UnregisterExporter(provider.exporter)
|
|
provider.exporter.Stop()
|
|
provider.exporter = nil
|
|
return nil
|
|
}
|