diff --git a/pkg/metrics/request.go b/pkg/metrics/request.go index 01837bf956aef3ad6172050f444ee67bb52d6de8..95226c1cb9c993c727cff1898d6be0c879506eb4 100644 --- a/pkg/metrics/request.go +++ b/pkg/metrics/request.go @@ -10,7 +10,19 @@ type RequestMetrics struct { DurationSeconds *prometheus.HistogramVec } +// NewRequestMetrics возвращает метрики для подсчета количества удачных/неудачных запросов, а так же длительности ответов. +// +// subsystem указывает подсистему, к которой принадлежат метрики. +// Значение должно быть уникальным, совпадение разрешено только при совпадении ключей labels. Пустое значение допустимо. +// +// labels - список меток, где каждый элемент метки соответствует парам ключ-значение. Отсутствие допустимо. +// Значения меток должны быть уникальными в рамках одной subsystem. +// +// Метрики записываются в prometheus.DefaultRegisterer func NewRequestMetrics(subsystem string, durationBuckets []float64, labels ...string) *RequestMetrics { + if len(durationBuckets) == 0 { + durationBuckets = prometheus.DefBuckets + } metrics := &RequestMetrics{ Total: prometheus.NewCounterVec(prometheus.CounterOpts{ Subsystem: subsystem,