Skip to content

Commit 5e0d931

Browse files
committed
fix evict metric
Signed-off-by: alanprot <[email protected]>
1 parent 8b57e7b commit 5e0d931

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

pkg/ingester/ingester.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ func New(cfg Config, limits *validation.Overrides, registerer prometheus.Registe
719719

720720
if cfg.MatchersCacheMaxItems > 0 {
721721
r := prometheus.NewRegistry()
722-
registerer.MustRegister(newMatchCacheMetrics(r))
722+
registerer.MustRegister(newMatchCacheMetrics(r, logger))
723723
i.matchersCache, err = storecache.NewMatchersCache(storecache.WithSize(cfg.MatchersCacheMaxItems), storecache.WithPromRegistry(r))
724724
if err != nil {
725725
return nil, err

pkg/ingester/ingester_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,9 @@ func TestMatcherCache(t *testing.T) {
130130
blocksDir := filepath.Join(dir, "blocks")
131131
require.NoError(t, os.Mkdir(chunksDir, os.ModePerm))
132132
require.NoError(t, os.Mkdir(blocksDir, os.ModePerm))
133-
134-
ing, err := prepareIngesterWithBlocksStorageAndLimits(t, defaultIngesterTestConfig(t), limits, tenantLimits, blocksDir, registry, true)
133+
cfg := defaultIngesterTestConfig(t)
134+
cfg.MatchersCacheMaxItems = 50
135+
ing, err := prepareIngesterWithBlocksStorageAndLimits(t, cfg, limits, tenantLimits, blocksDir, registry, true)
135136
require.NoError(t, err)
136137
require.NoError(t, services.StartAndAwaitRunning(context.Background(), ing))
137138

@@ -142,7 +143,8 @@ func TestMatcherCache(t *testing.T) {
142143
return ing.lifecycler.GetState()
143144
})
144145
ctx := user.InjectOrgID(context.Background(), userID)
145-
numberOfDifferentMatchers := 50
146+
// Lets have 1 key evicted
147+
numberOfDifferentMatchers := cfg.MatchersCacheMaxItems + 1
146148
callPerMatcher := 10
147149
for j := 0; j < numberOfDifferentMatchers; j++ {
148150
for i := 0; i < callPerMatcher; i++ {
@@ -159,7 +161,7 @@ func TestMatcherCache(t *testing.T) {
159161
require.NoError(t, testutil.GatherAndCompare(registry, bytes.NewBufferString(fmt.Sprintf(`
160162
# HELP ingester_matchers_cache_evicted_total Total number of items evicted from the cache
161163
# TYPE ingester_matchers_cache_evicted_total counter
162-
ingester_matchers_cache_evicted_total 0
164+
ingester_matchers_cache_evicted_total 1
163165
# HELP ingester_matchers_cache_hits_total Total number of cache hits for series matchers
164166
# TYPE ingester_matchers_cache_hits_total counter
165167
ingester_matchers_cache_hits_total %v
@@ -172,7 +174,7 @@ func TestMatcherCache(t *testing.T) {
172174
# HELP ingester_matchers_cache_requests_total Total number of cache requests for series matchers
173175
# TYPE ingester_matchers_cache_requests_total counter
174176
ingester_matchers_cache_requests_total %v
175-
`, callPerMatcher*numberOfDifferentMatchers-numberOfDifferentMatchers, numberOfDifferentMatchers, callPerMatcher*numberOfDifferentMatchers)), "ingester_matchers_cache_requests_total", "ingester_matchers_cache_hits_total", "ingester_matchers_cache_items", "ingester_matchers_cache_max_items", "ingester_matchers_cache_evicted_total"))
177+
`, callPerMatcher*numberOfDifferentMatchers-numberOfDifferentMatchers, cfg.MatchersCacheMaxItems, callPerMatcher*numberOfDifferentMatchers)), "ingester_matchers_cache_requests_total", "ingester_matchers_cache_hits_total", "ingester_matchers_cache_items", "ingester_matchers_cache_max_items", "ingester_matchers_cache_evicted_total"))
176178
}
177179

178180
func TestIngesterPerLabelsetLimitExceeded(t *testing.T) {

pkg/ingester/metrics.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package ingester
22

33
import (
4+
"github.com/go-kit/log"
45
"github.com/go-kit/log/level"
56
"github.com/prometheus/client_golang/prometheus"
67
"github.com/prometheus/client_golang/prometheus/promauto"
78

89
"github.com/cortexproject/cortex/pkg/storage/tsdb"
910
"github.com/cortexproject/cortex/pkg/util"
10-
util_log "github.com/cortexproject/cortex/pkg/util/log"
1111
util_math "github.com/cortexproject/cortex/pkg/util/math"
1212
)
1313

@@ -680,7 +680,8 @@ func (sm *tsdbMetrics) removeRegistryForUser(userID string) {
680680
}
681681

682682
type matcherCacheMetrics struct {
683-
r *prometheus.Registry
683+
r *prometheus.Registry
684+
logger log.Logger
684685

685686
requestsTotal *prometheus.Desc
686687
hitsTotal *prometheus.Desc
@@ -689,9 +690,10 @@ type matcherCacheMetrics struct {
689690
evicted *prometheus.Desc
690691
}
691692

692-
func newMatchCacheMetrics(r *prometheus.Registry) *matcherCacheMetrics {
693+
func newMatchCacheMetrics(r *prometheus.Registry, l log.Logger) *matcherCacheMetrics {
693694
m := &matcherCacheMetrics{
694-
r: r,
695+
r: r,
696+
logger: l,
695697
requestsTotal: prometheus.NewDesc(
696698
"ingester_matchers_cache_requests_total",
697699
"Total number of cache requests for series matchers",
@@ -727,20 +729,20 @@ func (m *matcherCacheMetrics) Describe(out chan<- *prometheus.Desc) {
727729
func (m *matcherCacheMetrics) Collect(out chan<- prometheus.Metric) {
728730
gm, err := m.r.Gather()
729731
if err != nil {
730-
level.Warn(util_log.Logger).Log("msg", "failed to gather metrics from registry", "err", err)
732+
level.Warn(m.logger).Log("msg", "failed to gather metrics from registry", "err", err)
731733
return
732734
}
733735

734736
mfm, err := util.NewMetricFamilyMap(gm)
735737

736738
if err != nil {
737-
level.Warn(util_log.Logger).Log("msg", "failed to create metric family map", "err", err)
739+
level.Warn(m.logger).Log("msg", "failed to create metric family map", "err", err)
738740
return
739741
}
740742

741743
out <- prometheus.MustNewConstMetric(m.requestsTotal, prometheus.CounterValue, mfm.SumCounters("thanos_matchers_cache_requests_total"))
742744
out <- prometheus.MustNewConstMetric(m.hitsTotal, prometheus.CounterValue, mfm.SumCounters("thanos_matchers_cache_hits_total"))
743745
out <- prometheus.MustNewConstMetric(m.numItems, prometheus.GaugeValue, mfm.SumGauges("thanos_matchers_cache_items"))
744746
out <- prometheus.MustNewConstMetric(m.maxItems, prometheus.GaugeValue, mfm.SumGauges("thanos_matchers_cache_max_items"))
745-
out <- prometheus.MustNewConstMetric(m.evicted, prometheus.CounterValue, mfm.SumCounters("thanos_matchers_cache_max_items"))
747+
out <- prometheus.MustNewConstMetric(m.evicted, prometheus.CounterValue, mfm.SumCounters("thanos_matchers_cache_evicted_total"))
746748
}

0 commit comments

Comments
 (0)