From 1cd9f9a8ab457edddec4595dc3426e0f05db625e Mon Sep 17 00:00:00 2001
From: ensiouel <ensiouel@gmail.com>
Date: Thu, 14 Dec 2023 15:53:23 +0300
Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D0=B0=20=D0=BC?=
 =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=B8=D0=BA=D0=B0=20cache=5Frequests=5Ftotal?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/cache/metrics_cache.go | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

diff --git a/pkg/cache/metrics_cache.go b/pkg/cache/metrics_cache.go
index d93cc4ac..349dcb67 100644
--- a/pkg/cache/metrics_cache.go
+++ b/pkg/cache/metrics_cache.go
@@ -6,52 +6,48 @@ import (
 )
 
 var (
-	cacheRequestsTotal = promauto.With(prometheus.DefaultRegisterer).NewCounterVec(prometheus.CounterOpts{
-		Name: "cache_requests_total",
-		Help: "Количество обращений к кэшу",
-	}, []string{"cache_id"})
 	cacheHitsTotal = promauto.With(prometheus.DefaultRegisterer).NewCounterVec(prometheus.CounterOpts{
 		Name: "cache_hits_total",
-		Help: "Количество попаданий в кэш",
+		Help: "Количество попаданий в кэш.",
 	}, []string{"cache_id"})
 	cacheMissesTotal = promauto.With(prometheus.DefaultRegisterer).NewCounterVec(prometheus.CounterOpts{
 		Name: "cache_misses_total",
-		Help: "Количество пропусков в кэш",
+		Help: "Количество пропусков в кэш.",
 	}, []string{"cache_id"})
 )
 
-var _ Cache = &MetricsCache{}
+var _ Cache = &metricsCache{}
 
-type MetricsCache struct {
-	cacheID string
+type metricsCache struct {
 	cache   Cache
+	cacheID string
 }
 
-func WrapMetrics(cacheID string, cache Cache) *MetricsCache {
-	return &MetricsCache{
+// WithMetrics возвращает обертку над кэшем, которая используется для отслеживания количества хитов и промахов в кэше.
+// Помимо этого, в функцию WithMetrics передается параметр cacheID, который используется в метке метрик для идентификации конкретного кэша.
+//
+// Метрики записываются в prometheus.DefaultRegisterer
+func WithMetrics(cache Cache, cacheID string) Cache {
+	return &metricsCache{
 		cacheID: cacheID,
 		cache:   cache,
 	}
 }
 
-func (c *MetricsCache) Set(key, value any) error {
+func (c *metricsCache) Set(key, value any) error {
 	return c.cache.Set(key, value)
 }
 
-func (c *MetricsCache) Get(key any) (any, error) {
-	cacheRequestsTotal.WithLabelValues(c.cacheID).Inc()
-
+func (c *metricsCache) Get(key any) (any, error) {
 	value, err := c.cache.Get(key)
 	if err != nil {
 		cacheMissesTotal.WithLabelValues(c.cacheID).Inc()
 		return nil, err
 	}
-
 	cacheHitsTotal.WithLabelValues(c.cacheID).Inc()
-
 	return value, nil
 }
 
-func (c *MetricsCache) Remove(key any) error {
+func (c *metricsCache) Remove(key any) error {
 	return c.cache.Remove(key)
 }
-- 
GitLab