limiter

package
v0.0.0-...-2ecc15d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddQueryLimiterToContext

func AddQueryLimiterToContext(ctx context.Context, limiter *QueryLimiter) context.Context

func NewMaxChunkBytesHitLimitError

func NewMaxChunkBytesHitLimitError(maxChunkBytesPerQuery uint64) validation.LimitError

func NewMaxChunksPerQueryLimitError

func NewMaxChunksPerQueryLimitError(maxChunksPerQuery uint64) validation.LimitError

func NewMaxEstimatedChunksPerQueryLimitError

func NewMaxEstimatedChunksPerQueryLimitError(maxEstimatedChunksPerQuery uint64) validation.LimitError

func NewMaxEstimatedMemoryConsumptionPerQueryLimitError

func NewMaxEstimatedMemoryConsumptionPerQueryLimitError(maxEstimatedMemoryConsumptionPerQuery uint64) validation.LimitError

func NewMaxSeriesHitLimitError

func NewMaxSeriesHitLimitError(maxSeriesPerQuery uint64) validation.LimitError

Types

type QueryLimiter

type QueryLimiter struct {
	// contains filtered or unexported fields
}

func NewQueryLimiter

func NewQueryLimiter(maxSeriesPerQuery, maxChunkBytesPerQuery, maxChunksPerQuery int, maxEstimatedChunksPerQuery int, queryMetrics *stats.QueryMetrics) *QueryLimiter

NewQueryLimiter makes a new per-query limiter. Each query limiter is configured using the maxSeriesPerQuery, maxChunkBytesPerQuery, maxChunksPerQuery and maxEstimatedChunksPerQuery limits.

func QueryLimiterFromContextWithFallback

func QueryLimiterFromContextWithFallback(ctx context.Context) *QueryLimiter

QueryLimiterFromContextWithFallback returns a QueryLimiter from the current context. If there is not a QueryLimiter on the context it will return a new no-op limiter.

func (*QueryLimiter) AddChunkBytes

func (ql *QueryLimiter) AddChunkBytes(chunkSizeInBytes int) validation.LimitError

AddChunkBytes adds the input chunk size in bytes and returns an error if the limit is reached.

func (*QueryLimiter) AddChunks

func (ql *QueryLimiter) AddChunks(count int) validation.LimitError

func (*QueryLimiter) AddEstimatedChunks

func (ql *QueryLimiter) AddEstimatedChunks(count int) validation.LimitError

func (*QueryLimiter) AddSeries

func (ql *QueryLimiter) AddSeries(seriesLabels labels.Labels) validation.LimitError

AddSeries adds the input series and returns an error if the limit is reached.

type UtilizationBasedLimiter

type UtilizationBasedLimiter struct {
	services.Service
	// contains filtered or unexported fields
}

UtilizationBasedLimiter is a Service offering limiting based on CPU and memory utilization.

The respective CPU and memory utilization limits are configurable.

func NewUtilizationBasedLimiter

func NewUtilizationBasedLimiter(cpuLimit float64, memoryLimit uint64, logCPUSamples bool, logger log.Logger,
	reg prometheus.Registerer) *UtilizationBasedLimiter

NewUtilizationBasedLimiter returns a UtilizationBasedLimiter configured with cpuLimit and memoryLimit.

func (*UtilizationBasedLimiter) LimitingReason

func (l *UtilizationBasedLimiter) LimitingReason() string

LimitingReason returns the current reason for limiting, if any. If an empty string is returned, limiting is disabled.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL