package grpc_prometheus import ( prom "github.com/prometheus/client_golang/prometheus" ) // A CounterOption lets you add options to Counter metrics using With* funcs. type CounterOption func(*prom.CounterOpts) type counterOptions []CounterOption func (co counterOptions) apply(o prom.CounterOpts) prom.CounterOpts { for _, f := range co { f(&o) } return o } // WithConstLabels allows you to add ConstLabels to Counter metrics. func WithConstLabels(labels prom.Labels) CounterOption { return func(o *prom.CounterOpts) { o.ConstLabels = labels } } // A HistogramOption lets you add options to Histogram metrics using With* // funcs. type HistogramOption func(*prom.HistogramOpts) // WithHistogramBuckets allows you to specify custom bucket ranges for histograms if EnableHandlingTimeHistogram is on. func WithHistogramBuckets(buckets []float64) HistogramOption { return func(o *prom.HistogramOpts) { o.Buckets = buckets } } // WithHistogramConstLabels allows you to add custom ConstLabels to // histograms metrics. func WithHistogramConstLabels(labels prom.Labels) HistogramOption { return func(o *prom.HistogramOpts) { o.ConstLabels = labels } }