github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/cmd/u2u/launcher/tracing/tracing.go (about)

     1  package tracing
     2  
     3  import (
     4  	opentracing "github.com/opentracing/opentracing-go"
     5  	jaegercfg "github.com/uber/jaeger-client-go/config"
     6  	jaegerlog "github.com/uber/jaeger-client-go/log"
     7  	"github.com/uber/jaeger-lib/metrics"
     8  	"gopkg.in/urfave/cli.v1"
     9  
    10  	"github.com/unicornultrafoundation/go-u2u/tracing"
    11  )
    12  
    13  var EnableFlag = cli.BoolFlag{
    14  	Name:  "tracing",
    15  	Usage: "Enable traces collection and reporting",
    16  }
    17  
    18  func Start(ctx *cli.Context) (stop func(), err error) {
    19  	stop = func() {}
    20  
    21  	if !ctx.Bool(EnableFlag.Name) {
    22  		return
    23  	}
    24  
    25  	var cfg *jaegercfg.Configuration
    26  	cfg, err = jaegercfg.FromEnv()
    27  	if err != nil {
    28  		return
    29  	}
    30  
    31  	cfg.ServiceName = "u2u"
    32  
    33  	tracer, closer, err := cfg.NewTracer(
    34  		jaegercfg.Logger(jaegerlog.StdLogger),
    35  		jaegercfg.Metrics(metrics.NullFactory),
    36  	)
    37  	if err != nil {
    38  		return
    39  	}
    40  	stop = func() {
    41  		closer.Close()
    42  	}
    43  
    44  	opentracing.SetGlobalTracer(tracer)
    45  	tracing.SetEnabled(true)
    46  	return
    47  }