diff --git a/pkg/frontend/querymiddleware/codec.go b/pkg/frontend/querymiddleware/codec.go index 5e9dcb7849..4563a4ad23 100644 --- a/pkg/frontend/querymiddleware/codec.go +++ b/pkg/frontend/querymiddleware/codec.go @@ -133,6 +133,8 @@ type MetricsQueryRequest interface { // GetHints returns hints that could be optionally attached to the request to pass down the stack. // These hints can be used to optimize the query execution. GetHints() *Hints + // GetLookbackDelta returns the lookback delta for the request. + GetLookbackDelta() time.Duration // WithID clones the current request with the provided ID. WithID(id int64) (MetricsQueryRequest, error) // WithStartEnd clone the current request with different start and end timestamp. diff --git a/pkg/frontend/querymiddleware/model_extra.go b/pkg/frontend/querymiddleware/model_extra.go index 9cf0764833..33a6a7d3f7 100644 --- a/pkg/frontend/querymiddleware/model_extra.go +++ b/pkg/frontend/querymiddleware/model_extra.go @@ -153,6 +153,10 @@ func (r *PrometheusRangeQueryRequest) GetHints() *Hints { return r.hints } +func (r *PrometheusRangeQueryRequest) GetLookbackDelta() time.Duration { + return r.lookbackDelta +} + // WithID clones the current `PrometheusRangeQueryRequest` with the provided ID. func (r *PrometheusRangeQueryRequest) WithID(id int64) (MetricsQueryRequest, error) { newRequest := *r @@ -345,6 +349,10 @@ func (r *PrometheusInstantQueryRequest) GetHints() *Hints { return r.hints } +func (r *PrometheusInstantQueryRequest) GetLookbackDelta() time.Duration { + return r.lookbackDelta +} + func (r *PrometheusInstantQueryRequest) WithID(id int64) (MetricsQueryRequest, error) { newRequest := *r newRequest.headers = cloneHeaders(r.headers) diff --git a/pkg/frontend/querymiddleware/remote_read.go b/pkg/frontend/querymiddleware/remote_read.go index 11070ce18d..2cda1d40c7 100644 --- a/pkg/frontend/querymiddleware/remote_read.go +++ b/pkg/frontend/querymiddleware/remote_read.go @@ -11,6 +11,7 @@ import ( "net/http" "net/url" "strconv" + "time" "github.com/golang/snappy" "github.com/opentracing/opentracing-go" @@ -285,6 +286,10 @@ func (r *remoteReadQueryRequest) GetHeaders() []*PrometheusHeader { return nil } +func (r *remoteReadQueryRequest) GetLookbackDelta() time.Duration { + return 0 +} + func (r *remoteReadQueryRequest) WithID(_ int64) (MetricsQueryRequest, error) { return nil, apierror.New(apierror.TypeInternal, "remoteReadQueryRequest.WithID not implemented") }