You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/configuration/arguments.md
+37-1Lines changed: 37 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -404,7 +404,7 @@ It also talks to a KVStore and has it's own copies of the same flags used by the
404
404
405
405
Cortex has a concept of "runtime config" file, which is simply a file that is reloaded while Cortex is running. It is used by some Cortex components to allow operator to change some aspects of Cortex configuration without restarting it. File is specified by using `-runtime-config.file=<filename>` flag and reload period (which defaults to 10 seconds) can be changed by `-runtime-config.reload-period=<duration>` flag. Previously this mechanism was only used by limits overrides, and flags were called `-limits.per-user-override-config=<filename>` and `-limits.per-user-override-period=10s` respectively. These are still used, if `-runtime-config.file=<filename>` is not specified.
406
406
407
-
At the moment, two components use runtime configuration:limits and multi KV store.
407
+
At the moment runtime configuration may contain per-user limits, multi KV store, and ingester instance limits.
408
408
409
409
Example runtime configuration file:
410
410
@@ -422,6 +422,10 @@ overrides:
422
422
multi_kv_config:
423
423
mirror_enabled: false
424
424
primary: memberlist
425
+
426
+
ingester_limits:
427
+
max_ingestion_rate: 42000
428
+
max_inflight_push_requests: 10000
425
429
```
426
430
427
431
When running Cortex on Kubernetes, store this file in a config map and mount it in each services' containers. When changing the values there is no need to restart the services, unless otherwise specified.
@@ -506,6 +510,38 @@ Valid per-tenant limits are (with their corresponding flags for default values):
506
510
507
511
Requires `-distributor.replication-factor`, `-distributor.shard-by-all-labels`, `-distributor.sharding-strategy` and `-distributor.zone-awareness-enabled` set for the ingesters too.
508
512
513
+
## Ingester Instance Limits
514
+
515
+
Cortex ingesters support limits that are applied per-instance, meaning they apply to each ingester process. These can be used to ensure individual ingesters are not overwhelmed regardless of any per-user limits. These limits can be set under the `ingester.instance_limits` block in the global configuration file, with command line flags, or under the `ingester_limits` field in the runtime configuration file.
516
+
517
+
An example as part of the runtime configuration file:
518
+
519
+
```yaml
520
+
ingester_limits:
521
+
max_ingestion_rate: 20000
522
+
max_series: 1500000
523
+
max_tenants: 1000
524
+
max_inflight_push_requests: 30000
525
+
```
526
+
527
+
Valid ingester instance limits are (with their corresponding flags):
Limit the total number of series that an ingester keeps in memory, across all users. When this limit is reached, requests that create new series will fail with an HTTP 500 error.
Limit the maximum number of users an ingester will accept metrics for. When this limit is reached, requests from new users will fail with an HTTP 500 error.
Limit the maximum number of requests being handled by an ingester at once. This setting is critical for preventing ingesters from using an excessive amount of memory during high load or temporary slow downs. When this limit is reached, new requests will fail with an HTTP 500 error.
0 commit comments