( engine promql.QueryEngine, client *frontendClient, q storage.Queryable, overrides RulesLimits, userID string, cfg Config, metrics *RuleEvalMetrics, logger log.Logger, )
| 410 | } |
| 411 | |
| 412 | func buildQueryFunc( |
| 413 | engine promql.QueryEngine, |
| 414 | client *frontendClient, |
| 415 | q storage.Queryable, |
| 416 | overrides RulesLimits, |
| 417 | userID string, |
| 418 | cfg Config, |
| 419 | metrics *RuleEvalMetrics, |
| 420 | logger log.Logger, |
| 421 | ) rules.QueryFunc { |
| 422 | baseQueryFunc := engineQueryFunc(engine, client, q, overrides, userID, cfg.LookbackDelta) |
| 423 | |
| 424 | // apply metric middleware |
| 425 | totalQueries := metrics.TotalQueriesVec.WithLabelValues(userID) |
| 426 | failedQueries := metrics.FailedQueriesVec.WithLabelValues(userID) |
| 427 | metricsFunc := metricsQueryFunc(baseQueryFunc, totalQueries, failedQueries) |
| 428 | |
| 429 | // apply statistic middleware |
| 430 | if cfg.EnableQueryStats { |
| 431 | return recordAndReportRuleQueryMetrics(metricsFunc, userID, metrics, logger) |
| 432 | } |
| 433 | return metricsFunc |
| 434 | } |
| 435 | |
| 436 | type QueryableError struct { |
| 437 | err error |
no test coverage detected