|
|
|
@ -11,8 +11,9 @@ import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
|
onceIndex sync.Once |
|
|
|
|
IndexMetrics *BleveIndexMetrics |
|
|
|
|
onceIndex sync.Once |
|
|
|
|
IndexMetrics *BleveIndexMetrics |
|
|
|
|
SprinklesIndexMetrics *SprinklesMetrics |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
type BleveIndexMetrics struct { |
|
|
|
@ -28,8 +29,30 @@ type BleveIndexMetrics struct { |
|
|
|
|
IndexTenants *prometheus.CounterVec |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type SprinklesMetrics struct { |
|
|
|
|
SprinklesLatency prometheus.Histogram |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var IndexCreationBuckets = []float64{1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000} |
|
|
|
|
|
|
|
|
|
func NewSprinklesMetrics() *SprinklesMetrics { |
|
|
|
|
onceIndex.Do(func() { |
|
|
|
|
SprinklesIndexMetrics = &SprinklesMetrics{ |
|
|
|
|
SprinklesLatency: prometheus.NewHistogram(prometheus.HistogramOpts{ |
|
|
|
|
Namespace: "index_server", |
|
|
|
|
Name: "sprinkles_latency_seconds", |
|
|
|
|
Help: "Time (in seconds) it takes until sprinkles are fetched", |
|
|
|
|
Buckets: instrument.DefBuckets, |
|
|
|
|
NativeHistogramBucketFactor: 1.1, // enable native histograms
|
|
|
|
|
NativeHistogramMaxBucketNumber: 160, |
|
|
|
|
NativeHistogramMinResetDuration: time.Hour, |
|
|
|
|
}), |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
return SprinklesIndexMetrics |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func NewIndexMetrics(indexDir string, searchBackend SearchBackend) *BleveIndexMetrics { |
|
|
|
|
onceIndex.Do(func() { |
|
|
|
|
IndexMetrics = &BleveIndexMetrics{ |
|
|
|
@ -79,6 +102,14 @@ func NewIndexMetrics(indexDir string, searchBackend SearchBackend) *BleveIndexMe |
|
|
|
|
return IndexMetrics |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *SprinklesMetrics) Collect(ch chan<- prometheus.Metric) { |
|
|
|
|
s.SprinklesLatency.Collect(ch) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *SprinklesMetrics) Describe(ch chan<- *prometheus.Desc) { |
|
|
|
|
s.SprinklesLatency.Describe(ch) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *BleveIndexMetrics) Collect(ch chan<- prometheus.Metric) { |
|
|
|
|
s.IndexLatency.Collect(ch) |
|
|
|
|
s.IndexCreationTime.Collect(ch) |
|
|
|
|