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/compactor/deletion/util.go

36 lines
841 B

package deletion
import (
"errors"
"github.com/grafana/loki/v3/pkg/compactor/deletionmode"
"github.com/grafana/loki/v3/pkg/logql/syntax"
)
var (
errInvalidQuery = errors.New("invalid query expression")
)
// parseDeletionQuery checks if the given logQL is valid for deletions
func parseDeletionQuery(query string) (syntax.LogSelectorExpr, error) {
logSelectorExpr, err := syntax.ParseLogSelector(query, false)
if err != nil {
return nil, errInvalidQuery
}
return logSelectorExpr, nil
}
func validDeletionLimit(l Limits, userID string) (bool, error) {
mode, err := deleteModeFromLimits(l, userID)
if err != nil {
return false, err
}
return mode.DeleteEnabled(), nil
}
func deleteModeFromLimits(l Limits, userID string) (deletionmode.Mode, error) {
mode := l.DeletionMode(userID)
return deletionmode.ParseMode(mode)
}