diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ba0f0118c8..1565d242ec4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ * [ENHANCEMENT] Compactor: Introduced visit marker file for blocks so blocks are under compaction will not be picked up by another compactor. #4805 * [ENHANCEMENT] Distributor: Add label name to labelValueTooLongError. #4855 * [ENHANCEMENT] Enhance traces with hostname information. #4898 +* [ENHANCEMENT] Improve the documentation around limits. #4905 * [FEATURE] Compactor: Added `-compactor.block-files-concurrency` allowing to configure number of go routines for download/upload block files during compaction. #4784 * [FEATURE] Compactor: Added -compactor.blocks-fetch-concurrency` allowing to configure number of go routines for blocks during compaction. #4787 * [FEATURE] Compactor: Added configurations for Azure MSI in blocks-storage, ruler-storage and alertmanager-storage. #4818 diff --git a/docs/configuration/config-file-reference.md b/docs/configuration/config-file-reference.md index 1097d00a4dd..000de55fd93 100644 --- a/docs/configuration/config-file-reference.md +++ b/docs/configuration/config-file-reference.md @@ -2668,22 +2668,20 @@ The `limits_config` configures default and per-tenant limits imposed by Cortex s [max_fetched_chunks_per_query: | default = 2000000] # The maximum number of unique series for which a query can fetch samples from -# each ingesters and blocks storage. This limit is enforced in the querier only -# when running Cortex with blocks storage. 0 to disable +# each ingesters and blocks storage. This limit is enforced in the querier, +# ruler and store-gateway. 0 to disable # CLI flag: -querier.max-fetched-series-per-query [max_fetched_series_per_query: | default = 0] # Deprecated (user max-fetched-data-bytes-per-query instead): The maximum size # of all chunks in bytes that a query can fetch from each ingester and storage. -# This limit is enforced in the querier and ruler only when running Cortex with -# blocks storage. 0 to disable. +# This limit is enforced in the querier, ruler and store-gateway. 0 to disable. # CLI flag: -querier.max-fetched-chunk-bytes-per-query [max_fetched_chunk_bytes_per_query: | default = 0] # The maximum combined size of all data that a query can fetch from each -# ingester and storage. This limit is only applied for `query`, `query_range` -# and `series` APIs. This limit is enforced in the querier and ruler only when -# running Cortex with blocks storage. 0 to disable. +# ingester and storage. This limit is enforced in the querier and ruler for +# `query`, `query_range` and `series` APIs. 0 to disable. # CLI flag: -querier.max-fetched-data-bytes-per-query [max_fetched_data_bytes_per_query: | default = 0] diff --git a/pkg/util/validation/limits.go b/pkg/util/validation/limits.go index c3a3b3c886e..3d27c5058dd 100644 --- a/pkg/util/validation/limits.go +++ b/pkg/util/validation/limits.go @@ -150,9 +150,9 @@ func (l *Limits) RegisterFlags(f *flag.FlagSet) { f.IntVar(&l.MaxGlobalMetricsWithMetadataPerUser, "ingester.max-global-metadata-per-user", 0, "The maximum number of active metrics with metadata per user, across the cluster. 0 to disable. Supported only if -distributor.shard-by-all-labels is true.") f.IntVar(&l.MaxGlobalMetadataPerMetric, "ingester.max-global-metadata-per-metric", 0, "The maximum number of metadata per metric, across the cluster. 0 to disable.") f.IntVar(&l.MaxChunksPerQuery, "querier.max-fetched-chunks-per-query", 2000000, "Maximum number of chunks that can be fetched in a single query from ingesters and long-term storage. This limit is enforced in the querier, ruler and store-gateway. 0 to disable.") - f.IntVar(&l.MaxFetchedSeriesPerQuery, "querier.max-fetched-series-per-query", 0, "The maximum number of unique series for which a query can fetch samples from each ingesters and blocks storage. This limit is enforced in the querier only when running Cortex with blocks storage. 0 to disable") - f.IntVar(&l.MaxFetchedChunkBytesPerQuery, "querier.max-fetched-chunk-bytes-per-query", 0, "Deprecated (user max-fetched-data-bytes-per-query instead): The maximum size of all chunks in bytes that a query can fetch from each ingester and storage. This limit is enforced in the querier and ruler only when running Cortex with blocks storage. 0 to disable.") - f.IntVar(&l.MaxFetchedDataBytesPerQuery, "querier.max-fetched-data-bytes-per-query", 0, "The maximum combined size of all data that a query can fetch from each ingester and storage. This limit is only applied for `query`, `query_range` and `series` APIs. This limit is enforced in the querier and ruler only when running Cortex with blocks storage. 0 to disable.") + f.IntVar(&l.MaxFetchedSeriesPerQuery, "querier.max-fetched-series-per-query", 0, "The maximum number of unique series for which a query can fetch samples from each ingesters and blocks storage. This limit is enforced in the querier, ruler and store-gateway. 0 to disable") + f.IntVar(&l.MaxFetchedChunkBytesPerQuery, "querier.max-fetched-chunk-bytes-per-query", 0, "Deprecated (user max-fetched-data-bytes-per-query instead): The maximum size of all chunks in bytes that a query can fetch from each ingester and storage. This limit is enforced in the querier, ruler and store-gateway. 0 to disable.") + f.IntVar(&l.MaxFetchedDataBytesPerQuery, "querier.max-fetched-data-bytes-per-query", 0, "The maximum combined size of all data that a query can fetch from each ingester and storage. This limit is enforced in the querier and ruler for `query`, `query_range` and `series` APIs. 0 to disable.") f.Var(&l.MaxQueryLength, "store.max-query-length", "Limit the query time range (end - start time). This limit is enforced in the query-frontend (on the received query) and in the querier (on the query possibly split by the query-frontend). 0 to disable.") f.Var(&l.MaxQueryLookback, "querier.max-query-lookback", "Limit how long back data (series and metadata) can be queried, up until duration ago. This limit is enforced in the query-frontend, querier and ruler. If the requested time range is outside the allowed range, the request will not fail but will be manipulated to only query data within the allowed time range. 0 to disable.") f.IntVar(&l.MaxQueryParallelism, "querier.max-query-parallelism", 14, "Maximum number of split queries will be scheduled in parallel by the frontend.")