Documentation
¶
Index ¶
- Constants
- Variables
- func SetDefaultLimitsForYAMLUnmarshalling(defaults Limits)
- type ErrStreamRateLimit
- type ExportedLimits
- type FieldDetectorConfig
- type LimitError
- type Limits
- type Overrides
- func (o *Overrides) AllByUserID() map[string]*Limits
- func (o *Overrides) AllowStructuredMetadata(userID string) bool
- func (o *Overrides) BlockIngestionPolicyUntil(userID string, policy string) time.Time
- func (o *Overrides) BlockIngestionStatusCode(userID string) int
- func (o *Overrides) BlockIngestionUntil(userID string) time.Time
- func (o *Overrides) BlockedQueries(_ context.Context, userID string) []*validation.BlockedQuery
- func (o *Overrides) BloomBlockEncoding(userID string) string
- func (o *Overrides) BloomBuildMaxBuilders(userID string) int
- func (o *Overrides) BloomCreationEnabled(userID string) bool
- func (o *Overrides) BloomGatewayEnabled(userID string) bool
- func (o *Overrides) BloomMaxBlockSize(userID string) int
- func (o *Overrides) BloomMaxBloomSize(userID string) int
- func (o *Overrides) BloomPlanningStrategy(userID string) string
- func (o *Overrides) BloomSplitSeriesKeyspaceBy(userID string) int
- func (o *Overrides) BloomTaskMaxRetries(userID string) int
- func (o *Overrides) BloomTaskTargetSeriesChunksSizeBytes(userID string) uint64
- func (o *Overrides) BuilderResponseTimeout(userID string) time.Duration
- func (o *Overrides) CardinalityLimit(userID string) int
- func (o *Overrides) CreationGracePeriod(userID string) time.Duration
- func (o *Overrides) DefaultLimits() *Limits
- func (o *Overrides) DeletionMode(userID string) string
- func (o *Overrides) DiscoverGenericFields(userID string) map[string][]string
- func (o *Overrides) DiscoverLogLevels(userID string) bool
- func (o *Overrides) DiscoverServiceName(userID string) []string
- func (o *Overrides) EnableMultiVariantQueries(userID string) bool
- func (o *Overrides) EnforcedLabels(userID string) []string
- func (o *Overrides) IncrementDuplicateTimestamps(userID string) bool
- func (o *Overrides) IndexGatewayShardSize(userID string) int
- func (o *Overrides) IngesterQuerySplitDuration(userID string) time.Duration
- func (o *Overrides) IngestionBurstSizeBytes(userID string) int
- func (o *Overrides) IngestionPartitionsTenantShardSize(userID string) int
- func (o *Overrides) IngestionRateBytes(userID string) float64
- func (o *Overrides) IngestionRateStrategy() string
- func (o *Overrides) InstantMetricQuerySplitDuration(userID string) time.Duration
- func (o *Overrides) LogLevelFields(userID string) []string
- func (o *Overrides) LogLevelFromJSONMaxDepth(userID string) int
- func (o *Overrides) MaxCacheFreshness(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxChunksPerQuery(userID string) int
- func (o *Overrides) MaxChunksPerQueryFromStore(_ string) int
- func (o *Overrides) MaxConcurrentTailRequests(_ context.Context, userID string) int
- func (o *Overrides) MaxEntriesLimitPerQuery(_ context.Context, userID string) int
- func (o *Overrides) MaxGlobalStreamsPerUser(userID string) int
- func (o *Overrides) MaxLabelNameLength(userID string) int
- func (o *Overrides) MaxLabelNamesPerSeries(userID string) int
- func (o *Overrides) MaxLabelValueLength(userID string) int
- func (o *Overrides) MaxLineSize(userID string) int
- func (o *Overrides) MaxLineSizeTruncate(userID string) bool
- func (o *Overrides) MaxLocalStreamsPerUser(userID string) int
- func (o *Overrides) MaxMetadataCacheFreshness(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxQuerierBytesRead(_ context.Context, userID string) int
- func (o *Overrides) MaxQueriersPerUser(userID string) uint
- func (o *Overrides) MaxQueryBytesRead(_ context.Context, userID string) int
- func (o *Overrides) MaxQueryCapacity(userID string) float64
- func (o *Overrides) MaxQueryLength(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxQueryLookback(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxQueryParallelism(_ context.Context, userID string) int
- func (o *Overrides) MaxQueryRange(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxQuerySeries(_ context.Context, userID string) int
- func (o *Overrides) MaxStatsCacheFreshness(_ context.Context, userID string) time.Duration
- func (o *Overrides) MaxStreamsMatchersPerQuery(_ context.Context, userID string) int
- func (o *Overrides) MaxStructuredMetadataCount(userID string) int
- func (o *Overrides) MaxStructuredMetadataSize(userID string) int
- func (o *Overrides) MetadataQuerySplitDuration(userID string) time.Duration
- func (o *Overrides) MetricAggregationEnabled(userID string) bool
- func (o *Overrides) MinShardingLookback(userID string) time.Duration
- func (o *Overrides) OTLPConfig(userID string) push.OTLPConfig
- func (o *Overrides) PatternIngesterTokenizableJSONFields(userID string) []string
- func (o *Overrides) PatternIngesterTokenizableJSONFieldsAppend(userID string) []string
- func (o *Overrides) PatternIngesterTokenizableJSONFieldsDelete(userID string) []string
- func (o *Overrides) PerStreamRateLimit(userID string) RateLimit
- func (o *Overrides) PoliciesStreamMapping(userID string) PolicyStreamMapping
- func (o *Overrides) PolicyEnforcedLabels(userID string, policy string) []string
- func (o *Overrides) PrefetchBloomBlocks(userID string) bool
- func (o *Overrides) QueryReadyIndexNumDays(userID string) int
- func (o *Overrides) QuerySplitDuration(userID string) time.Duration
- func (o *Overrides) QueryTimeout(_ context.Context, userID string) time.Duration
- func (o *Overrides) RecentMetadataQuerySplitDuration(userID string) time.Duration
- func (o *Overrides) RecentMetadataQueryWindow(userID string) time.Duration
- func (o *Overrides) RejectOldSamples(userID string) bool
- func (o *Overrides) RejectOldSamplesMaxAge(userID string) time.Duration
- func (o *Overrides) RequiredLabels(_ context.Context, userID string) []string
- func (o *Overrides) RequiredNumberLabels(_ context.Context, userID string) int
- func (o *Overrides) RetentionPeriod(userID string) time.Duration
- func (o *Overrides) RulerAlertManagerConfig(userID string) *ruler_config.AlertManagerConfig
- func (o *Overrides) RulerEnableWALReplay(userID string) bool
- func (o *Overrides) RulerMaxRuleGroupsPerTenant(userID string) int
- func (o *Overrides) RulerMaxRulesPerRuleGroup(userID string) int
- func (o *Overrides) RulerRemoteEvaluationMaxResponseSize(userID string) int64
- func (o *Overrides) RulerRemoteEvaluationTimeout(userID string) time.Duration
- func (o *Overrides) RulerRemoteWriteConfig(userID string, id string) *config.RemoteWriteConfig
- func (o *Overrides) RulerRemoteWriteDisabled(userID string) bool
- func (o *Overrides) RulerRemoteWriteHeaders(userID string) map[string]stringdeprecated
- func (o *Overrides) RulerRemoteWriteQueueBatchSendDeadline(userID string) time.Durationdeprecated
- func (o *Overrides) RulerRemoteWriteQueueCapacity(userID string) intdeprecated
- func (o *Overrides) RulerRemoteWriteQueueMaxBackoff(userID string) time.Durationdeprecated
- func (o *Overrides) RulerRemoteWriteQueueMaxSamplesPerSend(userID string) intdeprecated
- func (o *Overrides) RulerRemoteWriteQueueMaxShards(userID string) intdeprecated
- func (o *Overrides) RulerRemoteWriteQueueMinBackoff(userID string) time.Durationdeprecated
- func (o *Overrides) RulerRemoteWriteQueueMinShards(userID string) intdeprecated
- func (o *Overrides) RulerRemoteWriteQueueRetryOnRateLimit(userID string) booldeprecated
- func (o *Overrides) RulerRemoteWriteRelabelConfigs(userID string) []*util.RelabelConfigdeprecated
- func (o *Overrides) RulerRemoteWriteSigV4Config(userID string) *sigv4.SigV4Configdeprecated
- func (o *Overrides) RulerRemoteWriteTimeout(userID string) time.Durationdeprecated
- func (o *Overrides) RulerRemoteWriteURL(userID string) stringdeprecated
- func (o *Overrides) RulerTenantShardSize(userID string) int
- func (o *Overrides) S3SSEKMSEncryptionContext(user string) string
- func (o *Overrides) S3SSEKMSKeyID(user string) string
- func (o *Overrides) S3SSEType(user string) string
- func (o *Overrides) ShardAggregations(userID string) []string
- func (o *Overrides) ShardStreams(userID string) shardstreams.Config
- func (o *Overrides) SimulatedPushLatency(userID string) time.Duration
- func (o *Overrides) StreamRetention(userID string) []StreamRetention
- func (o *Overrides) TSDBMaxBytesPerShard(userID string) int
- func (o *Overrides) TSDBMaxQueryParallelism(_ context.Context, userID string) int
- func (o *Overrides) TSDBPrecomputeChunks(userID string) bool
- func (o *Overrides) TSDBShardingStrategy(userID string) string
- func (o *Overrides) UnorderedWrites(userID string) bool
- func (o *Overrides) UseOwnedStreamCount(userID string) bool
- func (o *Overrides) VolumeEnabled(userID string) bool
- func (o *Overrides) VolumeMaxSeries(userID string) int
- type OverridesExporter
- type OverwriteMarshalingStringMap
- func (sm *OverwriteMarshalingStringMap) Map() map[string]string
- func (sm OverwriteMarshalingStringMap) MarshalJSON() ([]byte, error)
- func (sm OverwriteMarshalingStringMap) MarshalYAML() (interface{}, error)
- func (sm *OverwriteMarshalingStringMap) UnmarshalJSON(val []byte) error
- func (sm *OverwriteMarshalingStringMap) UnmarshalYAML(unmarshal func(interface{}) error) error
- type PolicyStreamMapping
- type PriorityStream
- type RateLimit
- type StreamRetention
- type TenantLimits
Constants ¶
const ( // LocalRateLimitStrat represents a ingestion rate limiting strategy that enforces the limit // on a per distributor basis. // // The actual effective rate limit will be N times higher, where N is the number of distributor replicas. LocalIngestionRateStrategy = "local" // GlobalRateLimitStrat represents a ingestion rate limiting strategy that enforces the rate // limiting globally, configuring a per-distributor local rate limiter as "ingestion_rate / N", // where N is the number of distributor replicas (it's automatically adjusted if the // number of replicas change). // // The global strategy requires the distributors to form their own ring, which // is used to keep track of the current number of healthy distributor replicas. GlobalIngestionRateStrategy = "global" DefaultTSDBMaxBytesPerShard = sharding.DefaultTSDBMaxBytesPerShard DefaultPerTenantQueryTimeout = "1m" )
const ( ReasonLabel = "reason" MissingStreamsErrorMsg = "error at least one valid stream is required for ingestion" // InvalidLabels is a reason for discarding log lines which have labels that cannot be parsed. InvalidLabels = "invalid_labels" MissingLabels = "missing_labels" MissingLabelsErrorMsg = "error at least one label pair is required per stream" InvalidLabelsErrorMsg = "Error parsing labels '%s' with error: %s" // RateLimited is one of the values for the reason to discard samples. // Declared here to avoid duplication in ingester and distributor. RateLimited = "rate_limited" RateLimitedErrorMsg = "" /* 212-byte string literal not displayed */ // LineTooLong is a reason for discarding too long log lines. LineTooLong = "line_too_long" LineTooLongErrorMsg = "Max entry size '%d' bytes exceeded for stream '%s' while adding an entry with length '%d' bytes" // StreamLimit is a reason for discarding lines when we can't create a new stream // because the limit of active streams has been reached. StreamLimit = "stream_limit" StreamLimitErrorMsg = "" /* 229-byte string literal not displayed */ // StreamRateLimit is a reason for discarding lines when the streams own rate limit is hit // rather than the overall ingestion rate limit. StreamRateLimit = "per_stream_rate_limit" // OutOfOrder is a reason for discarding lines when Loki doesn't accept out // of order log lines (parameter `-ingester.unordered-writes` is set to // `false`) and the lines in question are older than the newest line in the // stream. OutOfOrder = "out_of_order" // TooFarBehind is a reason for discarding lines when Loki accepts // unordered ingest (parameter `-ingester.unordered-writes` is set to // `true`, which is the default) and the lines in question are older than // half of `-ingester.max-chunk-age` compared to the newest line in the // stream. TooFarBehind = "too_far_behind" // GreaterThanMaxSampleAge is a reason for discarding log lines which are older than the current time - `reject_old_samples_max_age` GreaterThanMaxSampleAge = "greater_than_max_sample_age" GreaterThanMaxSampleAgeErrorMsg = "entry for stream '%s' has timestamp too old: %v, oldest acceptable timestamp is: %v" // TooFarInFuture is a reason for discarding log lines which are newer than the current time + `creation_grace_period` TooFarInFuture = "too_far_in_future" TooFarInFutureErrorMsg = "entry for stream '%s' has timestamp too new: %v" // MaxLabelNamesPerSeries is a reason for discarding a log line which has too many label names MaxLabelNamesPerSeries = "max_label_names_per_series" MaxLabelNamesPerSeriesErrorMsg = "entry for stream '%s' has %d label names; limit %d" // LabelNameTooLong is a reason for discarding a log line which has a label name too long LabelNameTooLong = "label_name_too_long" LabelNameTooLongErrorMsg = "stream '%s' has label name too long: '%s'" // LabelValueTooLong is a reason for discarding a log line which has a lable value too long LabelValueTooLong = "label_value_too_long" LabelValueTooLongErrorMsg = "stream '%s' has label value too long: '%s'" // DuplicateLabelNames is a reason for discarding a log line which has duplicate label names DuplicateLabelNames = "duplicate_label_names" DuplicateLabelNamesErrorMsg = "stream '%s' has duplicate label name: '%s'" DisallowedStructuredMetadata = "disallowed_structured_metadata" DisallowedStructuredMetadataErrorMsg = "" /* 175-byte string literal not displayed */ StructuredMetadataTooLarge = "structured_metadata_too_large" StructuredMetadataTooLargeErrorMsg = "" /* 184-byte string literal not displayed */ StructuredMetadataTooMany = "structured_metadata_too_many" StructuredMetadataTooManyErrorMsg = "" /* 187-byte string literal not displayed */ BlockedIngestion = "blocked_ingestion" BlockedIngestionErrorMsg = "ingestion blocked for user %s until '%s' with status code '%d'" BlockedIngestionPolicy = "blocked_ingestion_policy" BlockedIngestionPolicyErrorMsg = "ingestion blocked for user %s until '%s' with status code '%d'" MissingEnforcedLabels = "missing_enforced_labels" MissingEnforcedLabelsErrorMsg = "missing required labels %s for user %s for stream %s" )
const (
GlobalPolicy = "*"
)
Variables ¶
var DiscardedBytes = promauto.NewCounterVec( prometheus.CounterOpts{ Namespace: constants.Loki, Name: "discarded_bytes_total", Help: "The total number of bytes that were discarded.", }, []string{ReasonLabel, "tenant", "retention_hours", "policy"}, )
DiscardedBytes is a metric of the total discarded bytes, by reason.
var DiscardedSamples = promauto.NewCounterVec( prometheus.CounterOpts{ Namespace: constants.Loki, Name: "discarded_samples_total", Help: "The total number of samples that were discarded.", }, []string{ReasonLabel, "tenant", "retention_hours", "policy"}, )
DiscardedSamples is a metric of the number of discarded samples, by reason.
var LineLengthHist = promauto.NewHistogram(prometheus.HistogramOpts{ Namespace: constants.Loki, Name: "bytes_per_line", Help: "The total number of bytes per line.", Buckets: prometheus.ExponentialBuckets(1, 8, 8), })
var MutatedBytes = promauto.NewCounterVec( prometheus.CounterOpts{ Namespace: constants.Loki, Name: "mutated_bytes_total", Help: "The total number of bytes that have been mutated.", }, []string{ReasonLabel, "truncated"}, )
MutatedBytes is a metric of the total mutated bytes, by reason.
var MutatedSamples = promauto.NewCounterVec( prometheus.CounterOpts{ Namespace: constants.Loki, Name: "mutated_samples_total", Help: "The total number of samples that have been mutated.", }, []string{ReasonLabel, "truncated"}, )
MutatedSamples is a metric of the total number of lines mutated, by reason.
var Unlimited = RateLimit{ Limit: rate.Inf, Burst: 0, }
Functions ¶
func SetDefaultLimitsForYAMLUnmarshalling ¶
func SetDefaultLimitsForYAMLUnmarshalling(defaults Limits)
SetDefaultLimitsForYAMLUnmarshalling sets global default limits, used when loading Limits from YAML files. This is used to ensure per-tenant limits are defaulted to those values.
Types ¶
type ErrStreamRateLimit ¶
func (*ErrStreamRateLimit) Error ¶
func (e *ErrStreamRateLimit) Error() string
type ExportedLimits ¶
type FieldDetectorConfig ¶ added in v3.4.0
type LimitError ¶
type LimitError string
LimitError are errors that do not comply with the limits specified.
func (LimitError) Error ¶
func (e LimitError) Error() string
type Limits ¶
type Limits struct { // Distributor enforced limits. IngestionRateStrategy string `yaml:"ingestion_rate_strategy" json:"ingestion_rate_strategy"` IngestionRateMB float64 `yaml:"ingestion_rate_mb" json:"ingestion_rate_mb"` IngestionBurstSizeMB float64 `yaml:"ingestion_burst_size_mb" json:"ingestion_burst_size_mb"` MaxLabelNameLength int `yaml:"max_label_name_length" json:"max_label_name_length"` MaxLabelValueLength int `yaml:"max_label_value_length" json:"max_label_value_length"` MaxLabelNamesPerSeries int `yaml:"max_label_names_per_series" json:"max_label_names_per_series"` RejectOldSamples bool `yaml:"reject_old_samples" json:"reject_old_samples"` RejectOldSamplesMaxAge model.Duration `yaml:"reject_old_samples_max_age" json:"reject_old_samples_max_age"` CreationGracePeriod model.Duration `yaml:"creation_grace_period" json:"creation_grace_period"` MaxLineSize flagext.ByteSize `yaml:"max_line_size" json:"max_line_size"` MaxLineSizeTruncate bool `yaml:"max_line_size_truncate" json:"max_line_size_truncate"` IncrementDuplicateTimestamp bool `yaml:"increment_duplicate_timestamp" json:"increment_duplicate_timestamp"` SimulatedPushLatency time.Duration `` /* 160-byte string literal not displayed */ // LogQL engine options EnableMultiVariantQueries bool `yaml:"enable_multi_variant_queries" json:"enable_multi_variant_queries"` // Metadata field extraction DiscoverGenericFields FieldDetectorConfig `` /* 238-byte string literal not displayed */ DiscoverServiceName []string `yaml:"discover_service_name" json:"discover_service_name"` DiscoverLogLevels bool `yaml:"discover_log_levels" json:"discover_log_levels"` LogLevelFields []string `yaml:"log_level_fields" json:"log_level_fields"` LogLevelFromJSONMaxDepth int `yaml:"log_level_from_json_max_depth" json:"log_level_from_json_max_depth"` // Ingester enforced limits. UseOwnedStreamCount bool `yaml:"use_owned_stream_count" json:"use_owned_stream_count"` MaxLocalStreamsPerUser int `yaml:"max_streams_per_user" json:"max_streams_per_user"` MaxGlobalStreamsPerUser int `yaml:"max_global_streams_per_user" json:"max_global_streams_per_user"` UnorderedWrites bool `yaml:"unordered_writes" json:"unordered_writes"` PerStreamRateLimit flagext.ByteSize `yaml:"per_stream_rate_limit" json:"per_stream_rate_limit"` PerStreamRateLimitBurst flagext.ByteSize `yaml:"per_stream_rate_limit_burst" json:"per_stream_rate_limit_burst"` // Querier enforced limits. MaxChunksPerQuery int `yaml:"max_chunks_per_query" json:"max_chunks_per_query"` MaxQuerySeries int `yaml:"max_query_series" json:"max_query_series"` MaxQueryLookback model.Duration `yaml:"max_query_lookback" json:"max_query_lookback"` MaxQueryLength model.Duration `yaml:"max_query_length" json:"max_query_length"` MaxQueryRange model.Duration `yaml:"max_query_range" json:"max_query_range"` MaxQueryParallelism int `yaml:"max_query_parallelism" json:"max_query_parallelism"` TSDBMaxQueryParallelism int `yaml:"tsdb_max_query_parallelism" json:"tsdb_max_query_parallelism"` TSDBMaxBytesPerShard flagext.ByteSize `yaml:"tsdb_max_bytes_per_shard" json:"tsdb_max_bytes_per_shard"` TSDBShardingStrategy string `yaml:"tsdb_sharding_strategy" json:"tsdb_sharding_strategy"` TSDBPrecomputeChunks bool `yaml:"tsdb_precompute_chunks" json:"tsdb_precompute_chunks"` CardinalityLimit int `yaml:"cardinality_limit" json:"cardinality_limit"` MaxStreamsMatchersPerQuery int `yaml:"max_streams_matchers_per_query" json:"max_streams_matchers_per_query"` MaxConcurrentTailRequests int `yaml:"max_concurrent_tail_requests" json:"max_concurrent_tail_requests"` MaxEntriesLimitPerQuery int `yaml:"max_entries_limit_per_query" json:"max_entries_limit_per_query"` MaxCacheFreshness model.Duration `yaml:"max_cache_freshness_per_query" json:"max_cache_freshness_per_query"` MaxMetadataCacheFreshness model.Duration `yaml:"max_metadata_cache_freshness" json:"max_metadata_cache_freshness"` MaxStatsCacheFreshness model.Duration `yaml:"max_stats_cache_freshness" json:"max_stats_cache_freshness"` MaxQueriersPerTenant uint `yaml:"max_queriers_per_tenant" json:"max_queriers_per_tenant"` MaxQueryCapacity float64 `yaml:"max_query_capacity" json:"max_query_capacity"` QueryReadyIndexNumDays int `yaml:"query_ready_index_num_days" json:"query_ready_index_num_days"` QueryTimeout model.Duration `yaml:"query_timeout" json:"query_timeout"` // Query frontend enforced limits. The default is actually parameterized by the queryrange config. QuerySplitDuration model.Duration `yaml:"split_queries_by_interval" json:"split_queries_by_interval"` MetadataQuerySplitDuration model.Duration `yaml:"split_metadata_queries_by_interval" json:"split_metadata_queries_by_interval"` RecentMetadataQuerySplitDuration model.Duration `yaml:"split_recent_metadata_queries_by_interval" json:"split_recent_metadata_queries_by_interval"` RecentMetadataQueryWindow model.Duration `yaml:"recent_metadata_query_window" json:"recent_metadata_query_window"` InstantMetricQuerySplitDuration model.Duration `yaml:"split_instant_metric_queries_by_interval" json:"split_instant_metric_queries_by_interval"` IngesterQuerySplitDuration model.Duration `yaml:"split_ingester_queries_by_interval" json:"split_ingester_queries_by_interval"` MinShardingLookback model.Duration `yaml:"min_sharding_lookback" json:"min_sharding_lookback"` MaxQueryBytesRead flagext.ByteSize `yaml:"max_query_bytes_read" json:"max_query_bytes_read"` MaxQuerierBytesRead flagext.ByteSize `yaml:"max_querier_bytes_read" json:"max_querier_bytes_read"` VolumeEnabled bool `yaml:"volume_enabled" json:"volume_enabled" doc:"description=Enable log-volume endpoints."` VolumeMaxSeries int `` /* 132-byte string literal not displayed */ // Ruler defaults and limits. RulerMaxRulesPerRuleGroup int `yaml:"ruler_max_rules_per_rule_group" json:"ruler_max_rules_per_rule_group"` RulerMaxRuleGroupsPerTenant int `yaml:"ruler_max_rule_groups_per_tenant" json:"ruler_max_rule_groups_per_tenant"` RulerAlertManagerConfig *ruler_config.AlertManagerConfig `yaml:"ruler_alertmanager_config" json:"ruler_alertmanager_config" doc:"hidden"` RulerTenantShardSize int `yaml:"ruler_tenant_shard_size" json:"ruler_tenant_shard_size"` RulerEnableWALReplay bool `` /* 229-byte string literal not displayed */ // this field is the inversion of the general remote_write.enabled because the zero value of a boolean is false, // and if it were ruler_remote_write_enabled, it would be impossible to know if the value was explicitly set or default RulerRemoteWriteDisabled bool `yaml:"ruler_remote_write_disabled" json:"ruler_remote_write_disabled" doc:"description=Disable recording rules remote-write."` // deprecated use RulerRemoteWriteConfig instead. RulerRemoteWriteURL string `` /* 173-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteTimeout time.Duration `` /* 188-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteHeaders OverwriteMarshalingStringMap `` /* 278-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteRelabelConfigs []*util.RelabelConfig `` /* 218-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueCapacity int `` /* 398-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueMinShards int `` /* 209-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueMaxShards int `` /* 209-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueMaxSamplesPerSend int `` /* 211-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueBatchSendDeadline time.Duration `` /* 216-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueMinBackoff time.Duration `` /* 208-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueMaxBackoff time.Duration `` /* 178-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteQueueRetryOnRateLimit bool `` /* 294-byte string literal not displayed */ // deprecated use RulerRemoteWriteConfig instead RulerRemoteWriteSigV4Config *sigv4.SigV4Config `` /* 241-byte string literal not displayed */ RulerRemoteWriteConfig map[string]config.RemoteWriteConfig `` /* 205-byte string literal not displayed */ // TODO(dannyk): possible enhancement is to align this with rule group interval RulerRemoteEvaluationTimeout time.Duration `` /* 183-byte string literal not displayed */ RulerRemoteEvaluationMaxResponseSize int64 `` /* 248-byte string literal not displayed */ // Global and per tenant deletion mode DeletionMode string `yaml:"deletion_mode" json:"deletion_mode"` // Global and per tenant retention RetentionPeriod model.Duration `yaml:"retention_period" json:"retention_period"` StreamRetention []StreamRetention `` /* 570-byte string literal not displayed */ // Config for overrides, convenient if it goes here. PerTenantOverrideConfig string `yaml:"per_tenant_override_config" json:"per_tenant_override_config"` PerTenantOverridePeriod model.Duration `yaml:"per_tenant_override_period" json:"per_tenant_override_period"` // Deprecated CompactorDeletionEnabled bool `yaml:"allow_deletes" json:"allow_deletes" doc:"deprecated|description=Use deletion_mode per tenant configuration instead."` ShardStreams shardstreams.Config `yaml:"shard_streams" json:"shard_streams" doc:"description=Define streams sharding behavior."` BlockedQueries []*validation.BlockedQuery `yaml:"blocked_queries,omitempty" json:"blocked_queries,omitempty"` RequiredLabels []string `` /* 126-byte string literal not displayed */ RequiredNumberLabels int `` /* 152-byte string literal not displayed */ IndexGatewayShardSize int `yaml:"index_gateway_shard_size" json:"index_gateway_shard_size"` BloomGatewayEnabled bool `yaml:"bloom_gateway_enable_filtering" json:"bloom_gateway_enable_filtering" category:"experimental"` BloomBuildMaxBuilders int `yaml:"bloom_build_max_builders" json:"bloom_build_max_builders" category:"experimental"` BloomBuildTaskMaxRetries int `yaml:"bloom_build_task_max_retries" json:"bloom_build_task_max_retries" category:"experimental"` BloomBuilderResponseTimeout time.Duration `yaml:"bloom_build_builder_response_timeout" json:"bloom_build_builder_response_timeout" category:"experimental"` BloomCreationEnabled bool `yaml:"bloom_creation_enabled" json:"bloom_creation_enabled" category:"experimental"` BloomPlanningStrategy string `yaml:"bloom_planning_strategy" json:"bloom_planning_strategy" category:"experimental"` BloomSplitSeriesKeyspaceBy int `yaml:"bloom_split_series_keyspace_by" json:"bloom_split_series_keyspace_by" category:"experimental"` BloomTaskTargetSeriesChunkSize flagext.ByteSize `yaml:"bloom_task_target_series_chunk_size" json:"bloom_task_target_series_chunk_size" category:"experimental"` BloomBlockEncoding string `yaml:"bloom_block_encoding" json:"bloom_block_encoding" category:"experimental"` BloomPrefetchBlocks bool `yaml:"bloom_prefetch_blocks" json:"bloom_prefetch_blocks" category:"experimental"` BloomMaxBlockSize flagext.ByteSize `yaml:"bloom_max_block_size" json:"bloom_max_block_size" category:"experimental"` BloomMaxBloomSize flagext.ByteSize `yaml:"bloom_max_bloom_size" json:"bloom_max_bloom_size" category:"experimental"` AllowStructuredMetadata bool `` /* 159-byte string literal not displayed */ MaxStructuredMetadataSize flagext.ByteSize `` /* 149-byte string literal not displayed */ MaxStructuredMetadataEntriesCount int `` /* 167-byte string literal not displayed */ OTLPConfig push.OTLPConfig `yaml:"otlp_config" json:"otlp_config" doc:"description=OTLP log ingestion configurations"` GlobalOTLPConfig push.GlobalOTLPConfig `yaml:"-" json:"-"` BlockIngestionPolicyUntil map[string]dskit_flagext.Time `` /* 401-byte string literal not displayed */ BlockIngestionUntil dskit_flagext.Time `yaml:"block_ingestion_until" json:"block_ingestion_until" category:"experimental"` BlockIngestionStatusCode int `yaml:"block_ingestion_status_code" json:"block_ingestion_status_code"` EnforcedLabels []string `yaml:"enforced_labels" json:"enforced_labels" category:"experimental"` PolicyEnforcedLabels map[string][]string `` /* 388-byte string literal not displayed */ PolicyStreamMapping PolicyStreamMapping `` /* 464-byte string literal not displayed */ IngestionPartitionsTenantShardSize int `yaml:"ingestion_partitions_tenant_shard_size" json:"ingestion_partitions_tenant_shard_size" category:"experimental"` ShardAggregations []string `` /* 157-byte string literal not displayed */ PatternIngesterTokenizableJSONFieldsDefault dskit_flagext.StringSliceCSV `yaml:"pattern_ingester_tokenizable_json_fields_default" json:"pattern_ingester_tokenizable_json_fields_default" doc:"hidden"` PatternIngesterTokenizableJSONFieldsAppend dskit_flagext.StringSliceCSV `yaml:"pattern_ingester_tokenizable_json_fields_append" json:"pattern_ingester_tokenizable_json_fields_append" doc:"hidden"` PatternIngesterTokenizableJSONFieldsDelete dskit_flagext.StringSliceCSV `yaml:"pattern_ingester_tokenizable_json_fields_delete" json:"pattern_ingester_tokenizable_json_fields_delete" doc:"hidden"` MetricAggregationEnabled bool `yaml:"metric_aggregation_enabled" json:"metric_aggregation_enabled"` // This config doesn't have a CLI flag registered here because they're registered in // their own original config struct. S3SSEType string `` /* 221-byte string literal not displayed */ S3SSEKMSKeyID string `` /* 156-byte string literal not displayed */ S3SSEKMSEncryptionContext string `` /* 284-byte string literal not displayed */ }
Limits describe all the limits for users; can be used to describe global default limits via flags, or per-user limits via yaml config. NOTE: we use custom `model.Duration` instead of standard `time.Duration` because, to support user-friendly duration format (e.g: "1h30m45s") in JSON value.
func (*Limits) RegisterFlags ¶
RegisterFlags adds the flags required to config this to the given FlagSet
func (*Limits) SetGlobalOTLPConfig ¶
func (l *Limits) SetGlobalOTLPConfig(cfg push.GlobalOTLPConfig)
SetGlobalOTLPConfig set GlobalOTLPConfig which is used while unmarshaling per-tenant otlp config to use the default list of resource attributes picked as index labels.
func (*Limits) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Overrides ¶
type Overrides struct {
// contains filtered or unexported fields
}
Overrides periodically fetch a set of per-user overrides, and provides convenience functions for fetching the correct value.
func NewOverrides ¶
func NewOverrides(defaults Limits, tenantLimits TenantLimits) (*Overrides, error)
NewOverrides makes a new Overrides.
func (*Overrides) AllByUserID ¶
func (*Overrides) AllowStructuredMetadata ¶
func (*Overrides) BlockIngestionPolicyUntil ¶ added in v3.5.0
BlockIngestionPolicyUntil returns the time until the ingestion policy is blocked for a given user. Order of priority is: named policy block > global policy block. The global policy block is enforced only if the policy is empty.
func (*Overrides) BlockIngestionStatusCode ¶ added in v3.2.0
func (*Overrides) BlockIngestionUntil ¶ added in v3.2.0
func (*Overrides) BlockedQueries ¶
func (o *Overrides) BlockedQueries(_ context.Context, userID string) []*validation.BlockedQuery
func (*Overrides) BloomBlockEncoding ¶
func (*Overrides) BloomBuildMaxBuilders ¶ added in v3.1.0
func (*Overrides) BloomCreationEnabled ¶ added in v3.1.0
func (*Overrides) BloomGatewayEnabled ¶
func (*Overrides) BloomMaxBlockSize ¶ added in v3.2.0
func (*Overrides) BloomMaxBloomSize ¶ added in v3.2.0
func (*Overrides) BloomPlanningStrategy ¶ added in v3.3.0
func (*Overrides) BloomSplitSeriesKeyspaceBy ¶ added in v3.1.0
func (*Overrides) BloomTaskMaxRetries ¶ added in v3.1.0
func (*Overrides) BloomTaskTargetSeriesChunksSizeBytes ¶ added in v3.3.0
func (*Overrides) BuilderResponseTimeout ¶ added in v3.1.0
func (*Overrides) CardinalityLimit ¶
CardinalityLimit whether to enforce the presence of a metric name.
func (*Overrides) CreationGracePeriod ¶
CreationGracePeriod is misnamed, and actually returns how far into the future we should accept samples.
func (*Overrides) DefaultLimits ¶
func (*Overrides) DeletionMode ¶
func (*Overrides) DiscoverGenericFields ¶ added in v3.4.0
func (*Overrides) DiscoverLogLevels ¶
func (*Overrides) DiscoverServiceName ¶
func (*Overrides) EnableMultiVariantQueries ¶ added in v3.5.0
func (*Overrides) EnforcedLabels ¶ added in v3.4.0
func (*Overrides) IncrementDuplicateTimestamps ¶
func (*Overrides) IndexGatewayShardSize ¶
func (*Overrides) IngesterQuerySplitDuration ¶
IngesterQuerySplitDuration returns the tenant specific splitby interval applied in the query frontend when querying during the `query_ingesters_within` window.
func (*Overrides) IngestionBurstSizeBytes ¶
IngestionBurstSizeBytes returns the burst size for ingestion rate.
func (*Overrides) IngestionPartitionsTenantShardSize ¶ added in v3.3.0
func (*Overrides) IngestionRateBytes ¶
IngestionRateBytes returns the limit on ingester rate (MBs per second).
func (*Overrides) IngestionRateStrategy ¶
IngestionRateStrategy returns whether the ingestion rate limit should be individually applied to each distributor instance (local) or evenly shared across the cluster (global).
func (*Overrides) InstantMetricQuerySplitDuration ¶
InstantMetricQuerySplitDuration returns the tenant specific instant metric queries splitby interval applied in the query frontend.
func (*Overrides) LogLevelFields ¶ added in v3.4.0
func (*Overrides) LogLevelFromJSONMaxDepth ¶ added in v3.5.0
func (*Overrides) MaxCacheFreshness ¶
func (*Overrides) MaxChunksPerQuery ¶
MaxChunksPerQuery returns the maximum number of chunks allowed per query.
func (*Overrides) MaxChunksPerQueryFromStore ¶
Compatibility with Cortex interface, this method is set to be removed in 1.12, so nooping in Loki until then.
func (*Overrides) MaxConcurrentTailRequests ¶
MaxConcurrentTailRequests returns the limit to number of concurrent tail requests.
func (*Overrides) MaxEntriesLimitPerQuery ¶
MaxEntriesLimitPerQuery returns the limit to number of entries the querier should return per query.
func (*Overrides) MaxGlobalStreamsPerUser ¶
MaxGlobalStreamsPerUser returns the maximum number of streams a user is allowed to store across the cluster.
func (*Overrides) MaxLabelNameLength ¶
MaxLabelNameLength returns maximum length a label name can be.
func (*Overrides) MaxLabelNamesPerSeries ¶
MaxLabelNamesPerSeries returns maximum number of label/value pairs timeseries.
func (*Overrides) MaxLabelValueLength ¶
MaxLabelValueLength returns maximum length a label value can be. This also is the maximum length of a metric name.
func (*Overrides) MaxLineSize ¶
MaxLineSize returns the maximum size in bytes the distributor should allow.
func (*Overrides) MaxLineSizeTruncate ¶
MaxLineSizeTruncate returns whether lines longer than max should be truncated.
func (*Overrides) MaxLocalStreamsPerUser ¶
MaxLocalStreamsPerUser returns the maximum number of streams a user is allowed to store in a single ingester.
func (*Overrides) MaxMetadataCacheFreshness ¶
func (*Overrides) MaxQuerierBytesRead ¶
MaxQuerierBytesRead returns the maximum bytes a sub query can read after splitting and sharding.
func (*Overrides) MaxQueriersPerUser ¶
MaxQueriersPerUser returns the maximum number of queriers that can handle requests for this user.
func (*Overrides) MaxQueryBytesRead ¶
MaxQueryBytesRead returns the maximum bytes a query can read.
func (*Overrides) MaxQueryCapacity ¶
MaxQueryCapacity returns how much of the available query capacity can be used by this user..
func (*Overrides) MaxQueryLength ¶
MaxQueryLength returns the limit of the length (in time) of a query.
func (*Overrides) MaxQueryLookback ¶
MaxQueryLookback returns the max lookback period of queries.
func (*Overrides) MaxQueryParallelism ¶
MaxQueryParallelism returns the limit to the number of sub-queries the frontend will process in parallel.
func (*Overrides) MaxQueryRange ¶
MaxQueryRange returns the limit for the max [range] value that can be in a range query
func (*Overrides) MaxQuerySeries ¶
MaxQuerySeries returns the limit of the series of metric queries.
func (*Overrides) MaxStatsCacheFreshness ¶
func (*Overrides) MaxStreamsMatchersPerQuery ¶
MaxStreamsMatchersPerQuery returns the limit to number of streams matchers per query.
func (*Overrides) MaxStructuredMetadataCount ¶
func (*Overrides) MaxStructuredMetadataSize ¶
func (*Overrides) MetadataQuerySplitDuration ¶
MetadataQuerySplitDuration returns the tenant specific metadata splitby interval applied in the query frontend.
func (*Overrides) MetricAggregationEnabled ¶ added in v3.3.0
func (*Overrides) MinShardingLookback ¶
MinShardingLookback returns the tenant specific min sharding lookback (e.g from when we should start sharding).
func (*Overrides) OTLPConfig ¶
func (o *Overrides) OTLPConfig(userID string) push.OTLPConfig
func (*Overrides) PatternIngesterTokenizableJSONFields ¶ added in v3.3.0
func (*Overrides) PatternIngesterTokenizableJSONFieldsAppend ¶ added in v3.3.0
func (*Overrides) PatternIngesterTokenizableJSONFieldsDelete ¶ added in v3.3.0
func (*Overrides) PerStreamRateLimit ¶
func (*Overrides) PoliciesStreamMapping ¶ added in v3.5.0
func (o *Overrides) PoliciesStreamMapping(userID string) PolicyStreamMapping
func (*Overrides) PolicyEnforcedLabels ¶ added in v3.5.0
PolicyEnforcedLabels returns the labels enforced by the policy for a given user. The output is the union of the global and policy specific labels.
func (*Overrides) PrefetchBloomBlocks ¶ added in v3.4.0
func (*Overrides) QueryReadyIndexNumDays ¶
QueryReadyIndexNumDays returns the number of days for which we have to be query ready for a user.
func (*Overrides) QuerySplitDuration ¶
QuerySplitDuration returns the tenant specific splitby interval applied in the query frontend.
func (*Overrides) QueryTimeout ¶
func (*Overrides) RecentMetadataQuerySplitDuration ¶
RecentMetadataQuerySplitDuration returns the tenant specific splitby interval for recent metadata queries.
func (*Overrides) RecentMetadataQueryWindow ¶
RecentMetadataQueryWindow returns the tenant specific time window used to determine recent metadata queries.
func (*Overrides) RejectOldSamples ¶
RejectOldSamples returns true when we should reject samples older than certain age.
func (*Overrides) RejectOldSamplesMaxAge ¶
RejectOldSamplesMaxAge returns the age at which samples should be rejected.
func (*Overrides) RequiredLabels ¶
func (*Overrides) RequiredNumberLabels ¶
func (*Overrides) RetentionPeriod ¶
RetentionPeriod returns the retention period for a given user.
func (*Overrides) RulerAlertManagerConfig ¶
func (o *Overrides) RulerAlertManagerConfig(userID string) *ruler_config.AlertManagerConfig
RulerAlertManagerConfig returns the alertmanager configurations to use for a given user.
func (*Overrides) RulerEnableWALReplay ¶ added in v3.5.0
RulerEnableWALReplay returns whether WAL replay is enabled for a given user.
func (*Overrides) RulerMaxRuleGroupsPerTenant ¶
RulerMaxRuleGroupsPerTenant returns the maximum number of rule groups for a given user.
func (*Overrides) RulerMaxRulesPerRuleGroup ¶
RulerMaxRulesPerRuleGroup returns the maximum number of rules per rule group for a given user.
func (*Overrides) RulerRemoteEvaluationMaxResponseSize ¶
RulerRemoteEvaluationMaxResponseSize returns the maximum allowable response size from a remote rule evaluation for a given user.
func (*Overrides) RulerRemoteEvaluationTimeout ¶
RulerRemoteEvaluationTimeout returns the duration after which to timeout a remote rule evaluation request for a given user.
func (*Overrides) RulerRemoteWriteConfig ¶
func (o *Overrides) RulerRemoteWriteConfig(userID string, id string) *config.RemoteWriteConfig
RulerRemoteWriteConfig returns the remote-write configurations to use for a given user and a given remote client.
func (*Overrides) RulerRemoteWriteDisabled ¶
RulerRemoteWriteDisabled returns whether remote-write is disabled for a given user or not.
func (*Overrides) RulerRemoteWriteHeaders
deprecated
func (*Overrides) RulerRemoteWriteQueueBatchSendDeadline
deprecated
func (*Overrides) RulerRemoteWriteQueueCapacity
deprecated
func (*Overrides) RulerRemoteWriteQueueMaxBackoff
deprecated
func (*Overrides) RulerRemoteWriteQueueMaxSamplesPerSend
deprecated
func (*Overrides) RulerRemoteWriteQueueMaxShards
deprecated
func (*Overrides) RulerRemoteWriteQueueMinBackoff
deprecated
func (*Overrides) RulerRemoteWriteQueueMinShards
deprecated
func (*Overrides) RulerRemoteWriteQueueRetryOnRateLimit
deprecated
func (*Overrides) RulerRemoteWriteRelabelConfigs
deprecated
func (o *Overrides) RulerRemoteWriteRelabelConfigs(userID string) []*util.RelabelConfig
Deprecated: use RulerRemoteWriteConfig instead RulerRemoteWriteRelabelConfigs returns the write relabel configs to use in a remote-write for a given user.
func (*Overrides) RulerRemoteWriteSigV4Config
deprecated
func (o *Overrides) RulerRemoteWriteSigV4Config(userID string) *sigv4.SigV4Config
Deprecated: use RulerRemoteWriteConfig instead
func (*Overrides) RulerRemoteWriteTimeout
deprecated
func (*Overrides) RulerRemoteWriteURL
deprecated
func (*Overrides) RulerTenantShardSize ¶
RulerTenantShardSize returns shard size (number of rulers) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) S3SSEKMSEncryptionContext ¶ added in v3.3.0
S3SSEKMSEncryptionContext returns the per-tenant S3 KMS-SSE encryption context.
func (*Overrides) S3SSEKMSKeyID ¶ added in v3.3.0
S3SSEKMSKeyID returns the per-tenant S3 KMS-SSE key id.
func (*Overrides) ShardAggregations ¶ added in v3.3.0
func (*Overrides) ShardStreams ¶
func (o *Overrides) ShardStreams(userID string) shardstreams.Config
func (*Overrides) SimulatedPushLatency ¶ added in v3.5.0
func (*Overrides) StreamRetention ¶
func (o *Overrides) StreamRetention(userID string) []StreamRetention
StreamRetention returns the retention period for a given user.
func (*Overrides) TSDBMaxBytesPerShard ¶
TSDBMaxBytesPerShard returns the maximum number of bytes assigned to a specific shard in a tsdb query
func (*Overrides) TSDBMaxQueryParallelism ¶
TSDBMaxQueryParallelism returns the limit to the number of sub-queries the frontend will process in parallel for TSDB schemas.
func (*Overrides) TSDBPrecomputeChunks ¶ added in v3.1.0
func (*Overrides) TSDBShardingStrategy ¶
TSDBShardingStrategy returns the sharding strategy to use in query planning.
func (*Overrides) UnorderedWrites ¶
func (*Overrides) UseOwnedStreamCount ¶ added in v3.1.0
func (*Overrides) VolumeEnabled ¶
VolumeEnabled returns whether volume endpoints are enabled for a user.
func (*Overrides) VolumeMaxSeries ¶
type OverridesExporter ¶
type OverridesExporter struct {
// contains filtered or unexported fields
}
func NewOverridesExporter ¶
func NewOverridesExporter(overrides ExportedLimits) *OverridesExporter
TODO(jordanrushing): break out overrides from defaults?
func (*OverridesExporter) Collect ¶
func (oe *OverridesExporter) Collect(ch chan<- prometheus.Metric)
func (*OverridesExporter) Describe ¶
func (oe *OverridesExporter) Describe(ch chan<- *prometheus.Desc)
type OverwriteMarshalingStringMap ¶
type OverwriteMarshalingStringMap struct {
// contains filtered or unexported fields
}
OverwriteMarshalingStringMap will overwrite the src map when unmarshaling as opposed to merging.
func NewOverwriteMarshalingStringMap ¶
func NewOverwriteMarshalingStringMap(m map[string]string) OverwriteMarshalingStringMap
func (*OverwriteMarshalingStringMap) Map ¶
func (sm *OverwriteMarshalingStringMap) Map() map[string]string
func (OverwriteMarshalingStringMap) MarshalJSON ¶
func (sm OverwriteMarshalingStringMap) MarshalJSON() ([]byte, error)
MarshalJSON explicitly uses the the type receiver and not pointer receiver or it won't be called
func (OverwriteMarshalingStringMap) MarshalYAML ¶
func (sm OverwriteMarshalingStringMap) MarshalYAML() (interface{}, error)
MarshalYAML explicitly uses the the type receiver and not pointer receiver or it won't be called
func (*OverwriteMarshalingStringMap) UnmarshalJSON ¶
func (sm *OverwriteMarshalingStringMap) UnmarshalJSON(val []byte) error
func (*OverwriteMarshalingStringMap) UnmarshalYAML ¶
func (sm *OverwriteMarshalingStringMap) UnmarshalYAML(unmarshal func(interface{}) error) error
type PolicyStreamMapping ¶ added in v3.5.0
type PolicyStreamMapping map[string][]*PriorityStream
func (*PolicyStreamMapping) PolicyFor ¶ added in v3.5.0
func (p *PolicyStreamMapping) PolicyFor(lbs labels.Labels) []string
PolicyFor returns all the policies that matches the given labels with the highest priority. Note that this method will return multiple policies if two different policies match the same labels with the same priority. Returned policies are sorted alphabetically. If no policies match, it returns an empty slice.
func (*PolicyStreamMapping) Validate ¶ added in v3.5.0
func (p *PolicyStreamMapping) Validate() error
type PriorityStream ¶ added in v3.5.0
type PriorityStream struct { Priority int `yaml:"priority" json:"priority" doc:"description=The bigger the value, the higher the priority."` Selector string `yaml:"selector" json:"selector" doc:"description=Stream selector expression."` Matchers []*labels.Matcher `yaml:"-" json:"-"` // populated during validation. }
type RateLimit ¶
RateLimit is a colocated limit & burst config. It largely exists to eliminate accidental misconfigurations due to race conditions when requesting the limit & burst config sequentially, between which the Limits configuration may have updated.
type StreamRetention ¶
type StreamRetention struct { Period model.Duration `yaml:"period" json:"period" doc:"description:Retention period applied to the log lines matching the selector."` Priority int `yaml:"priority" json:"priority" doc:"description:The larger the value, the higher the priority."` Selector string `yaml:"selector" json:"selector" doc:"description:Stream selector expression."` Matchers []*labels.Matcher `yaml:"-" json:"-"` // populated during validation. }