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 }