diff --git a/pkg/local_object_storage/engine/writecache.go b/pkg/local_object_storage/engine/writecache.go index ea2299b8b1..692fa4be5c 100644 --- a/pkg/local_object_storage/engine/writecache.go +++ b/pkg/local_object_storage/engine/writecache.go @@ -63,21 +63,18 @@ type writeCacheMetrics struct { } func (m *writeCacheMetrics) Get(d time.Duration, success bool, st writecache.StorageType) { - m.metrics.AddGetDuration(m.shardID, success, d) - m.metrics.IncGetCounter(m.shardID, success, st.String()) + m.metrics.AddGetDuration(m.shardID, success, d, st.String()) } func (m *writeCacheMetrics) Delete(d time.Duration, success bool, st writecache.StorageType) { - m.metrics.AddDeleteDuration(m.shardID, success, d) - m.metrics.IncDeleteCounter(m.shardID, success, st.String()) + m.metrics.AddDeleteDuration(m.shardID, success, d, st.String()) if success { m.metrics.DecActualCount(m.shardID, st.String()) } } func (m *writeCacheMetrics) Put(d time.Duration, success bool, st writecache.StorageType) { - m.metrics.AddPutDuration(m.shardID, success, d) - m.metrics.IncPutCounter(m.shardID, success, st.String()) + m.metrics.AddPutDuration(m.shardID, success, d, st.String()) if success { m.metrics.IncActualCount(m.shardID, st.String()) } diff --git a/pkg/metrics/writecache.go b/pkg/metrics/writecache.go index 890903546d..74c330842a 100644 --- a/pkg/metrics/writecache.go +++ b/pkg/metrics/writecache.go @@ -21,14 +21,9 @@ type shardIDMode struct { } type WriteCacheMetrics interface { - AddGetDuration(shardID string, success bool, d time.Duration) - IncGetCounter(shardID string, success bool, storageType string) - - AddDeleteDuration(shardID string, success bool, d time.Duration) - IncDeleteCounter(shardID string, success bool, storageType string) - - AddPutDuration(shardID string, success bool, d time.Duration) - IncPutCounter(shardID string, success bool, storageType string) + AddGetDuration(shardID string, success bool, d time.Duration, storageType string) + AddDeleteDuration(shardID string, success bool, d time.Duration, storageType string) + AddPutDuration(shardID string, success bool, d time.Duration, storageType string) IncActualCount(shardID string, storageType string) DecActualCount(shardID string, storageType string) @@ -42,14 +37,9 @@ type WriteCacheMetrics interface { } type writeCacheMetrics struct { - getDuration metric[*prometheus.HistogramVec] - getCounter metric[*prometheus.CounterVec] - - putDuration metric[*prometheus.HistogramVec] - putCounter metric[*prometheus.CounterVec] - + getDuration metric[*prometheus.HistogramVec] + putDuration metric[*prometheus.HistogramVec] deleteDuration metric[*prometheus.HistogramVec] - deleteCounter metric[*prometheus.CounterVec] flushCounter metric[*prometheus.CounterVec] evictCounter metric[*prometheus.CounterVec] @@ -66,11 +56,8 @@ type writeCacheMetrics struct { func newWriteCacheMetrics() *writeCacheMetrics { return &writeCacheMetrics{ getDuration: newWCMethodDurationCounter("get"), - getCounter: newWCMethodCounterVec("get"), putDuration: newWCMethodDurationCounter("put"), - putCounter: newWCMethodCounterVec("put"), deleteDuration: newWCMethodDurationCounter("delete"), - deleteCounter: newWCMethodCounterVec("delete"), flushCounter: newWCOperationCounterVec("flush", []string{wcShardID, wcStorage, wcSuccess}), evictCounter: newWCOperationCounterVec("evict", []string{wcShardID, wcStorage}), actualCount: newWCGaugeVec("actual_objects_count", "Actual objects count in writecache", []string{wcShardID, wcStorage}), @@ -81,28 +68,16 @@ func newWriteCacheMetrics() *writeCacheMetrics { } } -func (m *writeCacheMetrics) AddGetDuration(shardID string, success bool, d time.Duration) { - setWriteCacheDuration(m.getDuration.value, shardID, success, d) +func (m *writeCacheMetrics) AddGetDuration(shardID string, success bool, d time.Duration, storageType string) { + setWriteCacheDuration(m.getDuration.value, shardID, success, d, storageType) } -func (m *writeCacheMetrics) IncGetCounter(shardID string, success bool, storageType string) { - incWriteCacheCounter(m.getCounter.value, shardID, success, storageType) +func (m *writeCacheMetrics) AddDeleteDuration(shardID string, success bool, d time.Duration, storageType string) { + setWriteCacheDuration(m.deleteDuration.value, shardID, success, d, storageType) } -func (m *writeCacheMetrics) AddDeleteDuration(shardID string, success bool, d time.Duration) { - setWriteCacheDuration(m.deleteDuration.value, shardID, success, d) -} - -func (m *writeCacheMetrics) IncDeleteCounter(shardID string, success bool, storageType string) { - incWriteCacheCounter(m.deleteCounter.value, shardID, success, storageType) -} - -func (m *writeCacheMetrics) AddPutDuration(shardID string, success bool, d time.Duration) { - setWriteCacheDuration(m.putDuration.value, shardID, success, d) -} - -func (m *writeCacheMetrics) IncPutCounter(shardID string, success bool, storageType string) { - incWriteCacheCounter(m.putCounter.value, shardID, success, storageType) +func (m *writeCacheMetrics) AddPutDuration(shardID string, success bool, d time.Duration, storageType string) { + setWriteCacheDuration(m.putDuration.value, shardID, success, d, storageType) } func (m *writeCacheMetrics) IncActualCount(shardID string, storageType string) { @@ -187,49 +162,30 @@ func (m *writeCacheMetrics) IncEvictCounter(shardID string, storageType string) func (m *writeCacheMetrics) register() { mustRegister(m.getDuration) - mustRegister(m.getCounter) mustRegister(m.putDuration) - mustRegister(m.putCounter) mustRegister(m.deleteDuration) - mustRegister(m.deleteCounter) mustRegister(m.actualCount) mustRegister(m.estimatedSize) mustRegister(m.flushCounter) mustRegister(m.evictCounter) } -func setWriteCacheDuration(m *prometheus.HistogramVec, shardID string, success bool, d time.Duration) { +func setWriteCacheDuration(m *prometheus.HistogramVec, shardID string, success bool, d time.Duration, storageType string) { m.With( prometheus.Labels{ wcShardID: shardID, wcSuccess: fmt.Sprintf("%v", success), + wcStorage: storageType, }, ).Observe(float64(d)) } -func incWriteCacheCounter(m *prometheus.CounterVec, shardID string, success bool, storageType string) { - m.With(prometheus.Labels{ - wcShardID: shardID, - wcSuccess: fmt.Sprintf("%v", success), - wcStorage: storageType, - }).Inc() -} - func newWCMethodDurationCounter(method string) metric[*prometheus.HistogramVec] { return newHistogramVec(prometheus.HistogramOpts{ Namespace: namespace, Subsystem: wcSubsystem, Name: fmt.Sprintf("%s_req_duration_seconds", method), Help: fmt.Sprintf("Accumulated %s request process duration", method), - }, []string{wcShardID, wcSuccess}) -} - -func newWCMethodCounterVec(method string) metric[*prometheus.CounterVec] { - return newCounterVec(prometheus.CounterOpts{ - Namespace: namespace, - Subsystem: wcSubsystem, - Name: fmt.Sprintf("%s_req_count", method), - Help: fmt.Sprintf("The number of %s requests processed", method), }, []string{wcShardID, wcSuccess, wcStorage}) }