(engine promql.QueryEngine, frontendClient *frontendClient, q storage.Queryable, overrides RulesLimits, userID string, lookbackDelta time.Duration)
| 178 | type QueryExecutor func(ctx context.Context, qs string, t time.Time) (promql.Vector, error) |
| 179 | |
| 180 | func engineQueryFunc(engine promql.QueryEngine, frontendClient *frontendClient, q storage.Queryable, overrides RulesLimits, userID string, lookbackDelta time.Duration) rules.QueryFunc { |
| 181 | var executor QueryExecutor |
| 182 | |
| 183 | if frontendClient != nil { |
| 184 | // query to query frontend |
| 185 | executor = frontendClient.InstantQuery |
| 186 | } else { |
| 187 | // query to engine |
| 188 | executor = func(ctx context.Context, qs string, t time.Time) (promql.Vector, error) { |
| 189 | return executeQuery(ctx, engine, q, qs, t) |
| 190 | } |
| 191 | } |
| 192 | |
| 193 | return wrapWithMiddleware(executor, overrides, userID, lookbackDelta) |
| 194 | } |
| 195 | |
| 196 | func executeQuery(ctx context.Context, engine promql.QueryEngine, q storage.Queryable, qs string, t time.Time) (promql.Vector, error) { |
| 197 | qry, err := engine.NewInstantQuery(ctx, q, nil, qs, t) |
no test coverage detected