/get-started/deployment-modes/#monolithic-mode), designed to work with the filesystem storage configuration. It will also configure meta-monitoring of metrics and logs.
+
+{{< admonition type="note" >}}
+You must specify `commonConfig.replication_factor: 1` if you are only using 1 replica, otherwise requests will fail.
+{{< /admonition >}}
+
If you set the `singleBinary.replicas` value to 2 or more, this chart configures Loki to run a *single binary* in a replicated, highly available mode. When running replicas of a single binary, you must configure object storage.
**Before you begin: Software Requirements**
diff --git a/docs/sources/setup/install/helm/reference.md b/docs/sources/setup/install/helm/reference.md
index 159fae0646b5..3aee632a03fe 100644
--- a/docs/sources/setup/install/helm/reference.md
+++ b/docs/sources/setup/install/helm/reference.md
@@ -753,6 +753,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -1030,6 +1031,15 @@ null
{}
+ |
+
+
+ bloomBuilder.serviceAnnotations |
+ object |
+ Annotations for bloom-builder service |
+
+{}
+
|
@@ -1109,8 +1119,6 @@ null
],
"enableStatefulSetAutoDeletePVC": false,
"enabled": false,
- "size": "10Gi",
- "storageClass": null,
"whenDeleted": "Retain",
"whenScaled": "Retain"
},
@@ -1127,6 +1135,7 @@ null
"imagePullSecrets": [],
"name": null
},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -1295,6 +1304,15 @@ null
List of the bloom-gateway PVCs |
+
+ |
+
+
+ bloomGateway.persistence.claims[0].size |
+ string |
+ Size of persistent disk |
+
+"10Gi"
|
@@ -1314,24 +1332,6 @@ false
false
- |
-
-
- bloomGateway.persistence.size |
- string |
- Size of persistent disk |
-
-"10Gi"
-
- |
-
-
- bloomGateway.persistence.storageClass |
- string |
- Storage class to be used. If defined, storageClassName: . If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). |
-
-null
-
|
@@ -1422,6 +1422,15 @@ true
null
+ |
+
+
+ bloomGateway.serviceAnnotations |
+ object |
+ Annotations for bloom-gateway service |
+
+{}
+
|
@@ -1492,11 +1501,15 @@ null
"nodeSelector": {},
"persistence": {
"annotations": {},
- "claims": [],
+ "claims": [
+ {
+ "name": "data",
+ "size": "10Gi",
+ "storageClass": null
+ }
+ ],
"enableStatefulSetAutoDeletePVC": false,
"enabled": false,
- "size": "10Gi",
- "storageClass": null,
"whenDeleted": "Retain",
"whenScaled": "Retain"
},
@@ -1513,6 +1526,7 @@ null
"imagePullSecrets": [],
"name": null
},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -1680,7 +1694,16 @@ null
list |
List of the bloom-planner PVCs |
-[]
+
+
+ |
+
+
+ bloomPlanner.persistence.claims[0].size |
+ string |
+ Size of persistent disk |
+
+"10Gi"
|
@@ -1700,24 +1723,6 @@ false
false
- |
-
-
- bloomPlanner.persistence.size |
- string |
- Size of persistent disk |
-
-"10Gi"
-
- |
-
-
- bloomPlanner.persistence.storageClass |
- string |
- Storage class to be used. If defined, storageClassName: . If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). |
-
-null
-
|
@@ -1808,6 +1813,15 @@ true
null
+ |
+
+
+ bloomPlanner.serviceAnnotations |
+ object |
+ Annotations for bloom-planner service |
+
+{}
+
|
@@ -2025,7 +2039,7 @@ null
chunksCache.persistence.storageSize |
string |
- Size of persistent disk |
+ Size of persistent disk, must be in G or Gi |
"10G"
@@ -2268,6 +2282,7 @@ null
"imagePullSecrets": [],
"name": null
},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -2563,6 +2578,15 @@ true
|
null
+ |
+
+
+ compactor.serviceAnnotations |
+ object |
+ Annotations for compactor service |
+
+{}
+
|
@@ -2658,6 +2682,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -2944,6 +2969,15 @@ null
{}
+ |
+
+
+ distributor.serviceAnnotations |
+ object |
+ Annotations for distributor service |
+
+{}
+
|
@@ -4536,6 +4570,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 300,
"tolerations": []
@@ -4786,6 +4821,15 @@ null
{}
+ |
+
+
+ indexGateway.serviceAnnotations |
+ object |
+ Annotations for index-gateway service |
+
+{}
+
|
@@ -4889,6 +4933,7 @@ null
"readinessProbe": {},
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 300,
"tolerations": [],
@@ -5269,6 +5314,15 @@ false
{}
+ |
+
+
+ ingester.serviceAnnotations |
+ object |
+ Annotations for ingestor service |
+
+{}
+
|
@@ -6147,6 +6201,9 @@ null
Additional storage config |
{
+ "bloom_shipper": {
+ "working_directory": "/var/loki/data/bloomshipper"
+ },
"boltdb_shipper": {
"index_gateway_client": {
"server_address": "{{ include \"loki.indexGatewayAddress\" . }}"
@@ -6429,6 +6486,15 @@ true
"type": "RollingUpdate"
}
+ |
+
+
+ memberlist.service.annotations |
+ object |
+ |
+
+{}
+
|
@@ -6489,7 +6555,12 @@ false
object |
The SecurityContext override for memcached pods |
-{}
+{
+ "fsGroup": 11211,
+ "runAsGroup": 11211,
+ "runAsNonRoot": true,
+ "runAsUser": 11211
+}
|
@@ -7471,6 +7542,7 @@ false
"imagePullSecrets": [],
"name": null
},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -7766,6 +7838,15 @@ true
null
+ |
+
+
+ patternIngester.serviceAnnotations |
+ object |
+ Annotations for pattern ingester service |
+
+{}
+
|
@@ -7860,6 +7941,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": [],
@@ -8212,6 +8294,15 @@ null
{}
+ |
+
+
+ querier.serviceAnnotations |
+ object |
+ Annotations for querier service |
+
+{}
+
|
@@ -8306,6 +8397,7 @@ Defaults to allow skew no more then 1 node
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -8583,6 +8675,15 @@ null
{}
+ |
+
+
+ queryFrontend.serviceAnnotations |
+ object |
+ Annotations for query-frontend service |
+
+{}
+
|
@@ -8654,6 +8755,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 30,
"tolerations": []
@@ -8832,6 +8934,15 @@ null
{}
+ |
+
+
+ queryScheduler.serviceAnnotations |
+ object |
+ Annotations for query-scheduler service |
+
+{}
+
|
@@ -9488,7 +9599,7 @@ null
resultsCache.persistence.storageSize |
string |
- Size of persistent disk |
+ Size of persistent disk, must be in G or Gi |
"10G"
@@ -9753,6 +9864,7 @@ null
"priorityClassName": null,
"replicas": 0,
"resources": {},
+ "serviceAnnotations": {},
"serviceLabels": {},
"terminationGracePeriodSeconds": 300,
"tolerations": []
@@ -10012,6 +10124,15 @@ null
|
{}
+ |
+
+
+ ruler.serviceAnnotations |
+ object |
+ Annotations for ruler service |
+
+{}
+
|
diff --git a/docs/sources/shared/configuration.md b/docs/sources/shared/configuration.md
index a563a24198ad..15426e54d088 100644
--- a/docs/sources/shared/configuration.md
+++ b/docs/sources/shared/configuration.md
@@ -167,264 +167,6 @@ querier_rf1:
# itself to a key value store.
[ingester: ]
-ingester_rf1:
- # Whether the ingester is enabled.
- # CLI flag: -ingester-rf1.enabled
- [enabled: | default = false]
-
- # Configures how the lifecycle of the ingester will operate and where it will
- # register for discovery.
- lifecycler:
- ring:
- kvstore:
- # Backend storage to use for the ring. Supported values are: consul,
- # etcd, inmemory, memberlist, multi.
- # CLI flag: -ingester-rf1.store
- [store: | default = "consul"]
-
- # The prefix for the keys in the store. Should end with a /.
- # CLI flag: -ingester-rf1.prefix
- [prefix: | default = "collectors/"]
-
- # Configuration for a Consul client. Only applies if the selected
- # kvstore is consul.
- # The CLI flags prefix for this block configuration is:
- # ingester-rf1.consul
- [consul: ]
-
- # Configuration for an ETCD v3 client. Only applies if the selected
- # kvstore is etcd.
- # The CLI flags prefix for this block configuration is:
- # ingester-rf1.etcd
- [etcd: ]
-
- multi:
- # Primary backend storage used by multi-client.
- # CLI flag: -ingester-rf1.multi.primary
- [primary: | default = ""]
-
- # Secondary backend storage used by multi-client.
- # CLI flag: -ingester-rf1.multi.secondary
- [secondary: | default = ""]
-
- # Mirror writes to secondary store.
- # CLI flag: -ingester-rf1.multi.mirror-enabled
- [mirror_enabled: | default = false]
-
- # Timeout for storing value to secondary store.
- # CLI flag: -ingester-rf1.multi.mirror-timeout
- [mirror_timeout: | default = 2s]
-
- # The heartbeat timeout after which ingesters are skipped for
- # reads/writes. 0 = never (timeout disabled).
- # CLI flag: -ingester-rf1.ring.heartbeat-timeout
- [heartbeat_timeout: | default = 1m]
-
- # The number of ingesters to write to and read from.
- # CLI flag: -ingester-rf1.distributor.replication-factor
- [replication_factor: | default = 3]
-
- # True to enable the zone-awareness and replicate ingested samples across
- # different availability zones.
- # CLI flag: -ingester-rf1.distributor.zone-awareness-enabled
- [zone_awareness_enabled: | default = false]
-
- # Comma-separated list of zones to exclude from the ring. Instances in
- # excluded zones will be filtered out from the ring.
- # CLI flag: -ingester-rf1.distributor.excluded-zones
- [excluded_zones: | default = ""]
-
- # Number of tokens for each ingester.
- # CLI flag: -ingester-rf1.num-tokens
- [num_tokens: | default = 128]
-
- # Period at which to heartbeat to consul. 0 = disabled.
- # CLI flag: -ingester-rf1.heartbeat-period
- [heartbeat_period: | default = 5s]
-
- # Heartbeat timeout after which instance is assumed to be unhealthy. 0 =
- # disabled.
- # CLI flag: -ingester-rf1.heartbeat-timeout
- [heartbeat_timeout: | default = 1m]
-
- # Observe tokens after generating to resolve collisions. Useful when using
- # gossiping ring.
- # CLI flag: -ingester-rf1.observe-period
- [observe_period: | default = 0s]
-
- # Period to wait for a claim from another member; will join automatically
- # after this.
- # CLI flag: -ingester-rf1.join-after
- [join_after: | default = 0s]
-
- # Minimum duration to wait after the internal readiness checks have passed
- # but before succeeding the readiness endpoint. This is used to slowdown
- # deployment controllers (eg. Kubernetes) after an instance is ready and
- # before they proceed with a rolling update, to give the rest of the cluster
- # instances enough time to receive ring updates.
- # CLI flag: -ingester-rf1.min-ready-duration
- [min_ready_duration: | default = 15s]
-
- # Name of network interface to read address from.
- # CLI flag: -ingester-rf1.lifecycler.interface
- [interface_names: | default = []]
-
- # Enable IPv6 support. Required to make use of IP addresses from IPv6
- # interfaces.
- # CLI flag: -ingester-rf1.enable-inet6
- [enable_inet6: | default = false]
-
- # Duration to sleep for before exiting, to ensure metrics are scraped.
- # CLI flag: -ingester-rf1.final-sleep
- [final_sleep: | default = 0s]
-
- # File path where tokens are stored. If empty, tokens are not stored at
- # shutdown and restored at startup.
- # CLI flag: -ingester-rf1.tokens-file-path
- [tokens_file_path: | default = ""]
-
- # The availability zone where this instance is running.
- # CLI flag: -ingester-rf1.availability-zone
- [availability_zone: | default = ""]
-
- # Unregister from the ring upon clean shutdown. It can be useful to disable
- # for rolling restarts with consistent naming in conjunction with
- # -distributor.extend-writes=false.
- # CLI flag: -ingester-rf1.unregister-on-shutdown
- [unregister_on_shutdown: | default = true]
-
- # When enabled the readiness probe succeeds only after all instances are
- # ACTIVE and healthy in the ring, otherwise only the instance itself is
- # checked. This option should be disabled if in your cluster multiple
- # instances can be rolled out simultaneously, otherwise rolling updates may
- # be slowed down.
- # CLI flag: -ingester-rf1.readiness-check-ring-health
- [readiness_check_ring_health: | default = true]
-
- # IP address to advertise in the ring.
- # CLI flag: -ingester-rf1.lifecycler.addr
- [address: | default = ""]
-
- # port to advertise in consul (defaults to server.grpc-listen-port).
- # CLI flag: -ingester-rf1.lifecycler.port
- [port: | default = 0]
-
- # ID to register in the ring.
- # CLI flag: -ingester-rf1.lifecycler.ID
- [id: | default = ""]
-
- # The maximum age of a segment before it should be flushed. Increasing this
- # value allows more time for a segment to grow to max-segment-size, but may
- # increase latency if the write volume is too small.
- # CLI flag: -ingester-rf1.max-segment-age
- [max_segment_age: | default = 500ms]
-
- # The maximum size of a segment before it should be flushed. It is not a
- # strict limit, and segments can exceed the maximum size when individual
- # appends are larger than the remaining capacity.
- # CLI flag: -ingester-rf1.max-segment-size
- [max_segment_size: | default = 8388608]
-
- # The maximum number of segments to buffer in-memory. Increasing this value
- # allows for large bursts of writes to be buffered in memory, but may increase
- # latency if the write volume exceeds the rate at which segments can be
- # flushed.
- # CLI flag: -ingester-rf1.max-segments
- [max_segments: | default = 10]
-
- # How many flushes can happen concurrently from each stream.
- # CLI flag: -ingester-rf1.concurrent-flushes
- [concurrent_flushes: | default = 32]
-
- # How often should the ingester see if there are any blocks to flush. The
- # first flush check is delayed by a random time up to 0.8x the flush check
- # period. Additionally, there is +/- 1% jitter added to the interval.
- # CLI flag: -ingester-rf1.flush-check-period
- [flush_check_period: | default = 500ms]
-
- flush_op_backoff:
- # Minimum backoff period when a flush fails. Each concurrent flush has its
- # own backoff, see `ingester.concurrent-flushes`.
- # CLI flag: -ingester-rf1.flush-op-backoff-min-period
- [min_period: | default = 100ms]
-
- # Maximum backoff period when a flush fails. Each concurrent flush has its
- # own backoff, see `ingester.concurrent-flushes`.
- # CLI flag: -ingester-rf1.flush-op-backoff-max-period
- [max_period: | default = 1m]
-
- # Maximum retries for failed flushes.
- # CLI flag: -ingester-rf1.flush-op-backoff-retries
- [max_retries: | default = 10]
-
- # The timeout for an individual flush. Will be retried up to
- # `flush-op-backoff-retries` times.
- # CLI flag: -ingester-rf1.flush-op-timeout
- [flush_op_timeout: | default = 10s]
-
- # Forget about ingesters having heartbeat timestamps older than
- # `ring.kvstore.heartbeat_timeout`. This is equivalent to clicking on the
- # `/ring` `forget` button in the UI: the ingester is removed from the ring.
- # This is a useful setting when you are sure that an unhealthy node won't
- # return. An example is when not using stateful sets or the equivalent. Use
- # `memberlist.rejoin_interval` > 0 to handle network partition cases when
- # using a memberlist.
- # CLI flag: -ingester-rf1.autoforget-unhealthy
- [autoforget_unhealthy: | default = false]
-
- # The maximum number of errors a stream will report to the user when a push
- # fails. 0 to make unlimited.
- # CLI flag: -ingester-rf1.max-ignored-stream-errors
- [max_returned_stream_errors: | default = 10]
-
- # Shard factor used in the ingesters for the in process reverse index. This
- # MUST be evenly divisible by ALL schema shard factors or Loki will not start.
- # CLI flag: -ingester-rf1.index-shards
- [index_shards: | default = 32]
-
- # Maximum number of dropped streams to keep in memory during tailing.
- # CLI flag: -ingester-rf1.tailer.max-dropped-streams
- [max_dropped_streams: | default = 10]
-
- # Path where the shutdown marker file is stored. If not set and
- # common.path_prefix is set then common.path_prefix will be used.
- # CLI flag: -ingester-rf1.shutdown-marker-path
- [shutdown_marker_path: | default = ""]
-
- # Interval at which the ingester ownedStreamService checks for changes in the
- # ring to recalculate owned streams.
- # CLI flag: -ingester-rf1.owned-streams-check-interval
- [owned_streams_check_interval: | default = 30s]
-
- # How long stream metadata is retained in memory after it was last seen.
- # CLI flag: -ingester-rf1.stream-retain-period
- [stream_retain_period: | default = 5m]
-
- # Configures how the pattern ingester will connect to the ingesters.
- client_config:
- # Configures how connections are pooled.
- pool_config:
- # How frequently to clean up clients for ingesters that have gone away.
- # CLI flag: -ingester-rf1.client-cleanup-period
- [client_cleanup_period: | default = 15s]
-
- # Run a health check on each ingester client during periodic cleanup.
- # CLI flag: -ingester-rf1.health-check-ingesters
- [health_check_ingesters: | default = true]
-
- # Timeout for the health check.
- # CLI flag: -ingester-rf1.remote-timeout
- [remote_timeout: | default = 1s]
-
- # The remote request timeout on the client side.
- # CLI flag: -ingester-rf1.client.timeout
- [remote_timeout: | default = 5s]
-
- # Configures how the gRPC connection to ingesters work as a client.
- # The CLI flags prefix for this block configuration is:
- # pattern-ingester.client
- [grpc_client_config: ]
-
pattern_ingester:
# Whether the pattern ingester is enabled.
# CLI flag: -pattern-ingester.enabled
@@ -446,14 +188,12 @@ pattern_ingester:
# Configuration for a Consul client. Only applies if the selected
# kvstore is consul.
- # The CLI flags prefix for this block configuration is:
- # pattern-ingester.consul
+ # The CLI flags prefix for this block configuration is: pattern-ingester
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected
# kvstore is etcd.
- # The CLI flags prefix for this block configuration is:
- # pattern-ingester.etcd
+ # The CLI flags prefix for this block configuration is: pattern-ingester
[etcd: ]
multi:
@@ -1061,6 +801,12 @@ kafka_config:
# CLI flag: -kafka.consumer-group
[consumer_group: | default = ""]
+ # How frequently a consumer should commit the consumed offset to Kafka. The
+ # last committed offset is used at startup to continue the consumption from
+ # where it was left.
+ # CLI flag: -kafka.consumer-group-offset-commit-interval
+ [consumer_group_offset_commit_interval: | default = 1s]
+
# How long to retry a failed request to get the last produced offset.
# CLI flag: -kafka.last-produced-offset-retry-timeout
[last_produced_offset_retry_timeout: | default = 10s]
@@ -1069,6 +815,17 @@ kafka_config:
# CLI flag: -kafka.auto-create-topic-enabled
[auto_create_topic_enabled: | default = true]
+ # When auto-creation of Kafka topic is enabled and this value is positive,
+ # Kafka's num.partitions configuration option is set on Kafka brokers with
+ # this value when Loki component that uses Kafka starts. This configuration
+ # option specifies the default number of partitions that the Kafka broker uses
+ # for auto-created topics. Note that this is a Kafka-cluster wide setting, and
+ # applies to any auto-created topic. If the setting of num.partitions fails,
+ # Loki proceeds anyways, but auto-created topics could have an incorrect
+ # number of partitions.
+ # CLI flag: -kafka.auto-create-topic-default-partitions
+ [auto_create_topic_default_partitions: | default = 1000]
+
# The maximum size of a Kafka record data that should be generated by the
# producer. An incoming write request larger than this size is split into
# multiple Kafka records. We strongly recommend to not change this setting
@@ -1082,227 +839,6 @@ kafka_config:
# CLI flag: -kafka.producer-max-buffered-bytes
[producer_max_buffered_bytes: | default = 1073741824]
-kafka_ingester:
- # Whether the kafka ingester is enabled.
- # CLI flag: -kafka-ingester.enabled
- [enabled: | default = false]
-
- # Configures how the lifecycle of the ingester will operate and where it will
- # register for discovery.
- lifecycler:
- ring:
- kvstore:
- # Backend storage to use for the ring. Supported values are: consul,
- # etcd, inmemory, memberlist, multi.
- # CLI flag: -kafka-ingesterstore
- [store: | default = "consul"]
-
- # The prefix for the keys in the store. Should end with a /.
- # CLI flag: -kafka-ingesterprefix
- [prefix: | default = "collectors/"]
-
- # Configuration for a Consul client. Only applies if the selected
- # kvstore is consul.
- # The CLI flags prefix for this block configuration is:
- # kafka-ingesterconsul
- [consul: ]
-
- # Configuration for an ETCD v3 client. Only applies if the selected
- # kvstore is etcd.
- # The CLI flags prefix for this block configuration is:
- # kafka-ingesteretcd
- [etcd: ]
-
- multi:
- # Primary backend storage used by multi-client.
- # CLI flag: -kafka-ingestermulti.primary
- [primary: | default = ""]
-
- # Secondary backend storage used by multi-client.
- # CLI flag: -kafka-ingestermulti.secondary
- [secondary: | default = ""]
-
- # Mirror writes to secondary store.
- # CLI flag: -kafka-ingestermulti.mirror-enabled
- [mirror_enabled: | default = false]
-
- # Timeout for storing value to secondary store.
- # CLI flag: -kafka-ingestermulti.mirror-timeout
- [mirror_timeout: | default = 2s]
-
- # The heartbeat timeout after which ingesters are skipped for
- # reads/writes. 0 = never (timeout disabled).
- # CLI flag: -kafka-ingesterring.heartbeat-timeout
- [heartbeat_timeout: | default = 1m]
-
- # The number of ingesters to write to and read from.
- # CLI flag: -kafka-ingesterdistributor.replication-factor
- [replication_factor: | default = 3]
-
- # True to enable the zone-awareness and replicate ingested samples across
- # different availability zones.
- # CLI flag: -kafka-ingesterdistributor.zone-awareness-enabled
- [zone_awareness_enabled: | default = false]
-
- # Comma-separated list of zones to exclude from the ring. Instances in
- # excluded zones will be filtered out from the ring.
- # CLI flag: -kafka-ingesterdistributor.excluded-zones
- [excluded_zones: | default = ""]
-
- # Number of tokens for each ingester.
- # CLI flag: -kafka-ingesternum-tokens
- [num_tokens: | default = 128]
-
- # Period at which to heartbeat to consul. 0 = disabled.
- # CLI flag: -kafka-ingesterheartbeat-period
- [heartbeat_period: | default = 5s]
-
- # Heartbeat timeout after which instance is assumed to be unhealthy. 0 =
- # disabled.
- # CLI flag: -kafka-ingesterheartbeat-timeout
- [heartbeat_timeout: | default = 1m]
-
- # Observe tokens after generating to resolve collisions. Useful when using
- # gossiping ring.
- # CLI flag: -kafka-ingesterobserve-period
- [observe_period: | default = 0s]
-
- # Period to wait for a claim from another member; will join automatically
- # after this.
- # CLI flag: -kafka-ingesterjoin-after
- [join_after: | default = 0s]
-
- # Minimum duration to wait after the internal readiness checks have passed
- # but before succeeding the readiness endpoint. This is used to slowdown
- # deployment controllers (eg. Kubernetes) after an instance is ready and
- # before they proceed with a rolling update, to give the rest of the cluster
- # instances enough time to receive ring updates.
- # CLI flag: -kafka-ingestermin-ready-duration
- [min_ready_duration: | default = 15s]
-
- # Name of network interface to read address from.
- # CLI flag: -kafka-ingesterlifecycler.interface
- [interface_names: | default = []]
-
- # Enable IPv6 support. Required to make use of IP addresses from IPv6
- # interfaces.
- # CLI flag: -kafka-ingesterenable-inet6
- [enable_inet6: | default = false]
-
- # Duration to sleep for before exiting, to ensure metrics are scraped.
- # CLI flag: -kafka-ingesterfinal-sleep
- [final_sleep: | default = 0s]
-
- # File path where tokens are stored. If empty, tokens are not stored at
- # shutdown and restored at startup.
- # CLI flag: -kafka-ingestertokens-file-path
- [tokens_file_path: | default = ""]
-
- # The availability zone where this instance is running.
- # CLI flag: -kafka-ingesteravailability-zone
- [availability_zone: | default = ""]
-
- # Unregister from the ring upon clean shutdown. It can be useful to disable
- # for rolling restarts with consistent naming in conjunction with
- # -distributor.extend-writes=false.
- # CLI flag: -kafka-ingesterunregister-on-shutdown
- [unregister_on_shutdown: | default = true]
-
- # When enabled the readiness probe succeeds only after all instances are
- # ACTIVE and healthy in the ring, otherwise only the instance itself is
- # checked. This option should be disabled if in your cluster multiple
- # instances can be rolled out simultaneously, otherwise rolling updates may
- # be slowed down.
- # CLI flag: -kafka-ingesterreadiness-check-ring-health
- [readiness_check_ring_health: | default = true]
-
- # IP address to advertise in the ring.
- # CLI flag: -kafka-ingesterlifecycler.addr
- [address: | default = ""]
-
- # port to advertise in consul (defaults to server.grpc-listen-port).
- # CLI flag: -kafka-ingesterlifecycler.port
- [port: | default = 0]
-
- # ID to register in the ring.
- # CLI flag: -kafka-ingesterlifecycler.ID
- [id: | default = ""]
-
- # Path where the shutdown marker file is stored. If not set and
- # common.path_prefix is set then common.path_prefix will be used.
- # CLI flag: -kafka-ingester.shutdown-marker-path
- [shutdown_marker_path: | default = ""]
-
- # The interval at which the ingester will flush and commit offsets to Kafka.
- # If not set, the default flush interval will be used.
- # CLI flag: -kafka-ingester.flush-interval
- [flush_interval: | default = 15s]
-
- # The size at which the ingester will flush and commit offsets to Kafka. If
- # not set, the default flush size will be used.
- # CLI flag: -kafka-ingester.flush-size
- [flush_size: | default = 314572800]
-
- partition_ring:
- # The key-value store used to share the hash ring across multiple instances.
- # This option needs be set on ingesters, distributors, queriers, and rulers
- # when running in microservices mode.
- kvstore:
- # Backend storage to use for the ring. Supported values are: consul, etcd,
- # inmemory, memberlist, multi.
- # CLI flag: -ingester.partition-ring.store
- [store: | default = "memberlist"]
-
- # The prefix for the keys in the store. Should end with a /.
- # CLI flag: -ingester.partition-ring.prefix
- [prefix: | default = "collectors/"]
-
- # Configuration for a Consul client. Only applies if the selected kvstore
- # is consul.
- # The CLI flags prefix for this block configuration is:
- # ingester.partition-ring.consul
- [consul: ]
-
- # Configuration for an ETCD v3 client. Only applies if the selected
- # kvstore is etcd.
- # The CLI flags prefix for this block configuration is:
- # ingester.partition-ring.etcd
- [etcd: ]
-
- multi:
- # Primary backend storage used by multi-client.
- # CLI flag: -ingester.partition-ring.multi.primary
- [primary: | default = ""]
-
- # Secondary backend storage used by multi-client.
- # CLI flag: -ingester.partition-ring.multi.secondary
- [secondary: | default = ""]
-
- # Mirror writes to secondary store.
- # CLI flag: -ingester.partition-ring.multi.mirror-enabled
- [mirror_enabled: | default = false]
-
- # Timeout for storing value to secondary store.
- # CLI flag: -ingester.partition-ring.multi.mirror-timeout
- [mirror_timeout: | default = 2s]
-
- # Minimum number of owners to wait before a PENDING partition gets switched
- # to ACTIVE.
- # CLI flag: -ingester.partition-ring.min-partition-owners-count
- [min_partition_owners_count: | default = 1]
-
- # How long the minimum number of owners are enforced before a PENDING
- # partition gets switched to ACTIVE.
- # CLI flag: -ingester.partition-ring.min-partition-owners-duration
- [min_partition_owners_duration: | default = 10s]
-
- # How long to wait before an INACTIVE partition is eligible for deletion.
- # The partition is deleted only if it has been in INACTIVE state for at
- # least the configured duration and it has no owners registered. A value of
- # 0 disables partitions deletion.
- # CLI flag: -ingester.partition-ring.delete-inactive-partition-after
- [delete_inactive_partition_after: | default = 13h]
-
# Configuration for 'runtime config' module, responsible for reloading runtime
# configuration file.
[runtime_config: ]
@@ -2255,14 +1791,12 @@ ring:
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
- # The CLI flags prefix for this block configuration is:
- # common.storage.ring.consul
+ # The CLI flags prefix for this block configuration is: common.storage.ring
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected kvstore
# is etcd.
- # The CLI flags prefix for this block configuration is:
- # common.storage.ring.etcd
+ # The CLI flags prefix for this block configuration is: common.storage.ring
[etcd: ]
multi:
@@ -2383,6 +1917,19 @@ The `compactor` block configures the compactor component, which compacts index s
# CLI flag: -compactor.retention-table-timeout
[retention_table_timeout: | default = 0s]
+retention_backoff_config:
+ # Minimum delay when backing off.
+ # CLI flag: -compactor.retention-backoff-config.backoff-min-period
+ [min_period: | default = 100ms]
+
+ # Maximum delay when backing off.
+ # CLI flag: -compactor.retention-backoff-config.backoff-max-period
+ [max_period: | default = 10s]
+
+ # Number of times to backoff and retry before failing.
+ # CLI flag: -compactor.retention-backoff-config.backoff-retries
+ [max_retries: | default = 10]
+
# Store used for managing delete requests.
# CLI flag: -compactor.delete-request-store
[delete_request_store: | default = ""]
@@ -2436,13 +1983,12 @@ compactor_ring:
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
- # The CLI flags prefix for this block configuration is:
- # compactor.ring.consul
+ # The CLI flags prefix for this block configuration is: compactor.ring
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected kvstore
# is etcd.
- # The CLI flags prefix for this block configuration is: compactor.ring.etcd
+ # The CLI flags prefix for this block configuration is: compactor.ring
[etcd: ]
multi:
@@ -2521,48 +2067,45 @@ compactor_ring:
Configuration for a Consul client. Only applies if the selected kvstore is `consul`. The supported CLI flags `` used to reference this configuration block are:
-- `common.storage.ring.consul`
-- `compactor.ring.consul`
-- `consul`
-- `distributor.ring.consul`
-- `index-gateway.ring.consul`
-- `ingester-rf1.consul`
-- `ingester.partition-ring.consul`
-- `kafka-ingesterconsul`
-- `pattern-ingester.consul`
-- `query-scheduler.ring.consul`
-- `ruler.ring.consul`
+- `common.storage.ring`
+- `compactor.ring`
+- `distributor.ring`
+- `index-gateway.ring`
+- `ingester.partition-ring`
+- `pattern-ingester`
+- `query-scheduler.ring`
+- `ruler.ring`
```yaml
# Hostname and port of Consul.
-# CLI flag: -.hostname
+# CLI flag: -.consul.hostname
[host: | default = "localhost:8500"]
# ACL Token used to interact with Consul.
-# CLI flag: -.acl-token
+# CLI flag: -.consul.acl-token
[acl_token: | default = ""]
# HTTP timeout when talking to Consul
-# CLI flag: -.client-timeout
+# CLI flag: -.consul.client-timeout
[http_client_timeout: | default = 20s]
# Enable consistent reads to Consul.
-# CLI flag: -.consistent-reads
+# CLI flag: -.consul.consistent-reads
[consistent_reads: | default = false]
# Rate limit when watching key or prefix in Consul, in requests per second. 0
# disables the rate limit.
-# CLI flag: -.watch-rate-limit
+# CLI flag: -.consul.watch-rate-limit
[watch_rate_limit: | default = 1]
# Burst size used in rate limit. Values less than 1 are treated as 1.
-# CLI flag: -.watch-burst-size
+# CLI flag: -.consul.watch-burst-size
[watch_burst_size: | default = 1]
# Maximum duration to wait before retrying a Compare And Swap (CAS) operation.
-# CLI flag: -.cas-retry-delay
+# CLI flag: -.consul.cas-retry-delay
[cas_retry_delay: | default = 1s]
```
@@ -2667,14 +2210,12 @@ ring:
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
- # The CLI flags prefix for this block configuration is:
- # distributor.ring.consul
+ # The CLI flags prefix for this block configuration is: distributor.ring
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected kvstore
# is etcd.
- # The CLI flags prefix for this block configuration is:
- # distributor.ring.etcd
+ # The CLI flags prefix for this block configuration is: distributor.ring
[etcd: ]
multi:
@@ -2707,6 +2248,10 @@ ring:
# CLI flag: -distributor.ring.instance-interface-names
[instance_interface_names: | default = []]
+# Number of workers to push batches to ingesters.
+# CLI flag: -distributor.push-worker-count
+[push_worker_count: | default = 256]
+
rate_store:
# The max number of concurrent requests to make to ingester stream apis
# CLI flag: -distributor.rate-store.max-request-parallelism
@@ -2740,64 +2285,69 @@ otlp_config:
# List of default otlp resource attributes to be picked as index labels
# CLI flag: -distributor.otlp.default_resource_attributes_as_index_labels
[default_resource_attributes_as_index_labels: | default = [service.name service.namespace service.instance.id deployment.environment cloud.region cloud.availability_zone k8s.cluster.name k8s.namespace.name k8s.pod.name k8s.container.name container.name k8s.replicaset.name k8s.deployment.name k8s.statefulset.name k8s.daemonset.name k8s.cronjob.name k8s.job.name]]
+
+# Enable writes to Kafka during Push requests.
+# CLI flag: -distributor.kafka-writes-enabled
+[kafka_writes_enabled: | default = false]
+
+# Enable writes to Ingesters during Push requests. Defaults to true.
+# CLI flag: -distributor.ingester-writes-enabled
+[ingester_writes_enabled: | default = true]
```
### etcd
Configuration for an ETCD v3 client. Only applies if the selected kvstore is `etcd`. The supported CLI flags `` used to reference this configuration block are:
-- `common.storage.ring.etcd`
-- `compactor.ring.etcd`
-- `distributor.ring.etcd`
-- `etcd`
-- `index-gateway.ring.etcd`
-- `ingester-rf1.etcd`
-- `ingester.partition-ring.etcd`
-- `kafka-ingesteretcd`
-- `pattern-ingester.etcd`
-- `query-scheduler.ring.etcd`
-- `ruler.ring.etcd`
+- `common.storage.ring`
+- `compactor.ring`
+- `distributor.ring`
+- `index-gateway.ring`
+- `ingester.partition-ring`
+- `pattern-ingester`
+- `query-scheduler.ring`
+- `ruler.ring`
```yaml
# The etcd endpoints to connect to.
-# CLI flag: -.endpoints
+# CLI flag: -.etcd.endpoints
[endpoints: | default = []]
# The dial timeout for the etcd connection.
-# CLI flag: -.dial-timeout
+# CLI flag: -.etcd.dial-timeout
[dial_timeout: | default = 10s]
# The maximum number of retries to do for failed ops.
-# CLI flag: -.max-retries
+# CLI flag: -.etcd.max-retries
[max_retries: | default = 10]
# Enable TLS.
-# CLI flag: -.tls-enabled
+# CLI flag: -.etcd.tls-enabled
[tls_enabled: | default = false]
# Path to the client certificate, which will be used for authenticating with the
# server. Also requires the key path to be configured.
-# CLI flag: -.tls-cert-path
+# CLI flag: -.etcd.tls-cert-path
[tls_cert_path: | default = ""]
# Path to the key for the client certificate. Also requires the client
# certificate to be configured.
-# CLI flag: -.tls-key-path
+# CLI flag: -.etcd.tls-key-path
[tls_key_path: | default = ""]
# Path to the CA certificates to validate server certificate against. If not
# set, the host's root CA certificates are used.
-# CLI flag: -.tls-ca-path
+# CLI flag: -.etcd.tls-ca-path
[tls_ca_path: | default = ""]
# Override the expected name on the server certificate.
-# CLI flag: -.tls-server-name
+# CLI flag: -.etcd.tls-server-name
[tls_server_name: | default = ""]
# Skip validating server certificate.
-# CLI flag: -.tls-insecure-skip-verify
+# CLI flag: -.etcd.tls-insecure-skip-verify
[tls_insecure_skip_verify: | default = false]
# Override the default cipher suite list (separated by commas). Allowed values:
@@ -2830,20 +2380,20 @@ Configuration for an ETCD v3 client. Only applies if the selected kvstore is `et
# - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
-# CLI flag: -.tls-cipher-suites
+# CLI flag: -.etcd.tls-cipher-suites
[tls_cipher_suites: | default = ""]
# Override the default minimum TLS version. Allowed values: VersionTLS10,
# VersionTLS11, VersionTLS12, VersionTLS13
-# CLI flag: -.tls-min-version
+# CLI flag: -.etcd.tls-min-version
[tls_min_version: | default = ""]
# Etcd username.
-# CLI flag: -.username
+# CLI flag: -.etcd.username
[username: | default = ""]
# Etcd password.
-# CLI flag: -.password
+# CLI flag: -.etcd.password
[password: | default = ""]
```
@@ -3042,7 +2592,6 @@ The `grpc_client` block configures the gRPC client used to communicate between a
- `bloom-gateway-client.grpc`
- `boltdb.shipper.index-gateway-client.grpc`
- `frontend.grpc-client-config`
-- `ingester-rf1.client`
- `ingester.client`
- `metastore.grpc-client-config`
- `pattern-ingester.client`
@@ -3220,14 +2769,12 @@ ring:
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
- # The CLI flags prefix for this block configuration is:
- # index-gateway.ring.consul
+ # The CLI flags prefix for this block configuration is: index-gateway.ring
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected kvstore
# is etcd.
- # The CLI flags prefix for this block configuration is:
- # index-gateway.ring.etcd
+ # The CLI flags prefix for this block configuration is: index-gateway.ring
[etcd: ]
multi:
@@ -3319,12 +2866,10 @@ lifecycler:
# Configuration for a Consul client. Only applies if the selected kvstore
# is consul.
- # The CLI flags prefix for this block configuration is: consul
[consul: ]
# Configuration for an ETCD v3 client. Only applies if the selected
# kvstore is etcd.
- # The CLI flags prefix for this block configuration is: etcd
[etcd: ]
multi:
@@ -3584,6 +3129,71 @@ wal:
# ring to recalculate owned streams.
# CLI flag: -ingester.owned-streams-check-interval
[owned_streams_check_interval: | default = 30s]
+
+kafka_ingestion:
+ # Whether the kafka ingester is enabled.
+ # CLI flag: -ingester.kafka-ingestion-enabled
+ [enabled: | default = false]
+
+ partition_ring:
+ # The key-value store used to share the hash ring across multiple instances.
+ # This option needs be set on ingesters, distributors, queriers, and rulers
+ # when running in microservices mode.
+ kvstore:
+ # Backend storage to use for the ring. Supported values are: consul, etcd,
+ # inmemory, memberlist, multi.
+ # CLI flag: -ingester.partition-ring.store
+ [store: | default = "memberlist"]
+
+ # The prefix for the keys in the store. Should end with a /.
+ # CLI flag: -ingester.partition-ring.prefix
+ [prefix: | default = "collectors/"]
+
+ # Configuration for a Consul client. Only applies if the selected kvstore
+ # is consul.
+ # The CLI flags prefix for this block configuration is:
+ # ingester.partition-ring
+ [consul: ]
+
+ # Configuration for an ETCD v3 client. Only applies if the selected
+ # kvstore is etcd.
+ # The CLI flags prefix for this block configuration is:
+ # ingester.partition-ring
+ [etcd: ]
+
+ multi:
+ # Primary backend storage used by multi-client.
+ # CLI flag: -ingester.partition-ring.multi.primary
+ [primary: | default = ""]
+
+ # Secondary backend storage used by multi-client.
+ # CLI flag: -ingester.partition-ring.multi.secondary
+ [secondary: | default = ""]
+
+ # Mirror writes to secondary store.
+ # CLI flag: -ingester.partition-ring.multi.mirror-enabled
+ [mirror_enabled: | default = false]
+
+ # Timeout for storing value to secondary store.
+ # CLI flag: -ingester.partition-ring.multi.mirror-timeout
+ [mirror_timeout: | default = 2s]
+
+ # Minimum number of owners to wait before a PENDING partition gets switched
+ # to ACTIVE.
+ # CLI flag: -ingester.partition-ring.min-partition-owners-count
+ [min_partition_owners_count: | default = 1]
+
+ # How long the minimum number of owners are enforced before a PENDING
+ # partition gets switched to ACTIVE.
+ # CLI flag: -ingester.partition-ring.min-partition-owners-duration
+ [min_partition_owners_duration: | default = 10s]
+
+ # How long to wait before an INACTIVE partition is eligible for deletion.
+ # The partition is deleted only if it has been in INACTIVE state for at
+ # least the configured duration and it has no owners registered. A value of
+ # 0 disables partitions deletion.
+ # CLI flag: -ingester.partition-ring.delete-inactive-partition-after
+ [delete_inactive_partition_after: | default = 13h]
```
### ingester_client
@@ -3593,16 +3203,26 @@ The `ingester_client` block configures how the distributor will connect to inges
```yaml
# Configures how connections are pooled.
pool_config:
- [client_cleanup_period: ]
+ # How frequently to clean up clients for ingesters that have gone away.
+ # CLI flag: -distributor.client-cleanup-period
+ [client_cleanup_period: | default = 15s]
- [health_check_ingesters: ]
+ # Run a health check on each ingester client during periodic cleanup.
+ # CLI flag: -distributor.health-check-ingesters
+ [health_check_ingesters: | default = true]
- [remote_timeout: ]
+ # How quickly a dead client will be removed after it has been detected to
+ # disappear. Set this to a value to allow time for a secondary health check to
+ # recover the missing client.
+ # CLI flag: -ingester.client.healthcheck-timeout
+ [remote_timeout: | default = 1s]
-[remote_timeout: ]
+# The remote request timeout on the client side.
+# CLI flag: -ingester.client.timeout
+[remote_timeout: | default = 5s]
# Configures how the gRPC connection to ingesters work as a client.
-# The CLI flags prefix for this block configuration is: ingester-rf1.client
+# The CLI flags prefix for this block configuration is: ingester.client
[grpc_client_config: ]
```
@@ -4135,20 +3755,6 @@ shard_streams:
# CLI flag: -bloom-build.split-keyspace-by
[bloom_split_series_keyspace_by: | default = 256]
-# Experimental. Length of the n-grams created when computing blooms from log
-# lines.
-# CLI flag: -bloom-build.ngram-length
-[bloom_ngram_length: | default = 4]
-
-# Experimental. Skip factor for the n-grams created when computing blooms from
-# log lines.
-# CLI flag: -bloom-build.ngram-skip
-[bloom_ngram_skip: