Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/logql/limits.go

49 lines
1.2 KiB

package logql
import (
"context"
"math"
"time"
"github.com/grafana/loki/v3/pkg/util/validation"
)
var (
NoLimits = &fakeLimits{maxSeries: math.MaxInt32}
)
// Limits allow the engine to fetch limits for a given users.
type Limits interface {
MaxQuerySeries(context.Context, string) int
MaxQueryRange(ctx context.Context, userID string) time.Duration
QueryTimeout(context.Context, string) time.Duration
BlockedQueries(context.Context, string) []*validation.BlockedQuery
}
type fakeLimits struct {
maxSeries int
timeout time.Duration
blockedQueries []*validation.BlockedQuery
rangeLimit time.Duration
requiredLabels []string
}
func (f fakeLimits) MaxQuerySeries(_ context.Context, _ string) int {
return f.maxSeries
}
func (f fakeLimits) MaxQueryRange(_ context.Context, _ string) time.Duration {
return f.rangeLimit
}
func (f fakeLimits) QueryTimeout(_ context.Context, _ string) time.Duration {
return f.timeout
}
func (f fakeLimits) BlockedQueries(_ context.Context, _ string) []*validation.BlockedQuery {
return f.blockedQueries
}
func (f fakeLimits) RequiredLabels(_ context.Context, _ string) []string {
return f.requiredLabels
}