MCPcopy Index your code
hub / github.com/cortexproject/cortex / TestSyncRuleGroupsCleanUpPerUserMetrics

Function TestSyncRuleGroupsCleanUpPerUserMetrics

pkg/ruler/manager_test.go:215–262  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

213}
214
215func TestSyncRuleGroupsCleanUpPerUserMetrics(t *testing.T) {
216 dir := t.TempDir()
217 reg := prometheus.NewPedanticRegistry()
218 evalMetrics := NewRuleEvalMetrics(Config{RulePath: dir, EnableQueryStats: true}, reg)
219
220 waitDurations := []time.Duration{
221 1 * time.Millisecond,
222 1 * time.Millisecond,
223 }
224
225 ruleManagerFactory := RuleManagerFactory(nil, waitDurations)
226
227 m, err := NewDefaultMultiTenantManager(Config{RulePath: dir}, &ruleLimits{}, ruleManagerFactory, evalMetrics, reg, log.NewNopLogger())
228 require.NoError(t, err)
229
230 const user = "testUser"
231
232 evalMetrics.TotalWritesVec.WithLabelValues(user).Add(10)
233
234 userRules := map[string]rulespb.RuleGroupList{
235 user: {
236 &rulespb.RuleGroupDesc{
237 Name: "group1",
238 Namespace: "ns",
239 Interval: 1 * time.Minute,
240 User: user,
241 },
242 },
243 }
244 m.SyncRuleGroups(context.Background(), userRules)
245 gm, err := reg.Gather()
246 require.NoError(t, err)
247 mfm, err := util.NewMetricFamilyMap(gm)
248 require.NoError(t, err)
249 require.Contains(t, mfm["cortex_ruler_write_requests_total"].String(), "value:\""+user+"\"")
250 require.Contains(t, mfm["cortex_ruler_config_last_reload_successful"].String(), "value:\""+user+"\"")
251
252 // Passing empty map / nil stops all managers.
253 m.SyncRuleGroups(context.Background(), nil)
254 require.Nil(t, getManager(m, user))
255
256 gm, err = reg.Gather()
257 require.NoError(t, err)
258 mfm, err = util.NewMetricFamilyMap(gm)
259 require.NoError(t, err)
260 require.NotContains(t, mfm["cortex_ruler_write_requests_total"].String(), "value:\""+user+"\"")
261 require.NotContains(t, mfm["cortex_ruler_config_last_reload_successful"].String(), "value:\""+user+"\"")
262}
263
264func TestBackupRules(t *testing.T) {
265 dir := t.TempDir()

Callers

nothing calls this directly

Calls 8

SyncRuleGroupsMethod · 0.95
NewMetricFamilyMapFunction · 0.92
NewRuleEvalMetricsFunction · 0.85
RuleManagerFactoryFunction · 0.85
getManagerFunction · 0.85
StringMethod · 0.65
AddMethod · 0.45

Tested by

no test coverage detected