|
|
package common
|
|
|
|
|
|
import (
|
|
|
"io"
|
|
|
"log"
|
|
|
"time"
|
|
|
|
|
|
"github.com/opentracing/opentracing-go"
|
|
|
"github.com/uber/jaeger-client-go"
|
|
|
"github.com/uber/jaeger-client-go/config"
|
|
|
)
|
|
|
|
|
|
// func NewTracer(serviceName string, addr string) (opentracing.Tracer, io.Closer, error) {
|
|
|
// cfg := &config.Configuration{
|
|
|
// ServiceName: serviceName,
|
|
|
// Sampler: &config.SamplerConfig{
|
|
|
// Type: jaeger.SamplerTypeConst,
|
|
|
// Param: 1,
|
|
|
// },
|
|
|
// Reporter: &config.ReporterConfig{
|
|
|
// BufferFlushInterval: 1 * time.Second,
|
|
|
// LogSpans: true,
|
|
|
// LocalAgentHostPort: addr,
|
|
|
// },
|
|
|
// }
|
|
|
// return cfg.NewTracer()
|
|
|
// }
|
|
|
|
|
|
const vmwareAddr = "192.168.71.200"
|
|
|
|
|
|
func NewTracer(serviceName string, addr string) (opentracing.Tracer, io.Closer, error) {
|
|
|
cfg := &config.Configuration{
|
|
|
ServiceName: serviceName,
|
|
|
Sampler: &config.SamplerConfig{
|
|
|
Type: jaeger.SamplerTypeConst,
|
|
|
Param: 1,
|
|
|
},
|
|
|
Reporter: &config.ReporterConfig{
|
|
|
BufferFlushInterval: 1 * time.Second,
|
|
|
LogSpans: true,
|
|
|
// 方法1: 使用 HTTP Collector 直接发送
|
|
|
CollectorEndpoint: "http://" + vmwareAddr + ":14268/api/traces",
|
|
|
// 注释掉 LocalAgentHostPort,因为我们使用 CollectorEndpoint
|
|
|
// LocalAgentHostPort: addr,
|
|
|
},
|
|
|
}
|
|
|
|
|
|
tracer, closer, err := cfg.NewTracer()
|
|
|
if err != nil {
|
|
|
return nil, nil, err
|
|
|
}
|
|
|
|
|
|
log.Printf("Jaeger tracer 初始化成功 - 服务: %s, 端点: %s", serviceName, "http://192.168.71.172:14268/api/traces")
|
|
|
return tracer, closer, nil
|
|
|
}
|