gitlab.com/gitlab-org/labkit@v1.21.0/tracing/initialization_options.go (about)

     1  package tracing
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  )
     7  
     8  const tracingEnvKey = "GITLAB_TRACING"
     9  
    10  // The configuration for InjectCorrelationID.
    11  type initializationConfig struct {
    12  	serviceName      string
    13  	connectionString string
    14  }
    15  
    16  // InitializationOption will configure a correlation handler.
    17  type InitializationOption func(*initializationConfig)
    18  
    19  func applyInitializationOptions(opts []InitializationOption) initializationConfig {
    20  	config := initializationConfig{
    21  		serviceName:      path.Base(os.Args[0]),
    22  		connectionString: os.Getenv(tracingEnvKey),
    23  	}
    24  	for _, v := range opts {
    25  		v(&config)
    26  	}
    27  
    28  	return config
    29  }
    30  
    31  // WithServiceName allows the service name to be configured for the tracer
    32  // this will appear in traces.
    33  func WithServiceName(serviceName string) InitializationOption {
    34  	return func(config *initializationConfig) {
    35  		config.serviceName = serviceName
    36  	}
    37  }
    38  
    39  // WithConnectionString allows the opentracing connection string to be overridden. By default
    40  // this will be retrieved from the GITLAB_TRACING environment variable.
    41  func WithConnectionString(connectionString string) InitializationOption {
    42  	return func(config *initializationConfig) {
    43  		config.connectionString = connectionString
    44  	}
    45  }