gitlab.com/gitlab-org/labkit@v1.21.0/errortracking/tracker_options.go (about)

     1  package errortracking
     2  
     3  // The configuration for Tracker.
     4  type trackerConfig struct {
     5  	sentryDSN         string
     6  	version           string
     7  	sentryEnvironment string
     8  	loggerName        string
     9  }
    10  
    11  // TrackerOption will configure a Tracker.
    12  type TrackerOption func(*trackerConfig)
    13  
    14  func applyTrackerOptions(opts []TrackerOption) trackerConfig {
    15  	config := trackerConfig{}
    16  
    17  	for _, v := range opts {
    18  		v(&config)
    19  	}
    20  
    21  	return config
    22  }
    23  
    24  // WithSentryDSN sets the sentry data source name.
    25  func WithSentryDSN(sentryDSN string) TrackerOption {
    26  	return func(config *trackerConfig) {
    27  		config.sentryDSN = sentryDSN
    28  	}
    29  }
    30  
    31  // WithVersion is used to configure the version of the service
    32  // that is currently running.
    33  func WithVersion(version string) TrackerOption {
    34  	return func(config *trackerConfig) {
    35  		config.version = version
    36  	}
    37  }
    38  
    39  // WithSentryEnvironment sets the sentry environment.
    40  func WithSentryEnvironment(sentryEnvironment string) TrackerOption {
    41  	return func(config *trackerConfig) {
    42  		config.sentryEnvironment = sentryEnvironment
    43  	}
    44  }
    45  
    46  // WithLoggerName sets the logger name.
    47  func WithLoggerName(loggerName string) TrackerOption {
    48  	return func(config *trackerConfig) {
    49  		config.loggerName = loggerName
    50  	}
    51  }