diff --git a/docs/sources/configuration/_index.md b/docs/sources/configuration/_index.md index cd03167930755..1826a55fbfb59 100644 --- a/docs/sources/configuration/_index.md +++ b/docs/sources/configuration/_index.md @@ -334,6 +334,16 @@ The `frontend` block configures the Loki query-frontend. # CLI flag: -querier.max-outstanding-requests-per-tenant [max_outstanding_per_tenant: | default = 100] +# In the event a tenant is repeatedly sending queries that lead the querier to crash +# or be killed due to an out-of-memory error, the crashed querier will be disconnected +# from the query frontend and a new querier will be immediately assigned to the tenant’s shard. +# This invalidates the assumption that shuffle sharding can be used to reduce the +# impact on tenants. This option mitigates the impact by configuring a delay between when +# a querier disconnects because of a crash and when the crashed querier is actually removed +# from the tenant's shard. +# CLI flag: -query-frontend.querier-forget-delay +[querier_forget_delay: | default = 0s] + # Compress HTTP responses. # CLI flag: -querier.compress-http-responses [compress_responses: | default = false] @@ -359,7 +369,7 @@ The `frontend` block configures the Loki query-frontend. # query-scheduler instances. # Also used to determine how often to poll the scheduler-ring for addresses if configured. # CLI flag: -frontend.scheduler-dns-lookup-period -[scheduler_dns_lookup_period: | default = 3s] +[scheduler_dns_lookup_period: | default = 10s] # Number of concurrent workers forwarding queries to single query-scheduler. # CLI flag: -frontend.scheduler-worker-concurrency @@ -545,7 +555,7 @@ remote_write: [proxy_url: ] # Configure whether HTTP requests follow HTTP 3xx redirects. - [follow_redirects: | default = true] + [follow_redirects: | default = true] # Configures the queue used to write to remote storage. queue_config: @@ -719,7 +729,7 @@ The `gcs_storage_config` configures GCS as a general storage for different data # Enable HTTP/2 when connecting to GCS. # CLI flag: -.gcs.enable-http2 -[enable_http2: | default = true] +[enable_http2: | default = true] ``` ## s3_storage_config @@ -898,6 +908,10 @@ The `frontend_worker` configures the worker - running within the Loki querier - # CLI flag: -querier.worker-parallelism [parallelism: | default = 10] +# Force worker concurrency to match the -querier.max-concurrent option. Overrides querier.worker-parallelism. +# CLI flag: -querier.worker-match-max-concurrent +[match_max_concurrent: | default = false] + # How often to query the frontend_address DNS to resolve frontend addresses. # Also used to determine how often to poll the scheduler-ring for addresses if configured. # CLI flag: -querier.dns-lookup-period @@ -991,10 +1005,14 @@ lifecycler: # CLI flag: -ingester.join-after [join_after: | default = 0s] + # Observe tokens after generating to resolve collisions. Useful when using a gossip ring. + # CLI flag: -ingester.observe-period + [observe_period: | default = 0s] + # Minimum duration to wait before becoming ready. This is to work around race # conditions with ingesters exiting and updating the ring. # CLI flag: -ingester.min-ready-duration - [min_ready_duration: | default = 1m] + [min_ready_duration: | default = 15s] # Name of network interfaces to read addresses from. # CLI flag: -ingester.lifecycler.interface @@ -1004,12 +1022,12 @@ lifecycler: # Duration to sleep before exiting to ensure metrics are scraped. # CLI flag: -ingester.final-sleep - [final_sleep: | default = 0s] + [final_sleep: | default = 30s] # Number of times to try and transfer chunks when leaving before # falling back to flushing to the store. Zero = no transfers are done. # CLI flag: -ingester.max-transfer-retries -[max_transfer_retries: | default = 10] +[max_transfer_retries: | default = 0] # How many flushes can happen concurrently from each stream. # CLI flag: -ingester.concurrent-flushes @@ -1025,7 +1043,7 @@ lifecycler: # How long chunks should be retained in-memory after they've been flushed. # CLI flag: -ingester.chunks-retain-period -[chunk_retain_period: | default = 15m] +[chunk_retain_period: | default = 0s] # How long chunks should sit in-memory with no updates before # being flushed if they don't hit the max block size. This means @@ -1042,10 +1060,10 @@ lifecycler: # A target _compressed_ size in bytes for chunks. # This is a desired size not an exact size, chunks may be slightly bigger # or significantly smaller if they get flushed for other reasons (e.g. chunk_idle_period) -# The default value of 0 for this will create chunks with a fixed 10 blocks, +# A value of 0 creates chunks with a fixed 10 blocks, # A non zero value will create chunks with a variable number of blocks to meet the target size. # CLI flag: -ingester.chunk-target-size -[chunk_target_size: | default = 0] +[chunk_target_size: | default = 1572864] # The compression algorithm to use for chunks. (supported: gzip, lz4, snappy) # You should choose your algorithm depending on your need: @@ -1482,7 +1500,7 @@ cassandra: # Instruct the Cassandra driver to not attempt to get host # info from the system.peers table. # CLI flag: -cassandra.disable-initial-host-lookup - [disable_initial_host_lookup: | default = false] + [disable_initial_host_lookup: | default = false] # Use SSL when connecting to Cassandra instances. # CLI flag: -cassandra.ssl @@ -1490,7 +1508,7 @@ cassandra: # Require SSL certificate validation when SSL is enabled. # CLI flag: -cassandra.host-verification - [host_verification: | default = true] + [host_verification: | default = true] # Path to certificate file to verify the peer when SSL is enabled. # CLI flag: -cassandra.ca-path @@ -1498,7 +1516,7 @@ cassandra: # Enable password authentication when connecting to Cassandra. # CLI flag: -cassandra.auth - [auth: | default = false] + [auth: | default = false] # Username for password authentication when auth is true. # CLI flag: -cassandra.username @@ -1708,7 +1726,7 @@ memcached: # Configures how many keys to fetch in each batch request. # CLI flag: -.memcached.batchsize - batch_size: + batch_size: | default = 1024 # Maximum active requests to memcached. # CLI flag: -.memcached.parallelism @@ -1744,7 +1762,27 @@ memcached_client: # Whether or not to use a consistent hash to discover multiple memcached servers. # CLI flag: -.memcached.consistent-hash - [consistent_hash: ] + [consistent_hash: | default = true] + + # Trip the circuit breaker after this number of consecutive dial failures. + # A value of 0 disables the circuit breaker. + # CLI flag: -.memcached.circuit-breaker-consecutive-failures + [circuit_breaker_consecutive_failures: | default = 10] + + # Duration the circuit breaker remains open after tripping. + # If set to 0, the duration is 60 seconds. + # CLI flag: -.memcached.circuit-breaker-timeout + [circuit_breaker_timeout: | default = 10s] + + # Reset the circuit breaker counts after this duration. + # A value of 0 never resets the circuit breaker. + # CLI flag: -.memcached.circuit-breaker-interval + [circuit_breaker_interval: | default = 10s] + + # The maximum size of an item stored in memcached. + # Bigger items are not stored. If set to 0, no maximum size is enforced. + # CLI flag: -.memcached.max-item-size + [max_item_size: | default = 0] redis: # Redis Server or Cluster configuration endpoint to use for caching. A comma-separated list of endpoints @@ -1758,7 +1796,7 @@ redis: # Maximum time to wait before giving up on redis requests. # CLI flag: -.redis.timeout - [timeout: | default = 100ms] + [timeout: | default = 500ms] # How long keys stay in the redis. # CLI flag: -.redis.expiration @@ -1766,7 +1804,7 @@ redis: # Database index. # CLI flag: -.redis.db - [db: ] + [db: | default = 0] # Maximum number of connections in the pool. # CLI flag: -.redis.pool-size @@ -1780,6 +1818,10 @@ redis: # CLI flag: -.redis.tls-enabled [tls_enabled: | default = false] + # Skip validating server certificate. + # CLI flag: -.redis.tls-insecure-skip-verify + [tls_insecure_skip_verify: | default = false] + # Close connections after remaining idle for this duration. # If the value is zero, then idle connections are not closed. # CLI flag: -.redis.idle-timeout @@ -1801,8 +1843,9 @@ fifocache: [max_size_items: | default = 0] # The expiry duration for the cache. + # The default value of 0 disables expiration. # CLI flag: -.fifocache.duration - [validity: | default = 1h] + [validity: ] ``` ## schema_config @@ -1893,7 +1936,7 @@ compacts index shards to more performant forms. # (Experimental) Activate custom (per-stream,per-tenant) retention. # CLI flag: -boltdb.shipper.compactor.retention-enabled -[retention_enabled: | default = false] +[retention_enabled: | default = false] # Delay after which chunks will be fully deleted during retention. # CLI flag: -boltdb.shipper.compactor.retention-delete-delay @@ -1965,7 +2008,7 @@ The `limits_config` block configures global and per-tenant limits in Loki. # Whether or not old samples will be rejected. # CLI flag: -validation.reject-old-samples -[reject_old_samples: | default = true] +[reject_old_samples: | default = true] # Maximum accepted sample age before rejecting. # CLI flag: -validation.reject-old-samples.max-age @@ -1980,14 +2023,10 @@ The `limits_config` block configures global and per-tenant limits in Loki. # CLI flag: -validation.enforce-metric-name [enforce_metric_name: | default = true] -# Maximum number of active streams per user, per ingester. 0 to disable. -# CLI flag: -ingester.max-streams-per-user -[max_streams_per_user: | default = 0] - # Maximum line size on ingestion path. Example: 256kb. -# There is no limit when unset. +# There is no limit when unset or set to 0. # CLI flag: -distributor.max-line-size -[max_line_size: | default = none ] +[max_line_size: | default = 0 ] # Truncate log lines when they exceed max_line_size. # CLI flag: -distributor.max-line-size-truncate @@ -1997,6 +2036,10 @@ The `limits_config` block configures global and per-tenant limits in Loki. # CLI flag: -validation.max-entries-limit [max_entries_limit_per_query: | default = 5000 ] +# Maximum number of active streams per user, per ingester. 0 to make it unlimited. +# CLI flag: -ingester.max-streams-per-user +[max_streams_per_user: | default 0] + # Maximum number of active streams per user, across the cluster. 0 to disable. # When the global limit is enabled, each ingester is configured with a dynamic # local limit based on the replication factor and the current number of healthy @@ -2006,7 +2049,7 @@ The `limits_config` block configures global and per-tenant limits in Loki. # When true, out-of-order writes are accepted. # CLI flag: -ingester.unordered-writes -[unordered_writes: | default = true] +[unordered_writes: | default = true] # Maximum number of chunks that can be fetched by a single query. # CLI flag: -store.query-chunk-limit @@ -2113,7 +2156,7 @@ The `limits_config` block configures global and per-tenant limits in Loki. [max_query_lookback: | default = 0] # Disable recording rules remote-write. -[ruler_remote_write_disabled: | default = false] +[ruler_remote_write_disabled: | default = false] # The URL of the endpoint to send samples to. [ruler_remote_write_url: ] @@ -2153,7 +2196,7 @@ The `limits_config` block configures global and per-tenant limits in Loki. [ruler_remote_write_queue_max_backoff: ] # Retry upon receiving a 429 status code from the remote-write storage. # This is experimental and might change in the future. -[ruler_remote_write_queue_retry_on_ratelimit: ] +[ruler_remote_write_queue_retry_on_ratelimit: ] # Limit queries that can be sharded. # Queries within the time range of now and now minus this sharding lookback @@ -2198,7 +2241,7 @@ The `grpc_client_config` block configures a client connection to a gRPC service. # Enable backoff and retry when a rate limit is hit. # CLI flag: -.backoff-on-ratelimits -[backoff_on_ratelimits: | default = false] +[backoff_on_ratelimits: | default = false] # Configures backoff when enabled. backoff_config: