37 lines
731 B
Go
37 lines
731 B
Go
package tenant
|
|
|
|
import "fmt"
|
|
|
|
type metricOpts struct {
|
|
serviceSuffix string
|
|
}
|
|
|
|
func defaultOpts() *metricOpts {
|
|
return &metricOpts{}
|
|
}
|
|
|
|
func (o *metricOpts) applySuffix(prefix string) string {
|
|
if o.serviceSuffix != "" {
|
|
return fmt.Sprintf("%s_%s", prefix, o.serviceSuffix)
|
|
}
|
|
return prefix
|
|
}
|
|
|
|
// MetricsOption is an option used by a metric middleware.
|
|
type MetricsOption func(*metricOpts)
|
|
|
|
// WithSuffix returns a metric option that applies a suffix to the service name of the metric.
|
|
func WithSuffix(suffix string) MetricsOption {
|
|
return func(opts *metricOpts) {
|
|
opts.serviceSuffix = suffix
|
|
}
|
|
}
|
|
|
|
func applyOpts(opts ...MetricsOption) *metricOpts {
|
|
o := defaultOpts()
|
|
for _, opt := range opts {
|
|
opt(o)
|
|
}
|
|
return o
|
|
}
|