8
8
"github.com/go-kit/log"
9
9
"github.com/go-kit/log/level"
10
10
"github.com/prometheus/client_golang/prometheus"
11
- "github.com/prometheus/client_golang/prometheus/promauto"
12
11
"github.com/prometheus/prometheus/model/exemplar"
13
12
"github.com/prometheus/prometheus/model/histogram"
14
13
"github.com/prometheus/prometheus/model/labels"
@@ -279,31 +278,8 @@ type RulesManager interface {
279
278
// ManagerFactory is a function that creates new RulesManager for given user and notifier.Manager.
280
279
type ManagerFactory func (ctx context.Context , userID string , notifier * notifier.Manager , logger log.Logger , reg prometheus.Registerer ) RulesManager
281
280
282
- func DefaultTenantManagerFactory (cfg Config , p Pusher , q storage.Queryable , engine v1.QueryEngine , overrides RulesLimits , reg prometheus.Registerer ) ManagerFactory {
283
- totalWritesVec := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
284
- Name : "cortex_ruler_write_requests_total" ,
285
- Help : "Number of write requests to ingesters." ,
286
- }, []string {"user" })
287
- failedWritesVec := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
288
- Name : "cortex_ruler_write_requests_failed_total" ,
289
- Help : "Number of failed write requests to ingesters." ,
290
- }, []string {"user" })
291
-
292
- totalQueriesVec := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
293
- Name : "cortex_ruler_queries_total" ,
294
- Help : "Number of queries executed by ruler." ,
295
- }, []string {"user" })
296
- failedQueriesVec := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
297
- Name : "cortex_ruler_queries_failed_total" ,
298
- Help : "Number of failed queries by ruler." ,
299
- }, []string {"user" })
300
- var rulerQuerySeconds * prometheus.CounterVec
301
- if cfg .EnableQueryStats {
302
- rulerQuerySeconds = promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
303
- Name : "cortex_ruler_query_seconds_total" ,
304
- Help : "Total amount of wall clock time spent processing queries by the ruler." ,
305
- }, []string {"user" })
306
- }
281
+ func DefaultTenantManagerFactory (cfg Config , p Pusher , q storage.Queryable , engine v1.QueryEngine , overrides RulesLimits , reg prometheus.Registerer ) (ManagerFactory , * RuleEvalMetrics ) {
282
+ metrics := NewRuleEvalMetrics (cfg , reg )
307
283
308
284
// Wrap errors returned by Queryable to our wrapper, so that we can distinguish between those errors
309
285
// and errors returned by PromQL engine. Errors from Queryable can be either caused by user (limits) or internal errors.
@@ -312,14 +288,14 @@ func DefaultTenantManagerFactory(cfg Config, p Pusher, q storage.Queryable, engi
312
288
313
289
return func (ctx context.Context , userID string , notifier * notifier.Manager , logger log.Logger , reg prometheus.Registerer ) RulesManager {
314
290
var queryTime prometheus.Counter
315
- if rulerQuerySeconds != nil {
316
- queryTime = rulerQuerySeconds .WithLabelValues (userID )
291
+ if metrics . RulerQuerySeconds != nil {
292
+ queryTime = metrics . RulerQuerySeconds .WithLabelValues (userID )
317
293
}
318
294
319
- failedQueries := failedQueriesVec .WithLabelValues (userID )
320
- totalQueries := totalQueriesVec .WithLabelValues (userID )
321
- totalWrites := totalWritesVec .WithLabelValues (userID )
322
- failedWrites := failedWritesVec .WithLabelValues (userID )
295
+ failedQueries := metrics . FailedQueriesVec .WithLabelValues (userID )
296
+ totalQueries := metrics . TotalQueriesVec .WithLabelValues (userID )
297
+ totalWrites := metrics . TotalWritesVec .WithLabelValues (userID )
298
+ failedWrites := metrics . FailedWritesVec .WithLabelValues (userID )
323
299
324
300
engineQueryFunc := EngineQueryFunc (engine , q , overrides , userID )
325
301
metricsQueryFunc := MetricsQueryFunc (engineQueryFunc , totalQueries , failedQueries )
@@ -339,7 +315,7 @@ func DefaultTenantManagerFactory(cfg Config, p Pusher, q storage.Queryable, engi
339
315
ConcurrentEvalsEnabled : cfg .ConcurrentEvalsEnabled ,
340
316
MaxConcurrentEvals : cfg .MaxConcurrentEvals ,
341
317
})
342
- }
318
+ }, metrics
343
319
}
344
320
345
321
type QueryableError struct {
0 commit comments