github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/util/opentelemetry/jaeger/jaeger.go (about)

     1  package jaeger
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/tickoalcantara12/micro/v3/service/logger"
     7  	"github.com/tickoalcantara12/micro/v3/util/opentelemetry"
     8  	"github.com/opentracing/opentracing-go"
     9  	"github.com/uber/jaeger-client-go/config"
    10  )
    11  
    12  const (
    13  	DefaultReporterAddress = "localhost:6831"
    14  )
    15  
    16  // New returns a configured Jaeger tracer:
    17  func New(opts ...opentelemetry.Option) (opentracing.Tracer, io.Closer, error) {
    18  	options := opentelemetry.DefaultOptions()
    19  	for _, o := range opts {
    20  		o(&options)
    21  	}
    22  
    23  	logger.Debug("Creating a new Jaeger tracer")
    24  
    25  	// Prepare a Jaeger config using our options:
    26  	jaegerConfig := config.Configuration{
    27  		ServiceName: options.ServiceName,
    28  		Sampler: &config.SamplerConfig{
    29  			Type:  "const", // No adaptive sampling or external lookups
    30  			Param: options.SamplingRate,
    31  		},
    32  		Reporter: &config.ReporterConfig{
    33  			LocalAgentHostPort: options.TraceReporterAddress,
    34  		},
    35  	}
    36  
    37  	// Prepare a new Jaeger tracer from this config:
    38  	tracer, closer, err := jaegerConfig.NewTracer()
    39  	if err != nil {
    40  		return nil, nil, err
    41  	}
    42  
    43  	return tracer, closer, nil
    44  }