tracing/initialization_options.go (31 lines of code) (raw):
package tracing
import (
"os"
"path"
)
const tracingEnvKey = "GITLAB_TRACING"
// The configuration for InjectCorrelationID.
type initializationConfig struct {
serviceName string
connectionString string
}
// InitializationOption will configure a correlation handler.
type InitializationOption func(*initializationConfig)
func applyInitializationOptions(opts []InitializationOption) initializationConfig {
config := initializationConfig{
serviceName: path.Base(os.Args[0]),
connectionString: os.Getenv(tracingEnvKey),
}
for _, v := range opts {
v(&config)
}
return config
}
// WithServiceName allows the service name to be configured for the tracer
// this will appear in traces.
func WithServiceName(serviceName string) InitializationOption {
return func(config *initializationConfig) {
config.serviceName = serviceName
}
}
// WithConnectionString allows the opentracing connection string to be overridden. By default
// this will be retrieved from the GITLAB_TRACING environment variable.
func WithConnectionString(connectionString string) InitializationOption {
return func(config *initializationConfig) {
config.connectionString = connectionString
}
}