52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package tracing
|
|
|
|
import (
|
|
"io"
|
|
bundleConfig "micro-bundle/config"
|
|
"time"
|
|
|
|
"github.com/google/wire"
|
|
"github.com/opentracing/opentracing-go"
|
|
"github.com/uber/jaeger-client-go"
|
|
jaegerConfig "github.com/uber/jaeger-client-go/config"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var Provider = wire.NewSet(NewTracing)
|
|
|
|
type JaegerProvider struct {
|
|
Tracer opentracing.Tracer
|
|
Closer io.Closer
|
|
}
|
|
|
|
//var JaegerPoint *JaegerProvider
|
|
|
|
func NewTracing() (jaegerProvider *JaegerProvider) {
|
|
if bundleConfig.Data.Jaeger.Open != "true" {
|
|
return
|
|
}
|
|
jaegerProvider = &JaegerProvider{}
|
|
cfg := jaegerConfig.Configuration{
|
|
ServiceName: "oa-meeting",
|
|
Sampler: &jaegerConfig.SamplerConfig{
|
|
Type: jaeger.SamplerTypeRemote,
|
|
Param: 1,
|
|
},
|
|
Reporter: &jaegerConfig.ReporterConfig{
|
|
LocalAgentHostPort: bundleConfig.Data.Jaeger.Addr,
|
|
LogSpans: true,
|
|
BufferFlushInterval: 5 * time.Second,
|
|
},
|
|
}
|
|
nativeTracerIo, closerIo, err := cfg.NewTracer(jaegerConfig.Logger(jaeger.StdLogger))
|
|
if err != nil {
|
|
zap.L().Error("nativeTracer err", zap.Error(err))
|
|
return
|
|
}
|
|
opentracing.SetGlobalTracer(nativeTracerIo)
|
|
jaegerProvider.Tracer = nativeTracerIo
|
|
jaegerProvider.Closer = closerIo
|
|
//JaegerPoint = jaegerProvider
|
|
return
|
|
}
|