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 }