Documentation
¶
Index ¶
- Constants
- func DeletePerUserValidationMetrics(validateMetrics *ValidateMetrics, userID string, log log.Logger)
- func ExtractNumericalValues(l *Limits) map[string]float64
- func IsLimitError(e error) bool
- func MaxDurationPerTenant(tenantIDs []string, f func(string) time.Duration) time.Duration
- func SetDefaultLimitsForYAMLUnmarshalling(defaults Limits)
- func SmallestPositiveIntPerTenant(tenantIDs []string, f func(string) int) int
- func SmallestPositiveNonZeroDurationPerTenant(tenantIDs []string, f func(string) time.Duration) time.Duration
- func SmallestPositiveNonZeroFloat64PerTenant(tenantIDs []string, f func(string) float64) float64
- func ValidateMetadata(validateMetrics *ValidateMetrics, cfg *Limits, userID string, ...) error
- func ValidateNativeHistogram(validateMetrics *ValidateMetrics, limits *Limits, userID string, ...) (cortexpb.Histogram, error)
- type AccessDeniedError
- type DisabledRuleGroup
- type DisabledRuleGroups
- type LimitError
- type Limits
- type LimitsPerLabelSet
- type LimitsPerLabelSetEntry
- type NotificationRateLimitMap
- type Overrides
- func (o *Overrides) AcceptHASamples(userID string) bool
- func (o *Overrides) AcceptMixedHASamples(userID string) bool
- func (o *Overrides) AlertmanagerMaxAlertsCount(userID string) int
- func (o *Overrides) AlertmanagerMaxAlertsSizeBytes(userID string) int
- func (o *Overrides) AlertmanagerMaxConfigSize(userID string) int
- func (o *Overrides) AlertmanagerMaxDispatcherAggregationGroups(userID string) int
- func (o *Overrides) AlertmanagerMaxSilenceSizeBytes(userID string) int
- func (o *Overrides) AlertmanagerMaxSilencesCount(userID string) int
- func (o *Overrides) AlertmanagerMaxTemplateSize(userID string) int
- func (o *Overrides) AlertmanagerMaxTemplatesCount(userID string) int
- func (o *Overrides) AlertmanagerReceiversBlockCIDRNetworks(user string) []flagext.CIDR
- func (o *Overrides) AlertmanagerReceiversBlockPrivateAddresses(user string) bool
- func (o *Overrides) CompactorBlocksRetentionPeriod(userID string) time.Duration
- func (o *Overrides) CompactorPartitionIndexSizeBytes(userID string) int64
- func (o *Overrides) CompactorPartitionSeriesCount(userID string) int64
- func (o *Overrides) CompactorTenantShardSize(userID string) float64
- func (o *Overrides) CreationGracePeriod(userID string) time.Duration
- func (o *Overrides) DisabledRuleGroups(userID string) DisabledRuleGroups
- func (o *Overrides) DropLabels(userID string) flagext.StringSlice
- func (o *Overrides) EnableNativeHistograms(userID string) bool
- func (o *Overrides) EnableTypeAndUnitLabels(userID string) bool
- func (o *Overrides) EnforceMetadataMetricName(userID string) bool
- func (o *Overrides) EnforceMetricName(userID string) bool
- func (o *Overrides) GetOverridesForUser(userID string) *Limits
- func (o *Overrides) HAClusterLabel(userID string) string
- func (o *Overrides) HAReplicaLabel(userID string) string
- func (o *Overrides) IngestionBurstSize(userID string) int
- func (o *Overrides) IngestionRate(userID string) float64
- func (o *Overrides) IngestionRateStrategy() string
- func (o *Overrides) IngestionTenantShardSize(userID string) int
- func (o *Overrides) LimitsPerLabelSet(userID string) []LimitsPerLabelSet
- func (o *Overrides) MaxCacheFreshness(userID string) time.Duration
- func (o *Overrides) MaxChunksPerQuery(userID string) int
- func (o *Overrides) MaxChunksPerQueryFromStore(userID string) int
- func (o *Overrides) MaxDownloadedBytesPerRequest(userID string) int
- func (o *Overrides) MaxExemplars(userID string) int
- func (o *Overrides) MaxFetchedChunkBytesPerQuery(userID string) int
- func (o *Overrides) MaxFetchedDataBytesPerQuery(userID string) int
- func (o *Overrides) MaxFetchedSeriesPerQuery(userID string) int
- func (o *Overrides) MaxGlobalMetadataPerMetric(userID string) int
- func (o *Overrides) MaxGlobalMetricsWithMetadataPerUser(userID string) int
- func (o *Overrides) MaxGlobalNativeHistogramSeriesPerUser(userID string) int
- func (o *Overrides) MaxGlobalSeriesPerMetric(userID string) int
- func (o *Overrides) MaxGlobalSeriesPerUser(userID string) int
- func (o *Overrides) MaxHAReplicaGroups(user string) int
- func (o *Overrides) MaxLabelCardinalityForUnoptimizedRegex(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) MaxLabelsSizeBytes(userID string) int
- func (o *Overrides) MaxLocalMetadataPerMetric(userID string) int
- func (o *Overrides) MaxLocalMetricsWithMetadataPerUser(userID string) int
- func (o *Overrides) MaxLocalNativeHistogramSeriesPerUser(userID string) int
- func (o *Overrides) MaxLocalSeriesPerMetric(userID string) int
- func (o *Overrides) MaxLocalSeriesPerUser(userID string) int
- func (o *Overrides) MaxMetadataLength(userID string) int
- func (o *Overrides) MaxNativeHistogramBuckets(userID string) int
- func (o *Overrides) MaxOutstandingPerTenant(userID string) int
- func (o *Overrides) MaxQueriersPerUser(userID string) float64
- func (o *Overrides) MaxQueryLength(userID string) time.Duration
- func (o *Overrides) MaxQueryLookback(userID string) time.Duration
- func (o *Overrides) MaxQueryParallelism(userID string) int
- func (o *Overrides) MaxQueryResponseSize(userID string) int64
- func (o *Overrides) MaxRegexPatternLength(userID string) int
- func (o *Overrides) MaxTotalLabelValueLengthForUnoptimizedRegex(userID string) int
- func (o *Overrides) MetricRelabelConfigs(userID string) []*relabel.Config
- func (o *Overrides) NativeHistogramIngestionBurstSize(userID string) int
- func (o *Overrides) NativeHistogramIngestionRate(userID string) float64
- func (o *Overrides) NotificationBurstSize(user string, integration string) int
- func (o *Overrides) NotificationRateLimit(user string, integration string) rate.Limit
- func (o *Overrides) OutOfOrderTimeWindow(userID string) model.Duration
- func (o *Overrides) ParquetConverterEnabled(userID string) bool
- func (o *Overrides) ParquetConverterSortColumns(userID string) []string
- func (o *Overrides) ParquetConverterTenantShardSize(userID string) float64
- func (o *Overrides) ParquetMaxFetchedChunkBytes(userID string) int
- func (o *Overrides) ParquetMaxFetchedDataBytes(userID string) int
- func (o *Overrides) ParquetMaxFetchedRowCount(userID string) int
- func (o *Overrides) PromoteResourceAttributes(userID string) []string
- func (o *Overrides) QueryPartialData(userID string) bool
- func (o *Overrides) QueryPriority(userID string) QueryPriority
- func (o *Overrides) QueryRejection(userID string) QueryRejection
- func (o *Overrides) QueryVerticalShardSize(userID string) int
- func (o *Overrides) RejectOldSamples(userID string) bool
- func (o *Overrides) RejectOldSamplesMaxAge(userID string) time.Duration
- func (o *Overrides) RulerExternalLabels(userID string) labels.Labels
- func (o *Overrides) RulerMaxRuleGroupsPerTenant(userID string) int
- func (o *Overrides) RulerMaxRulesPerRuleGroup(userID string) int
- func (o *Overrides) RulerQueryOffset(userID string) time.Duration
- func (o *Overrides) RulerTenantShardSize(userID string) float64
- func (o *Overrides) RulesPartialData(userID string) bool
- func (o *Overrides) S3SSEKMSEncryptionContext(user string) string
- func (o *Overrides) S3SSEKMSKeyID(user string) string
- func (o *Overrides) S3SSEType(user string) string
- func (o *Overrides) StoreGatewayTenantShardSize(userID string) float64
- type OverridesExporter
- type PriorityDef
- type QueryAttribute
- type QueryPriority
- type QueryRejection
- type QueryStepLimit
- type TenantLimits
- type TimeRangeLimit
- type TimeWindow
- type ValidateMetrics
- type ValidationError
- func ValidateExemplar(validateMetrics *ValidateMetrics, userID string, ls []cortexpb.LabelAdapter, ...) ValidationError
- func ValidateLabels(validateMetrics *ValidateMetrics, limits *Limits, userID string, ...) ValidationError
- func ValidateMetricName(limits *Limits, ls []cortexpb.LabelAdapter, ...) (ValidationError, string)
- func ValidateSampleTimestamp(validateMetrics *ValidateMetrics, limits *Limits, userID string, ...) ValidationError
Constants ¶
const ( LocalIngestionRateStrategy = "local" GlobalIngestionRateStrategy = "global" )
Supported values for enum limits
const ( // ErrQueryTooLong is used in chunk store, querier and query frontend. ErrQueryTooLong = "the query time range exceeds the limit (query length: %s, limit: %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" NativeHistogramRateLimited = "native_histogram_rate_limited" // Too many HA clusters is one of the reasons for discarding samples. TooManyHAClusters = "too_many_ha_clusters" // DroppedByRelabelConfiguration Samples can also be discarded because of relabeling configuration DroppedByRelabelConfiguration = "relabel_configuration" // DroppedByUserConfigurationOverride Samples discarded due to user configuration removing label __name__ DroppedByUserConfigurationOverride = "user_label_removal_configuration" // The combined length of the label names and values of an Exemplar's LabelSet MUST NOT exceed 128 UTF-8 characters // https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#exemplars ExemplarMaxLabelSetLength = 128 )
Variables ¶
This section is empty.
Functions ¶
func DeletePerUserValidationMetrics ¶ added in v1.8.0
func DeletePerUserValidationMetrics(validateMetrics *ValidateMetrics, userID string, log log.Logger)
func ExtractNumericalValues ¶ added in v1.20.0
func IsLimitError ¶ added in v1.20.0
func MaxDurationPerTenant ¶ added in v1.7.0
MaxDurationPerTenant is returning the maximum duration per tenant. Without tenants given it will return a time.Duration(0).
func SetDefaultLimitsForYAMLUnmarshalling ¶ added in v0.6.0
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.
func SmallestPositiveIntPerTenant ¶ added in v1.7.0
SmallestPositiveIntPerTenant is returning the minimal positive value of the supplied limit function for all given tenants.
func SmallestPositiveNonZeroDurationPerTenant ¶ added in v1.7.0
func SmallestPositiveNonZeroDurationPerTenant(tenantIDs []string, f func(string) time.Duration) time.Duration
SmallestPositiveNonZeroDurationPerTenant is returning the minimal positive and non-zero value of the supplied limit function for all given tenants. In many limits a value of 0 means unlimited so the method will return 0 only if all inputs have a limit of 0 or an empty tenant list is given.
func SmallestPositiveNonZeroFloat64PerTenant ¶ added in v1.16.0
SmallestPositiveNonZeroFloat64PerTenant is returning the minimal positive and non-zero value of the supplied limit function for all given tenants. In many limits a value of 0 means unlimited so the method will return 0 only if all inputs have a limit of 0 or an empty tenant list is given.
func ValidateMetadata ¶ added in v1.1.0
func ValidateMetadata(validateMetrics *ValidateMetrics, cfg *Limits, userID string, metadata *cortexpb.MetricMetadata) error
ValidateMetadata returns an err if a metric metadata is invalid.
func ValidateNativeHistogram ¶ added in v1.18.0
func ValidateNativeHistogram(validateMetrics *ValidateMetrics, limits *Limits, userID string, ls []cortexpb.LabelAdapter, histogramSample cortexpb.Histogram) (cortexpb.Histogram, error)
Types ¶
type AccessDeniedError ¶ added in v1.16.0
type AccessDeniedError string
AccessDeniedError are errors that do not comply with the limits specified.
func (AccessDeniedError) Error ¶ added in v1.16.0
func (e AccessDeniedError) Error() string
type DisabledRuleGroup ¶ added in v1.16.0
type DisabledRuleGroups ¶ added in v1.16.0
type DisabledRuleGroups []DisabledRuleGroup
type LimitError ¶ added in v1.4.0
type LimitError string
LimitError are errors that do not comply with the limits specified.
func (LimitError) Error ¶ added in v1.4.0
func (e LimitError) Error() string
type Limits ¶
type Limits struct {
// Distributor enforced limits.
IngestionRate float64 `yaml:"ingestion_rate" json:"ingestion_rate"`
NativeHistogramIngestionRate float64 `yaml:"native_histogram_ingestion_rate" json:"native_histogram_ingestion_rate"`
IngestionRateStrategy string `yaml:"ingestion_rate_strategy" json:"ingestion_rate_strategy"`
IngestionBurstSize int `yaml:"ingestion_burst_size" json:"ingestion_burst_size"`
NativeHistogramIngestionBurstSize int `yaml:"native_histogram_ingestion_burst_size" json:"native_histogram_ingestion_burst_size"`
AcceptHASamples bool `yaml:"accept_ha_samples" json:"accept_ha_samples"`
AcceptMixedHASamples bool `yaml:"accept_mixed_ha_samples" json:"accept_mixed_ha_samples"`
HAClusterLabel string `yaml:"ha_cluster_label" json:"ha_cluster_label"`
HAReplicaLabel string `yaml:"ha_replica_label" json:"ha_replica_label"`
HAMaxClusters int `yaml:"ha_max_clusters" json:"ha_max_clusters"`
DropLabels flagext.StringSlice `yaml:"drop_labels" json:"drop_labels"`
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"`
MaxLabelsSizeBytes int `yaml:"max_labels_size_bytes" json:"max_labels_size_bytes"`
MaxNativeHistogramSampleSizeBytes int `yaml:"max_native_histogram_sample_size_bytes" json:"max_native_histogram_sample_size_bytes"`
MaxMetadataLength int `yaml:"max_metadata_length" json:"max_metadata_length"`
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"`
EnforceMetadataMetricName bool `yaml:"enforce_metadata_metric_name" json:"enforce_metadata_metric_name"`
EnforceMetricName bool `yaml:"enforce_metric_name" json:"enforce_metric_name"`
IngestionTenantShardSize int `yaml:"ingestion_tenant_shard_size" json:"ingestion_tenant_shard_size"`
MetricRelabelConfigs []*relabel.Config `` /* 295-byte string literal not displayed */
MaxNativeHistogramBuckets int `yaml:"max_native_histogram_buckets" json:"max_native_histogram_buckets"`
PromoteResourceAttributes []string `yaml:"promote_resource_attributes" json:"promote_resource_attributes"`
EnableTypeAndUnitLabels bool `yaml:"enable_type_and_unit_labels" json:"enable_type_and_unit_labels"`
// Ingester enforced limits.
// Series
MaxLocalSeriesPerUser int `yaml:"max_series_per_user" json:"max_series_per_user"`
MaxLocalSeriesPerMetric int `yaml:"max_series_per_metric" json:"max_series_per_metric"`
MaxLocalNativeHistogramSeriesPerUser int `yaml:"max_native_histogram_series_per_user" json:"max_native_histogram_series_per_user"`
MaxGlobalSeriesPerUser int `yaml:"max_global_series_per_user" json:"max_global_series_per_user"`
MaxGlobalSeriesPerMetric int `yaml:"max_global_series_per_metric" json:"max_global_series_per_metric"`
MaxGlobalNativeHistogramSeriesPerUser int `yaml:"max_global_native_histogram_series_per_user" json:"max_global_native_histogram_series_per_user"`
LimitsPerLabelSet []LimitsPerLabelSet `` /* 166-byte string literal not displayed */
EnableNativeHistograms bool `yaml:"enable_native_histograms" json:"enable_native_histograms"`
// Regex matcher query limits.
MaxRegexPatternLength int `yaml:"max_regex_pattern_length" json:"max_regex_pattern_length"`
MaxLabelCardinalityForUnoptimizedRegex int `yaml:"max_label_cardinality_for_unoptimized_regex" json:"max_label_cardinality_for_unoptimized_regex"`
MaxTotalLabelValueLengthForUnoptimizedRegex int `yaml:"max_total_label_value_length_for_unoptimized_regex" json:"max_total_label_value_length_for_unoptimized_regex"`
// Metadata
MaxLocalMetricsWithMetadataPerUser int `yaml:"max_metadata_per_user" json:"max_metadata_per_user"`
MaxLocalMetadataPerMetric int `yaml:"max_metadata_per_metric" json:"max_metadata_per_metric"`
MaxGlobalMetricsWithMetadataPerUser int `yaml:"max_global_metadata_per_user" json:"max_global_metadata_per_user"`
MaxGlobalMetadataPerMetric int `yaml:"max_global_metadata_per_metric" json:"max_global_metadata_per_metric"`
// Out-of-order
OutOfOrderTimeWindow model.Duration `yaml:"out_of_order_time_window" json:"out_of_order_time_window"`
// Exemplars
MaxExemplars int `yaml:"max_exemplars" json:"max_exemplars"`
// Querier enforced limits.
MaxChunksPerQuery int `yaml:"max_fetched_chunks_per_query" json:"max_fetched_chunks_per_query"`
MaxFetchedSeriesPerQuery int `yaml:"max_fetched_series_per_query" json:"max_fetched_series_per_query"`
MaxFetchedChunkBytesPerQuery int `yaml:"max_fetched_chunk_bytes_per_query" json:"max_fetched_chunk_bytes_per_query"`
MaxFetchedDataBytesPerQuery int `yaml:"max_fetched_data_bytes_per_query" json:"max_fetched_data_bytes_per_query"`
MaxQueryLookback model.Duration `yaml:"max_query_lookback" json:"max_query_lookback"`
MaxQueryLength model.Duration `yaml:"max_query_length" json:"max_query_length"`
MaxQueryParallelism int `yaml:"max_query_parallelism" json:"max_query_parallelism"`
MaxQueryResponseSize int64 `yaml:"max_query_response_size" json:"max_query_response_size"`
MaxCacheFreshness model.Duration `yaml:"max_cache_freshness" json:"max_cache_freshness"`
MaxQueriersPerTenant float64 `yaml:"max_queriers_per_tenant" json:"max_queriers_per_tenant"`
QueryVerticalShardSize int `yaml:"query_vertical_shard_size" json:"query_vertical_shard_size"`
QueryPartialData bool `` /* 193-byte string literal not displayed */
// Parquet Queryable enforced limits.
ParquetMaxFetchedRowCount int `yaml:"parquet_max_fetched_row_count" json:"parquet_max_fetched_row_count"`
ParquetMaxFetchedChunkBytes int `yaml:"parquet_max_fetched_chunk_bytes" json:"parquet_max_fetched_chunk_bytes"`
ParquetMaxFetchedDataBytes int `yaml:"parquet_max_fetched_data_bytes" json:"parquet_max_fetched_data_bytes"`
// Query Frontend / Scheduler enforced limits.
MaxOutstandingPerTenant int `yaml:"max_outstanding_requests_per_tenant" json:"max_outstanding_requests_per_tenant"`
QueryPriority QueryPriority `yaml:"query_priority" json:"query_priority" doc:"nocli|description=Configuration for query priority."`
QueryRejection QueryRejection `yaml:"query_rejection" json:"query_rejection" doc:"nocli|description=Configuration for query rejection."`
// Ruler defaults and limits.
RulerEvaluationDelay model.Duration `yaml:"ruler_evaluation_delay_duration" json:"ruler_evaluation_delay_duration"`
RulerTenantShardSize float64 `yaml:"ruler_tenant_shard_size" json:"ruler_tenant_shard_size"`
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"`
RulerQueryOffset model.Duration `yaml:"ruler_query_offset" json:"ruler_query_offset"`
RulerExternalLabels labels.Labels `yaml:"ruler_external_labels" json:"ruler_external_labels" doc:"nocli|description=external labels for alerting rules"`
RulesPartialData bool `` /* 191-byte string literal not displayed */
// Store-gateway.
StoreGatewayTenantShardSize float64 `yaml:"store_gateway_tenant_shard_size" json:"store_gateway_tenant_shard_size"`
MaxDownloadedBytesPerRequest int `yaml:"max_downloaded_bytes_per_request" json:"max_downloaded_bytes_per_request"`
// Compactor.
CompactorBlocksRetentionPeriod model.Duration `yaml:"compactor_blocks_retention_period" json:"compactor_blocks_retention_period"`
CompactorTenantShardSize float64 `yaml:"compactor_tenant_shard_size" json:"compactor_tenant_shard_size"`
CompactorPartitionIndexSizeBytes int64 `yaml:"compactor_partition_index_size_bytes" json:"compactor_partition_index_size_bytes"`
CompactorPartitionSeriesCount int64 `yaml:"compactor_partition_series_count" json:"compactor_partition_series_count"`
// Parquet converter
ParquetConverterEnabled bool `yaml:"parquet_converter_enabled" json:"parquet_converter_enabled"`
ParquetConverterTenantShardSize float64 `yaml:"parquet_converter_tenant_shard_size" json:"parquet_converter_tenant_shard_size"`
ParquetConverterSortColumns []string `yaml:"parquet_converter_sort_columns" json:"parquet_converter_sort_columns"`
// 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 */
// Alertmanager.
AlertmanagerReceiversBlockCIDRNetworks flagext.CIDRSliceCSV `yaml:"alertmanager_receivers_firewall_block_cidr_networks" json:"alertmanager_receivers_firewall_block_cidr_networks"`
AlertmanagerReceiversBlockPrivateAddresses bool `yaml:"alertmanager_receivers_firewall_block_private_addresses" json:"alertmanager_receivers_firewall_block_private_addresses"`
NotificationRateLimit float64 `yaml:"alertmanager_notification_rate_limit" json:"alertmanager_notification_rate_limit"`
NotificationRateLimitPerIntegration NotificationRateLimitMap `yaml:"alertmanager_notification_rate_limit_per_integration" json:"alertmanager_notification_rate_limit_per_integration"`
AlertmanagerMaxConfigSizeBytes int `yaml:"alertmanager_max_config_size_bytes" json:"alertmanager_max_config_size_bytes"`
AlertmanagerMaxTemplatesCount int `yaml:"alertmanager_max_templates_count" json:"alertmanager_max_templates_count"`
AlertmanagerMaxTemplateSizeBytes int `yaml:"alertmanager_max_template_size_bytes" json:"alertmanager_max_template_size_bytes"`
AlertmanagerMaxDispatcherAggregationGroups int `yaml:"alertmanager_max_dispatcher_aggregation_groups" json:"alertmanager_max_dispatcher_aggregation_groups"`
AlertmanagerMaxAlertsCount int `yaml:"alertmanager_max_alerts_count" json:"alertmanager_max_alerts_count"`
AlertmanagerMaxAlertsSizeBytes int `yaml:"alertmanager_max_alerts_size_bytes" json:"alertmanager_max_alerts_size_bytes"`
AlertmanagerMaxSilencesCount int `yaml:"alertmanager_max_silences_count" json:"alertmanager_max_silences_count"`
AlertmanagerMaxSilencesSizeBytes int `yaml:"alertmanager_max_silences_size_bytes" json:"alertmanager_max_silences_size_bytes"`
DisabledRuleGroups DisabledRuleGroups `yaml:"disabled_rule_groups" json:"disabled_rule_groups" doc:"nocli|description=list of rule groups to disable"`
// contains filtered or unexported fields
}
Limits describe all the limits for users; can be used to describe global default limits via flags, or per-user limits via yaml config.
func (*Limits) RegisterFlags ¶
RegisterFlags adds the flags required to config this to the given FlagSet
func (*Limits) UnmarshalJSON ¶ added in v1.8.0
UnmarshalJSON implements the json.Unmarshaler interface.
func (*Limits) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type LimitsPerLabelSet ¶ added in v1.18.0
type LimitsPerLabelSet struct {
Limits LimitsPerLabelSetEntry `yaml:"limits" json:"limits" doc:"nocli"`
LabelSet labels.Labels `` /* 247-byte string literal not displayed */
Id string `yaml:"-" json:"-" doc:"nocli"`
Hash uint64 `yaml:"-" json:"-" doc:"nocli"`
}
func LimitsPerLabelSetsForSeries ¶ added in v1.19.0
func LimitsPerLabelSetsForSeries(limitsPerLabelSets []LimitsPerLabelSet, metric labels.Labels) []LimitsPerLabelSet
LimitsPerLabelSetsForSeries checks matching labelset limits for the given series.
type LimitsPerLabelSetEntry ¶ added in v1.18.0
type LimitsPerLabelSetEntry struct {
MaxSeries int `` /* 239-byte string literal not displayed */
}
type NotificationRateLimitMap ¶ added in v1.10.0
func (NotificationRateLimitMap) MarshalYAML ¶ added in v1.10.0
func (m NotificationRateLimitMap) MarshalYAML() (any, error)
MarshalYAML implements yaml.Marshaler.
func (NotificationRateLimitMap) Set ¶ added in v1.10.0
func (m NotificationRateLimitMap) Set(s string) error
Set implements flag.Value
func (NotificationRateLimitMap) String ¶ added in v1.10.0
func (m NotificationRateLimitMap) String() string
String implements flag.Value
func (NotificationRateLimitMap) UnmarshalYAML ¶ added in v1.10.0
func (m NotificationRateLimitMap) UnmarshalYAML(unmarshal func(any) error) error
UnmarshalYAML implements yaml.Unmarshaler.
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
NewOverrides makes a new Overrides.
func (*Overrides) AcceptHASamples ¶
AcceptHASamples returns whether the distributor should track and accept samples from HA replicas for this user.
func (*Overrides) AcceptMixedHASamples ¶ added in v1.19.0
AcceptMixedHASamples returns whether the distributor should track and accept samples from mixed HA replicas for this user.
func (*Overrides) AlertmanagerMaxAlertsCount ¶ added in v1.10.0
func (*Overrides) AlertmanagerMaxAlertsSizeBytes ¶ added in v1.10.0
func (*Overrides) AlertmanagerMaxConfigSize ¶ added in v1.10.0
func (*Overrides) AlertmanagerMaxDispatcherAggregationGroups ¶ added in v1.10.0
func (*Overrides) AlertmanagerMaxSilenceSizeBytes ¶ added in v1.20.0
func (*Overrides) AlertmanagerMaxSilencesCount ¶ added in v1.20.0
func (*Overrides) AlertmanagerMaxTemplateSize ¶ added in v1.10.0
func (*Overrides) AlertmanagerMaxTemplatesCount ¶ added in v1.10.0
func (*Overrides) AlertmanagerReceiversBlockCIDRNetworks ¶ added in v1.10.0
AlertmanagerReceiversBlockCIDRNetworks returns the list of network CIDRs that should be blocked in the Alertmanager receivers for the given user.
func (*Overrides) AlertmanagerReceiversBlockPrivateAddresses ¶ added in v1.10.0
AlertmanagerReceiversBlockPrivateAddresses returns true if private addresses should be blocked in the Alertmanager receivers for the given user.
func (*Overrides) CompactorBlocksRetentionPeriod ¶ added in v1.8.0
CompactorBlocksRetentionPeriod returns the retention period for a given user.
func (*Overrides) CompactorPartitionIndexSizeBytes ¶ added in v1.19.0
CompactorPartitionIndexSizeBytes returns shard size (number of rulers) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) CompactorPartitionSeriesCount ¶ added in v1.19.0
CompactorPartitionSeriesCount returns shard size (number of rulers) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) CompactorTenantShardSize ¶ added in v1.13.0
CompactorTenantShardSize returns shard size (number of rulers) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) CreationGracePeriod ¶
CreationGracePeriod is misnamed, and actually returns how far into the future we should accept samples.
func (*Overrides) DisabledRuleGroups ¶ added in v1.16.0
func (o *Overrides) DisabledRuleGroups(userID string) DisabledRuleGroups
func (*Overrides) DropLabels ¶ added in v0.6.0
func (o *Overrides) DropLabels(userID string) flagext.StringSlice
DropLabels returns the list of labels to be dropped when ingesting HA samples for the user.
func (*Overrides) EnableNativeHistograms ¶ added in v1.20.0
EnableNativeHistograms returns whether the Ingester should accept native histogram samples from this user.
func (*Overrides) EnableTypeAndUnitLabels ¶
func (*Overrides) EnforceMetadataMetricName ¶ added in v1.1.0
EnforceMetadataMetricName whether to enforce the presence of a metric name on metadata.
func (*Overrides) EnforceMetricName ¶
EnforceMetricName whether to enforce the presence of a metric name.
func (*Overrides) GetOverridesForUser ¶ added in v1.14.0
GetOverridesForUser returns the per-tenant limits with overrides.
func (*Overrides) HAClusterLabel ¶
HAClusterLabel returns the cluster label to look for when deciding whether to accept a sample from a Prometheus HA replica.
func (*Overrides) HAReplicaLabel ¶
HAReplicaLabel returns the replica label to look for when deciding whether to accept a sample from a Prometheus HA replica.
func (*Overrides) IngestionBurstSize ¶
IngestionBurstSize returns the burst size for ingestion rate.
func (*Overrides) IngestionRate ¶
IngestionRate returns the limit on ingester rate (samples per second).
func (*Overrides) IngestionRateStrategy ¶ added in v0.6.0
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) IngestionTenantShardSize ¶ added in v1.5.0
IngestionTenantShardSize returns the ingesters shard size for a given user.
func (*Overrides) LimitsPerLabelSet ¶ added in v1.18.0
func (o *Overrides) LimitsPerLabelSet(userID string) []LimitsPerLabelSet
LimitsPerLabelSet returns the user limits per labelset across the cluster.
func (*Overrides) MaxCacheFreshness ¶ added in v1.2.0
MaxCacheFreshness returns the period after which results are cacheable, to prevent caching of very recent results.
func (*Overrides) MaxChunksPerQuery ¶
func (*Overrides) MaxChunksPerQueryFromStore ¶ added in v1.10.0
MaxChunksPerQueryFromStore returns the maximum number of chunks allowed per query when fetching chunks from the long-term storage.
func (*Overrides) MaxDownloadedBytesPerRequest ¶ added in v1.16.0
MaxDownloadedBytesPerRequest returns the maximum number of bytes to download for each gRPC request in Store Gateway, including any data fetched from cache or object storage.
func (*Overrides) MaxExemplars ¶ added in v1.15.0
MaxExemplars gets the maximum number of exemplars that will be stored per user. 0 or less means disabled.
func (*Overrides) MaxFetchedChunkBytesPerQuery ¶ added in v1.10.0
MaxFetchedChunkBytesPerQuery returns the maximum number of bytes for chunks allowed per query when fetching chunks from ingesters and blocks storage.
func (*Overrides) MaxFetchedDataBytesPerQuery ¶ added in v1.14.0
MaxFetchedDataBytesPerQuery returns the maximum number of bytes for all data allowed per query when fetching from ingesters and blocks storage.
func (*Overrides) MaxFetchedSeriesPerQuery ¶ added in v1.10.0
MaxFetchedSeriesPerQuery returns the maximum number of series allowed per query when fetching chunks from ingesters and blocks storage.
func (*Overrides) MaxGlobalMetadataPerMetric ¶ added in v1.1.0
MaxGlobalMetadataPerMetric returns the maximum number of metadata allowed per metric across the cluster.
func (*Overrides) MaxGlobalMetricsWithMetadataPerUser ¶ added in v1.1.0
MaxGlobalMetricsWithMetadataPerUser returns the maximum number of metrics with metadata a user is allowed to store across the cluster.
func (*Overrides) MaxGlobalNativeHistogramSeriesPerUser ¶ added in v1.20.0
MaxGlobalNativeHistogramSeriesPerUser returns the maximum number of native histogram series a user is allowed to store across the cluster.
func (*Overrides) MaxGlobalSeriesPerMetric ¶ added in v0.4.0
MaxGlobalSeriesPerMetric returns the maximum number of series allowed per metric across the cluster.
func (*Overrides) MaxGlobalSeriesPerUser ¶ added in v0.4.0
MaxGlobalSeriesPerUser returns the maximum number of series a user is allowed to store across the cluster.
func (*Overrides) MaxHAReplicaGroups ¶ added in v1.16.0
MaxHAReplicaGroups returns maximum number of clusters that HA tracker will track for a user.
func (*Overrides) MaxLabelCardinalityForUnoptimizedRegex ¶
MaxLabelCardinalityForUnoptimizedRegex returns the maximum cardinality for a label with an unoptimized regex matcher. This is only used in Ingester.
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) MaxLabelsSizeBytes ¶ added in v1.14.0
MaxLabelsSizeBytes returns maximum number of label/value pairs timeseries.
func (*Overrides) MaxLocalMetadataPerMetric ¶ added in v1.1.0
MaxLocalMetadataPerMetric returns the maximum number of metadata allowed per metric in a single ingester.
func (*Overrides) MaxLocalMetricsWithMetadataPerUser ¶ added in v1.1.0
MaxLocalMetricsWithMetadataPerUser returns the maximum number of metrics with metadata a user is allowed to store in a single ingester.
func (*Overrides) MaxLocalNativeHistogramSeriesPerUser ¶ added in v1.20.0
MaxLocalNativeHistogramSeriesPerUser returns the maximum number of native histogram series a user is allowed to store in a single ingester.
func (*Overrides) MaxLocalSeriesPerMetric ¶ added in v0.4.0
MaxLocalSeriesPerMetric returns the maximum number of series allowed per metric in a single ingester.
func (*Overrides) MaxLocalSeriesPerUser ¶ added in v0.4.0
MaxLocalSeriesPerUser returns the maximum number of series a user is allowed to store in a single ingester.
func (*Overrides) MaxMetadataLength ¶ added in v1.1.0
MaxMetadataLength returns maximum length metadata can be. Metadata refers to the Metric Name, HELP and UNIT.
func (*Overrides) MaxNativeHistogramBuckets ¶ added in v1.18.0
MaxNativeHistogramBuckets returns the maximum total number of positive and negative buckets of a single native histogram a user is allowed to store.
func (*Overrides) MaxOutstandingPerTenant ¶ added in v1.15.0
MaxOutstandingPerTenant returns the limit to the maximum number of outstanding requests per tenant per request queue.
func (*Overrides) MaxQueriersPerUser ¶ added in v1.5.0
MaxQueriersPerUser returns the maximum number of queriers that can handle requests for this user.
func (*Overrides) MaxQueryLength ¶
MaxQueryLength returns the limit of the length (in time) of a query.
func (*Overrides) MaxQueryLookback ¶ added in v1.6.0
MaxQueryLookback returns the max lookback period of queries.
func (*Overrides) MaxQueryParallelism ¶
MaxQueryParallelism returns the limit to the number of split queries the frontend will process in parallel.
func (*Overrides) MaxQueryResponseSize ¶ added in v1.20.0
MaxQueryResponseSize returns the max total response size of a query in bytes.
func (*Overrides) MaxRegexPatternLength ¶
MaxRegexPatternLength returns the maximum length of an unoptimized regex pattern. This is only used in Ingester.
func (*Overrides) MaxTotalLabelValueLengthForUnoptimizedRegex ¶
MaxTotalLabelValueLengthForUnoptimizedRegex returns the maximum total length of all label values for an unoptimized regex matcher. This is only used in Ingester.
func (*Overrides) MetricRelabelConfigs ¶ added in v1.5.0
MetricRelabelConfigs returns the metric relabel configs for a given user.
func (*Overrides) NativeHistogramIngestionBurstSize ¶ added in v1.20.0
NativeHistogramIngestionBurstSize returns the burst size for ingestion rate.
func (*Overrides) NativeHistogramIngestionRate ¶ added in v1.20.0
NativeHistogramIngestionRate returns the limit on ingester rate (samples per second).
func (*Overrides) NotificationBurstSize ¶ added in v1.10.0
func (*Overrides) NotificationRateLimit ¶ added in v1.10.0
func (*Overrides) OutOfOrderTimeWindow ¶ added in v1.15.0
OutOfOrderTimeWindow returns the allowed time window for ingestion of out-of-order samples.
func (*Overrides) ParquetConverterEnabled ¶ added in v1.20.0
ParquetConverterEnabled returns true is parquet is enabled.
func (*Overrides) ParquetConverterSortColumns ¶ added in v1.20.0
ParquetConverterSortColumns returns the additional sort columns for parquet files.
func (*Overrides) ParquetConverterTenantShardSize ¶ added in v1.20.0
ParquetConverterTenantShardSize returns shard size (number of converters) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) ParquetMaxFetchedChunkBytes ¶ added in v1.20.0
ParquetMaxFetchedChunkBytes returns the maximum number of bytes that can be used to fetch chunk column pages when querying parquet storage.
func (*Overrides) ParquetMaxFetchedDataBytes ¶ added in v1.20.0
ParquetMaxFetchedDataBytes returns the maximum number of bytes that can be used to fetch all column pages when querying parquet storage.
func (*Overrides) ParquetMaxFetchedRowCount ¶ added in v1.20.0
ParquetMaxFetchedRowCount returns the maximum number of rows that can be fetched when querying parquet storage.
func (*Overrides) PromoteResourceAttributes ¶ added in v1.19.0
PromoteResourceAttributes returns the promote resource attributes for a given user.
func (*Overrides) QueryPartialData ¶ added in v1.20.0
QueryPartialData returns whether query may be evaluated with data from a single zone, if other zones are not available.
func (*Overrides) QueryPriority ¶ added in v1.17.0
func (o *Overrides) QueryPriority(userID string) QueryPriority
QueryPriority returns the query priority config for the tenant, including different priorities and their attributes
func (*Overrides) QueryRejection ¶ added in v1.18.0
func (o *Overrides) QueryRejection(userID string) QueryRejection
QueryRejection returns the query reject config for the tenant
func (*Overrides) QueryVerticalShardSize ¶ added in v1.14.0
QueryVerticalShardSize returns the number of shards to use when distributing shardable PromQL 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) RulerExternalLabels ¶ added in v1.19.0
func (*Overrides) RulerMaxRuleGroupsPerTenant ¶ added in v1.5.0
RulerMaxRuleGroupsPerTenant returns the maximum number of rule groups for a given user.
func (*Overrides) RulerMaxRulesPerRuleGroup ¶ added in v1.5.0
RulerMaxRulesPerRuleGroup returns the maximum number of rules per rule group for a given user.
func (*Overrides) RulerQueryOffset ¶ added in v1.18.0
RulerQueryOffset returns the rule query offset for a given user.
func (*Overrides) RulerTenantShardSize ¶ added in v1.5.0
RulerTenantShardSize returns shard size (number of rulers) used by this tenant when using shuffle-sharding strategy.
func (*Overrides) RulesPartialData ¶ added in v1.20.0
RulesPartialData returns whether rule may be evaluated with data from a single zone, if other zones are not available.
func (*Overrides) S3SSEKMSEncryptionContext ¶ added in v1.8.0
S3SSEKMSEncryptionContext returns the per-tenant S3 KMS-SSE encryption context.
func (*Overrides) S3SSEKMSKeyID ¶ added in v1.8.0
S3SSEKMSKeyID returns the per-tenant S3 KMS-SSE key id.
func (*Overrides) StoreGatewayTenantShardSize ¶ added in v1.4.0
StoreGatewayTenantShardSize returns the store-gateway shard size for a given user.
type OverridesExporter ¶ added in v1.8.0
type OverridesExporter struct {
// contains filtered or unexported fields
}
OverridesExporter exposes per-tenant resource limit overrides as Prometheus metrics
func NewOverridesExporter ¶ added in v1.8.0
func NewOverridesExporter(tenantLimits TenantLimits) *OverridesExporter
NewOverridesExporter creates an OverridesExporter that reads updates to per-tenant limits using the provided function.
func (*OverridesExporter) Collect ¶ added in v1.8.0
func (oe *OverridesExporter) Collect(ch chan<- prometheus.Metric)
func (*OverridesExporter) Describe ¶ added in v1.8.0
func (oe *OverridesExporter) Describe(ch chan<- *prometheus.Desc)
type PriorityDef ¶ added in v1.17.0
type PriorityDef struct {
Priority int64 `yaml:"priority" json:"priority" doc:"nocli|description=Priority level. Must be a unique value.|default=0"`
ReservedQueriers float64 `` /* 223-byte string literal not displayed */
QueryAttributes []QueryAttribute `` /* 477-byte string literal not displayed */
}
type QueryAttribute ¶ added in v1.17.0
type QueryAttribute struct {
ApiType string `` /* 183-byte string literal not displayed */
Regex string `` /* 176-byte string literal not displayed */
TimeWindow TimeWindow `` /* 217-byte string literal not displayed */
TimeRangeLimit TimeRangeLimit `` /* 255-byte string literal not displayed */
QueryStepLimit QueryStepLimit `` /* 249-byte string literal not displayed */
UserAgentRegex string `` /* 162-byte string literal not displayed */
DashboardUID string `` /* 299-byte string literal not displayed */
PanelID string `` /* 279-byte string literal not displayed */
CompiledRegex *regexp.Regexp
CompiledUserAgentRegex *regexp.Regexp
}
type QueryPriority ¶ added in v1.17.0
type QueryPriority struct {
Enabled bool `yaml:"enabled" json:"enabled"`
DefaultPriority int64 `yaml:"default_priority" json:"default_priority"`
Priorities []PriorityDef `yaml:"priorities" json:"priorities" doc:"nocli|description=List of priority definitions."`
}
type QueryRejection ¶ added in v1.18.0
type QueryRejection struct {
Enabled bool `yaml:"enabled" json:"enabled"`
QueryAttributes []QueryAttribute `` /* 448-byte string literal not displayed */
}
type QueryStepLimit ¶ added in v1.18.0
type TenantLimits ¶ added in v0.6.0
type TenantLimits interface {
// ByUserID gets limits specific to a particular tenant or nil if there are none
ByUserID(userID string) *Limits
// AllByUserID gets a mapping of all tenant IDs and limits for that user
AllByUserID() map[string]*Limits
}
TenantLimits exposes per-tenant limit overrides to various resource usage limits
type TimeRangeLimit ¶ added in v1.18.0
type TimeWindow ¶ added in v1.17.0
type ValidateMetrics ¶ added in v1.18.0
type ValidateMetrics struct {
DiscardedSamples *prometheus.CounterVec
DiscardedExemplars *prometheus.CounterVec
DiscardedMetadata *prometheus.CounterVec
HistogramSamplesReducedResolution *prometheus.CounterVec
LabelSizeBytes *prometheus.HistogramVec
DiscardedSamplesPerLabelSet *prometheus.CounterVec
LabelSetTracker *labelset.LabelSetTracker
DiscardedSeries *prometheus.GaugeVec
DiscardedSeriesPerLabelset *prometheus.GaugeVec
DiscardedSeriesTracker *discardedseries.DiscardedSeriesTracker
DiscardedSeriesPerLabelsetTracker *discardedseries.DiscardedSeriesPerLabelsetTracker
}
func NewValidateMetrics ¶ added in v1.18.0
func NewValidateMetrics(r prometheus.Registerer) *ValidateMetrics
func (*ValidateMetrics) UpdateLabelSet ¶ added in v1.19.0
func (m *ValidateMetrics) UpdateLabelSet(userSet map[string]map[uint64]struct{}, logger log.Logger)
type ValidationError ¶ added in v1.9.0
type ValidationError error
ValidationError is an error returned by series validation.
Ignore stutter warning. nolint:revive
func ValidateExemplar ¶ added in v1.10.0
func ValidateExemplar(validateMetrics *ValidateMetrics, userID string, ls []cortexpb.LabelAdapter, e cortexpb.Exemplar) ValidationError
ValidateExemplar returns an error if the exemplar is invalid. The returned error may retain the provided series labels.
func ValidateLabels ¶ added in v0.2.0
func ValidateLabels(validateMetrics *ValidateMetrics, limits *Limits, userID string, ls []cortexpb.LabelAdapter, skipLabelNameValidation bool, nameValidationScheme model.ValidationScheme) ValidationError
ValidateLabels returns an err if the labels are invalid. The returned error may retain the provided series labels. Callers must validate metric name (e.g. via ValidateMetricName) before calling this when EnforceMetricName is true.
func ValidateMetricName ¶
func ValidateMetricName(limits *Limits, ls []cortexpb.LabelAdapter, nameValidationScheme model.ValidationScheme) (ValidationError, string)
ValidateMetricName checks that ls has a valid non-empty metric name when limits.EnforceMetricName is true. It returns (nil, "") when valid, or (error, discardReason) when invalid. Callers should increment DiscardedSamples/DiscardedExemplars with the returned reason when non-empty.
func ValidateSampleTimestamp ¶ added in v1.18.0
func ValidateSampleTimestamp(validateMetrics *ValidateMetrics, limits *Limits, userID string, ls []cortexpb.LabelAdapter, timestampMs int64) ValidationError
ValidateSampleTimestamp returns an err if the sample timestamp is invalid. The returned error may retain the provided series labels.