Skip to content

Instantly share code, notes, and snippets.

@bbenno
Last active June 27, 2024 19:17
Show Gist options
  • Save bbenno/549ddbaef41696ab029bae1a21ce7f9e to your computer and use it in GitHub Desktop.
Save bbenno/549ddbaef41696ab029bae1a21ce7f9e to your computer and use it in GitHub Desktop.
"one-file" configuraiton of Grafana Loki v3.0.x including default values.
# A comma-separated list of components to run. The default value 'all' runs Loki
# in single binary mode. The value 'read' is an alias to run only read-path
# related components such as the querier and query-frontend, but all in the same
# process. The value 'write' is an alias to run only write-path related
# components such as the distributor and compactor, but all in the same process.
# Supported values: all, compactor, distributor, ingester, querier,
# query-scheduler, ingester-querier, query-frontend, index-gateway, ruler,
# table-manager, read, write. A full list of available targets can be printed
# when running Loki with the '-list-targets' command line flag.
# CLI flag: -target
#target: "all"
# Enables authentication through the X-Scope-OrgID header, which must be present
# if true. If false, the OrgID will always be set to 'fake'.
# CLI flag: -auth.enabled
#auth_enabled: true
# The amount of virtual memory in bytes to reserve as ballast in order to
# optimize garbage collection. Larger ballasts result in fewer garbage
# collection passes, reducing CPU overhead at the cost of heap size. The ballast
# will not consume physical memory, because it is never read from. It will,
# however, distort metrics, because it is counted as live memory.
# CLI flag: -config.ballast-bytes
#ballast_bytes: 0
# Configures the server of the launched module(s).
server: # Optional
# HTTP server listen network, default tcp
# CLI flag: -server.http-listen-network
#http_listen_network: "tcp"
# HTTP server listen address.
# CLI flag: -server.http-listen-address
#http_listen_address: ""
# HTTP server listen port.
# CLI flag: -server.http-listen-port
#http_listen_port: 3100
# Maximum number of simultaneous http connections, <=0 to disable
# CLI flag: -server.http-conn-limit
#http_listen_conn_limit: 0
# gRPC server listen network
# CLI flag: -server.grpc-listen-network
#grpc_listen_network: "tcp"
# gRPC server listen address.
# CLI flag: -server.grpc-listen-address
#grpc_listen_address: ""
# gRPC server listen port.
# CLI flag: -server.grpc-listen-port
#grpc_listen_port: 9095
# Maximum number of simultaneous grpc connections, <=0 to disable
# CLI flag: -server.grpc-conn-limit
#grpc_listen_conn_limit: 0
# Comma-separated list of cipher suites to use. If blank, the default Go cipher
# suites is used.
# CLI flag: -server.tls-cipher-suites
#tls_cipher_suites: ""
# Minimum TLS version to use. Allowed values: VersionTLS10, VersionTLS11,
# VersionTLS12, VersionTLS13. If blank, the Go TLS minimum version is used.
# CLI flag: -server.tls-min-version
#tls_min_version: ""
http_tls_config:
# Server TLS certificate. This configuration parameter is YAML only.
#cert: ""
# Server TLS key. This configuration parameter is YAML only.
#key: ""
# Root certificate authority used to verify client certificates. This
# configuration parameter is YAML only.
#client_ca: ""
# HTTP server cert path.
# CLI flag: -server.http-tls-cert-path
#cert_file: ""
# HTTP server key path.
# CLI flag: -server.http-tls-key-path
#key_file: ""
# HTTP TLS Client Auth type.
# CLI flag: -server.http-tls-client-auth
#client_auth_type: ""
# HTTP TLS Client CA path.
# CLI flag: -server.http-tls-ca-path
#client_ca_file: ""
grpc_tls_config:
# Server TLS certificate. This configuration parameter is YAML only.
#cert: ""
# Server TLS key. This configuration parameter is YAML only.
#key: ""
# Root certificate authority used to verify client certificates. This
# configuration parameter is YAML only.
#client_ca: ""
# GRPC TLS server cert path.
# CLI flag: -server.grpc-tls-cert-path
#cert_file: ""
# GRPC TLS server key path.
# CLI flag: -server.grpc-tls-key-path
#key_file: ""
# GRPC TLS Client Auth type.
# CLI flag: -server.grpc-tls-client-auth
#client_auth_type: ""
# GRPC TLS Client CA path.
# CLI flag: -server.grpc-tls-ca-path
#client_ca_file: ""
# Register the intrumentation handlers (/metrics etc).
# CLI flag: -server.register-instrumentation
#register_instrumentation: true
# If set to true, gRPC statuses will be reported in instrumentation labels with
# their string representations. Otherwise, they will be reported as "error".
# CLI flag: -server.report-grpc-codes-in-instrumentation-label-enabled
#report_grpc_codes_in_instrumentation_label_enabled: false
# Timeout for graceful shutdowns
# CLI flag: -server.graceful-shutdown-timeout
#graceful_shutdown_timeout: 30s
# Read timeout for entire HTTP request, including headers and body.
# CLI flag: -server.http-read-timeout
#http_server_read_timeout: 30s
# Read timeout for HTTP request headers. If set to 0, value of
# -server.http-read-timeout is used.
# CLI flag: -server.http-read-header-timeout
#http_server_read_header_timeout: 0s
# Write timeout for HTTP server
# CLI flag: -server.http-write-timeout
#http_server_write_timeout: 30s
# Idle timeout for HTTP server
# CLI flag: -server.http-idle-timeout
#http_server_idle_timeout: 2m
# Log closed connections that did not receive any response, most likely because
# client didn't send any request within timeout.
# CLI flag: -server.http-log-closed-connections-without-response-enabled
#http_log_closed_connections_without_response_enabled: false
# Limit on the size of a gRPC message this server can receive (bytes).
# CLI flag: -server.grpc-max-recv-msg-size-bytes
#grpc_server_max_recv_msg_size: 4194304
# Limit on the size of a gRPC message this server can send (bytes).
# CLI flag: -server.grpc-max-send-msg-size-bytes
#grpc_server_max_send_msg_size: 4194304
# Limit on the number of concurrent streams for gRPC calls per client connection
# (0 = unlimited)
# CLI flag: -server.grpc-max-concurrent-streams
#grpc_server_max_concurrent_streams: 100
# The duration after which an idle connection should be closed. Default:
# infinity
# CLI flag: -server.grpc.keepalive.max-connection-idle
#grpc_server_max_connection_idle: 2562047h47m16.854775807s
# The duration for the maximum amount of time a connection may exist before it
# will be closed. Default: infinity
# CLI flag: -server.grpc.keepalive.max-connection-age
#grpc_server_max_connection_age: 2562047h47m16.854775807s
# An additive period after max-connection-age after which the connection will be
# forcibly closed. Default: infinity
# CLI flag: -server.grpc.keepalive.max-connection-age-grace
#grpc_server_max_connection_age_grace: 2562047h47m16.854775807s
# Duration after which a keepalive probe is sent in case of no activity over the
# connection., Default: 2h
# CLI flag: -server.grpc.keepalive.time
#grpc_server_keepalive_time: 2h
# After having pinged for keepalive check, the duration after which an idle
# connection should be closed, Default: 20s
# CLI flag: -server.grpc.keepalive.timeout
#grpc_server_keepalive_timeout: 20s
# Minimum amount of time a client should wait before sending a keepalive ping.
# If client sends keepalive ping more often, server will send GOAWAY and close
# the connection.
# CLI flag: -server.grpc.keepalive.min-time-between-pings
#grpc_server_min_time_between_pings: 10s
# If true, server allows keepalive pings even when there are no active
# streams(RPCs). If false, and client sends ping when there are no active
# streams, server will send GOAWAY and close the connection.
# CLI flag: -server.grpc.keepalive.ping-without-stream-allowed
#grpc_server_ping_without_stream_allowed: true
# If non-zero, configures the amount of GRPC server workers used to serve the
# requests.
# CLI flag: -server.grpc.num-workers
#grpc_server_num_workers: 0
# Output log messages in the given format. Valid formats: [logfmt, json]
# CLI flag: -log.format
#log_format: "logfmt"
# Only log messages with the given severity or above. Valid levels: [debug,
# info, warn, error]
# CLI flag: -log.level
#log_level: "info"
# Optionally log the source IPs.
# CLI flag: -server.log-source-ips-enabled
#log_source_ips_enabled: false
# Header field storing the source IPs. Only used if
# server.log-source-ips-enabled is true. If not set the default Forwarded,
# X-Real-IP and X-Forwarded-For headers are used
# CLI flag: -server.log-source-ips-header
#log_source_ips_header: ""
# Regex for matching the source IPs. Only used if server.log-source-ips-enabled
# is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For
# headers are used
# CLI flag: -server.log-source-ips-regex
#log_source_ips_regex: ""
# Optionally log request headers.
# CLI flag: -server.log-request-headers
#log_request_headers: false
# Optionally log requests at info level instead of debug level. Applies to
# request headers as well if server.log-request-headers is enabled.
# CLI flag: -server.log-request-at-info-level-enabled
#log_request_at_info_level_enabled: false
# Comma separated list of headers to exclude from loggin. Only used if
# server.log-request-headers is true.
# CLI flag: -server.log-request-headers-exclude-list
#log_request_exclude_headers_list: ""
# Base path to serve all API routes from (e.g. /v1/)
# CLI flag: -server.path-prefix
#http_path_prefix: ""
# Configures the distributor.
distributor: # Optional
ring:
kvstore:
# Backend storage to use for the ring. Supported values are: consul, etcd,
# inmemory, memberlist, multi.
# CLI flag: -distributor.ring.store
#store: "consul"
# The prefix for the keys in the store. Should end with a /.
# CLI flag: -distributor.ring.prefix
#prefix: "collectors/"
# 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: <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: <etcd>]
multi:
# Primary backend storage used by multi-client.
# CLI flag: -distributor.ring.multi.primary
#primary: ""
# Secondary backend storage used by multi-client.
# CLI flag: -distributor.ring.multi.secondary
#secondary: ""
# Mirror writes to secondary store.
# CLI flag: -distributor.ring.multi.mirror-enabled
#mirror_enabled: false
# Timeout for storing value to secondary store.
# CLI flag: -distributor.ring.multi.mirror-timeout
#mirror_timeout: 2s
# Period at which to heartbeat to the ring. 0 = disabled.
# CLI flag: -distributor.ring.heartbeat-period
#heartbeat_period: 5s
# The heartbeat timeout after which distributors are considered unhealthy
# within the ring. 0 = never (timeout disabled).
# CLI flag: -distributor.ring.heartbeat-timeout
#heartbeat_timeout: 1m
# Name of network interface to read address from.
# CLI flag: -distributor.ring.instance-interface-names
#instance_interface_names: [<private network interfaces>]
rate_store:
# The max number of concurrent requests to make to ingester stream apis
# CLI flag: -distributor.rate-store.max-request-parallelism
#max_request_parallelism: 200
# The interval on which distributors will update current stream rates from
# ingesters
# CLI flag: -distributor.rate-store.stream-rate-update-interval
#stream_rate_update_interval: 1s
# Timeout for communication between distributors and any given ingester when
# updating rates
# CLI flag: -distributor.rate-store.ingester-request-timeout
#ingester_request_timeout: 500ms
# If enabled, detailed logs and spans will be emitted.
# CLI flag: -distributor.rate-store.debug
#debug: false
# Customize the logging of write failures.
write_failures_logging:
# Log volume allowed (per second). Default: 1KB.
# CLI flag: -distributor.write-failures-logging.rate
#rate: 1KB
# Whether a insight=true key should be logged or not. Default: false.
# CLI flag: -distributor.write-failures-logging.add-insights-label
#add_insights_label: false
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: [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]
# Configures the querier. Only appropriate when running all modules or just the
# querier.
querier: # Optional
# Maximum duration for which the live tailing requests are served.
# CLI flag: -querier.tail-max-duration
#tail_max_duration: 1h
# Time to wait before sending more than the minimum successful query requests.
# CLI flag: -querier.extra-query-delay
#extra_query_delay: 0s
# Maximum lookback beyond which queries are not sent to ingester. 0 means all
# queries are sent to ingester.
# CLI flag: -querier.query-ingesters-within
#query_ingesters_within: 3h
engine:
# The maximum amount of time to look back for log lines. Used only for instant
# log queries.
# CLI flag: -querier.engine.max-lookback-period
#max_look_back_period: 30s
# The maximum number of queries that can be simultaneously processed by the
# querier.
# CLI flag: -querier.max-concurrent
#max_concurrent: 4
# Only query the store, and not attempt any ingesters. This is useful for
# running a standalone querier pool operating only against stored data.
# CLI flag: -querier.query-store-only
#query_store_only: false
# When true, queriers only query the ingesters, and not stored data. This is
# useful when the object store is unavailable.
# CLI flag: -querier.query-ingester-only
#query_ingester_only: false
# When true, allow queries to span multiple tenants.
# CLI flag: -querier.multi-tenant-queries-enabled
#multi_tenant_queries_enabled: false
# When true, querier limits sent via a header are enforced.
# CLI flag: -querier.per-request-limits-enabled
#per_request_limits_enabled: false
# The query_scheduler block configures the Loki query scheduler. When configured
# it separates the tenant query queues from the query-frontend.
query_scheduler: # Optional
# Maximum number of outstanding requests per tenant per query-scheduler.
# In-flight requests above this limit will fail with HTTP response status code
# 429.
# CLI flag: -query-scheduler.max-outstanding-requests-per-tenant
#max_outstanding_requests_per_tenant: 32000
# Maximum number of levels of nesting of hierarchical queues. 0 means that
# hierarchical queues are disabled.
# CLI flag: -query-scheduler.max-queue-hierarchy-levels
#max_queue_hierarchy_levels: 3
# If a querier disconnects without sending notification about graceful shutdown,
# the query-scheduler will keep the querier in the tenant's shard until the
# forget delay has passed. This feature is useful to reduce the blast radius
# when shuffle-sharding is enabled.
# CLI flag: -query-scheduler.querier-forget-delay
#querier_forget_delay: 0s
# This configures the gRPC client used to report errors back to the
# query-frontend.
# The CLI flags prefix for this block configuration is:
# query-scheduler.grpc-client-config
#[grpc_client_config: <grpc_client>]
# Set to true to have the query schedulers create and place themselves in a
# ring. If no frontend_address or scheduler_address are present anywhere else in
# the configuration, Loki will toggle this value to true.
# CLI flag: -query-scheduler.use-scheduler-ring
#use_scheduler_ring: false
# The hash ring configuration. This option is required only if
# use_scheduler_ring is true.
scheduler_ring:
kvstore:
# Backend storage to use for the ring. Supported values are: consul, etcd,
# inmemory, memberlist, multi.
# CLI flag: -query-scheduler.ring.store
#store: "consul"
# The prefix for the keys in the store. Should end with a /.
# CLI flag: -query-scheduler.ring.prefix
#prefix: "collectors/"
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
# The CLI flags prefix for this block configuration is: query-scheduler.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: query-scheduler.ring
#[etcd: <etcd>]
multi:
# Primary backend storage used by multi-client.
# CLI flag: -query-scheduler.ring.multi.primary
#primary: ""
# Secondary backend storage used by multi-client.
# CLI flag: -query-scheduler.ring.multi.secondary
#secondary: ""
# Mirror writes to secondary store.
# CLI flag: -query-scheduler.ring.multi.mirror-enabled
#mirror_enabled: false
# Timeout for storing value to secondary store.
# CLI flag: -query-scheduler.ring.multi.mirror-timeout
#mirror_timeout: 2s
# Period at which to heartbeat to the ring. 0 = disabled.
# CLI flag: -query-scheduler.ring.heartbeat-period
#heartbeat_period: 15s
# The heartbeat timeout after which compactors are considered unhealthy within
# the ring. 0 = never (timeout disabled).
# CLI flag: -query-scheduler.ring.heartbeat-timeout
#heartbeat_timeout: 1m
# File path where tokens are stored. If empty, tokens are not stored at
# shutdown and restored at startup.
# CLI flag: -query-scheduler.ring.tokens-file-path
#tokens_file_path: ""
# True to enable zone-awareness and replicate blocks across different
# availability zones.
# CLI flag: -query-scheduler.ring.zone-awareness-enabled
#zone_awareness_enabled: false
# Instance ID to register in the ring.
# CLI flag: -query-scheduler.ring.instance-id
#instance_id: "<hostname>"
# Name of network interface to read address from.
# CLI flag: -query-scheduler.ring.instance-interface-names
#instance_interface_names: [<private network interfaces>]
# Port to advertise in the ring (defaults to server.grpc-listen-port).
# CLI flag: -query-scheduler.ring.instance-port
#instance_port: 0
# IP address to advertise in the ring.
# CLI flag: -query-scheduler.ring.instance-addr
#instance_addr: ""
# The availability zone where this instance is running. Required if
# zone-awareness is enabled.
# CLI flag: -query-scheduler.ring.instance-availability-zone
#instance_availability_zone: ""
# Enable using a IPv6 instance address.
# CLI flag: -query-scheduler.ring.instance-enable-ipv6
#instance_enable_ipv6: false
# The frontend block configures the Loki query-frontend.
frontend: # Optional
# Log queries that are slower than the specified duration. Set to 0 to disable.
# Set to < 0 to enable on all queries.
# CLI flag: -frontend.log-queries-longer-than
#log_queries_longer_than: 0s
# Comma-separated list of request header names to include in query logs. Applies
# to both query stats and slow queries logs.
# CLI flag: -frontend.log-query-request-headers
#log_query_request_headers: ""
# Max body size for downstream prometheus.
# CLI flag: -frontend.max-body-size
#max_body_size: 10485760
# True to enable query statistics tracking. When enabled, a message with some
# statistics is logged for every query.
# CLI flag: -frontend.query-stats-enabled
#query_stats_enabled: false
# Maximum number of outstanding requests per tenant per frontend; requests
# beyond this error with HTTP 429.
# CLI flag: -querier.max-outstanding-requests-per-tenant
#max_outstanding_per_tenant: 2048
# 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: 0s
# DNS hostname used for finding query-schedulers.
# CLI flag: -frontend.scheduler-address
#scheduler_address: ""
# How often to resolve the scheduler-address, in order to look for new
# query-scheduler instances. Also used to determine how often to poll the
# scheduler-ring for addresses if the scheduler-ring is configured.
# CLI flag: -frontend.scheduler-dns-lookup-period
#scheduler_dns_lookup_period: 10s
# Number of concurrent workers forwarding queries to single query-scheduler.
# CLI flag: -frontend.scheduler-worker-concurrency
#scheduler_worker_concurrency: 5
# The grpc_client block configures the gRPC client used to communicate between a
# client and server component in Loki.
# The CLI flags prefix for this block configuration is:
# frontend.grpc-client-config
#[grpc_client_config: <grpc_client>]
# Time to wait for inflight requests to finish before forcefully shutting down.
# This needs to be aligned with the query timeout and the graceful termination
# period of the process orchestrator.
# CLI flag: -frontend.graceful-shutdown-timeout
#graceful_shutdown_timeout: 5m
# Name of network interface to read address from. This address is sent to
# query-scheduler and querier, which uses it to send the query response back to
# query-frontend.
# CLI flag: -frontend.instance-interface-names
#instance_interface_names: [<private network interfaces>]
# Defines the encoding for requests to and responses from the scheduler and
# querier. Can be 'json' or 'protobuf' (defaults to 'json').
# CLI flag: -frontend.encoding
#encoding: "json"
# Compress HTTP responses.
# CLI flag: -querier.compress-http-responses
#compress_responses: true
# URL of downstream Loki.
# CLI flag: -frontend.downstream-url
#downstream_url: ""
# URL of querier for tail proxy.
# CLI flag: -frontend.tail-proxy-url
#tail_proxy_url: ""
# The TLS configuration.
#[tail_tls_config: <tls_config>]
# The query_range block configures the query splitting and caching in the Loki
# query-frontend.
query_range: # Optional
# Mutate incoming queries to align their start and end with their step.
# CLI flag: -querier.align-querier-with-step
#align_queries_with_step: false
results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is: frontend
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.compression
#compression: ""
# Cache query results.
# CLI flag: -querier.cache-results
#cache_results: false
# Maximum number of retries for a single request; beyond this, the downstream
# error is returned.
# CLI flag: -querier.max-retries-per-request
#max_retries: 5
# Perform query parallelisations based on storage sharding configuration and
# query ASTs. This feature is supported only by the chunks storage engine.
# CLI flag: -querier.parallelise-shardable-queries
#parallelise_shardable_queries: true
# A comma-separated list of LogQL vector and range aggregations that should be
# sharded
# CLI flag: -querier.shard-aggregations
#shard_aggregations: ""
# Cache index stats query results.
# CLI flag: -querier.cache-index-stats-results
#cache_index_stats_results: true
# If a cache config is not specified and cache_index_stats_results is true, the
# config for the results cache is used.
index_stats_results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is:
# frontend.index-stats-results-cache
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.index-stats-results-cache.compression
#compression: ""
# Cache volume query results.
# CLI flag: -querier.cache-volume-results
#cache_volume_results: true
# If a cache config is not specified and cache_volume_results is true, the
# config for the results cache is used.
volume_results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is:
# frontend.volume-results-cache
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.volume-results-cache.compression
#compression: ""
# Cache instant metric query results.
# CLI flag: -querier.cache-instant-metric-results
#cache_instant_metric_results: false
# If a cache config is not specified and cache_instant_metric_results is true,
# the config for the results cache is used.
instant_metric_results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is:
# frontend.instant-metric-results-cache
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.instant-metric-results-cache.compression
#compression: ""
# Whether to align the splits of instant metric query with splitByInterval and
# query's exec time. Useful when instant_metric_cache is enabled
# CLI flag: -querier.instant-metric-query-split-align
#instant_metric_query_split_align: false
# Cache series query results.
# CLI flag: -querier.cache-series-results
#cache_series_results: true
# If series_results_cache is not configured and cache_series_results is true,
# the config for the results cache is used.
series_results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is:
# frontend.series-results-cache
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.series-results-cache.compression
#compression: ""
# Cache label query results.
# CLI flag: -querier.cache-label-results
#cache_label_results: true
# If label_results_cache is not configured and cache_label_results is true, the
# config for the results cache is used.
label_results_cache:
# The cache_config block configures the cache backend for a specific Loki
# component.
# The CLI flags prefix for this block configuration is:
# frontend.label-results-cache
[cache: <cache_config>]
# Use compression in cache. The default is an empty value '', which disables
# compression. Supported values are: 'snappy' and ''.
# CLI flag: -frontend.label-results-cache.compression
#compression: ""
# The ruler block configures the Loki ruler.
[ruler: <ruler>]
# Base URL of the Grafana instance.
# CLI flag: -ruler.external.url
[external_url: <url>]
# Datasource UID for the dashboard.
# CLI flag: -ruler.datasource-uid
#datasource_uid: ""
# Labels to add to all alerts.
[external_labels: <list of Labels>]
# The grpc_client block configures the gRPC client used to communicate between a
# client and server component in Loki.
# The CLI flags prefix for this block configuration is: ruler.client
[ruler_client: <grpc_client>]
# How frequently to evaluate rules.
# CLI flag: -ruler.evaluation-interval
#evaluation_interval: 1m
# How frequently to poll for rule changes.
# CLI flag: -ruler.poll-interval
#poll_interval: 1m
# Deprecated: Use -ruler-storage. CLI flags and their respective YAML config
# options instead.
storage:
# Method to use for backend rule storage (configdb, azure, gcs, s3, swift,
# local, bos, cos)
# CLI flag: -ruler.storage.type
#type: ""
# Configures backend rule storage for Azure.
# The CLI flags prefix for this block configuration is: ruler.storage
#[azure: <azure_storage_config>]
# Configures backend rule storage for AlibabaCloud Object Storage (OSS).
# The CLI flags prefix for this block configuration is: ruler
#[alibabacloud: <alibabacloud_storage_config>]
# Configures backend rule storage for GCS.
# The CLI flags prefix for this block configuration is: ruler.storage
#[gcs: <gcs_storage_config>]
# Configures backend rule storage for S3.
# The CLI flags prefix for this block configuration is: ruler
#[s3: <s3_storage_config>]
# Configures backend rule storage for Baidu Object Storage (BOS).
# The CLI flags prefix for this block configuration is: ruler.storage
#[bos: <bos_storage_config>]
# Configures backend rule storage for Swift.
# The CLI flags prefix for this block configuration is: ruler.storage
#[swift: <swift_storage_config>]
# Configures backend rule storage for IBM Cloud Object Storage (COS).
# The CLI flags prefix for this block configuration is: ruler.storage
#[cos: <cos_storage_config>]
# Configures backend rule storage for a local file system directory.
local:
# Directory to scan for rules
# CLI flag: -ruler.storage.local.directory
#directory: ""
# File path to store temporary rule files.
# CLI flag: -ruler.rule-path
#rule_path: "/rules"
# Comma-separated list of Alertmanager URLs to send notifications to. Each
# Alertmanager URL is treated as a separate group in the configuration. Multiple
# Alertmanagers in HA per group can be supported by using DNS resolution via
# '-ruler.alertmanager-discovery'.
# CLI flag: -ruler.alertmanager-url
#alertmanager_url: ""
# Use DNS SRV records to discover Alertmanager hosts.
# CLI flag: -ruler.alertmanager-discovery
#enable_alertmanager_discovery: false
# How long to wait between refreshing DNS resolutions of Alertmanager hosts.
# CLI flag: -ruler.alertmanager-refresh-interval
#alertmanager_refresh_interval: 1m
# If enabled requests to Alertmanager will utilize the V2 API.
# CLI flag: -ruler.alertmanager-use-v2
#enable_alertmanager_v2: false
# List of alert relabel configs.
[alert_relabel_configs: <relabel_config...>]
# Capacity of the queue for notifications to be sent to the Alertmanager.
# CLI flag: -ruler.notification-queue-capacity
#notification_queue_capacity: 10000
# HTTP timeout duration when sending notifications to the Alertmanager.
# CLI flag: -ruler.notification-timeout
#notification_timeout: 10s
alertmanager_client:
# Path to the client certificate, which will be used for authenticating with
# the server. Also requires the key path to be configured.
# CLI flag: -ruler.alertmanager-client.tls-cert-path
#tls_cert_path: ""
# Path to the key for the client certificate. Also requires the client
# certificate to be configured.
# CLI flag: -ruler.alertmanager-client.tls-key-path
#tls_key_path: ""
# Path to the CA certificates to validate server certificate against. If not
# set, the host's root CA certificates are used.
# CLI flag: -ruler.alertmanager-client.tls-ca-path
#tls_ca_path: ""
# Override the expected name on the server certificate.
# CLI flag: -ruler.alertmanager-client.tls-server-name
#tls_server_name: ""
# Skip validating server certificate.
# CLI flag: -ruler.alertmanager-client.tls-insecure-skip-verify
#tls_insecure_skip_verify: false
# Override the default cipher suite list (separated by commas). Allowed
# values:
#
# Secure Ciphers:
# - TLS_AES_128_GCM_SHA256
# - TLS_AES_256_GCM_SHA384
# - TLS_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
#
# Insecure Ciphers:
# - TLS_RSA_WITH_RC4_128_SHA
# - TLS_RSA_WITH_3DES_EDE_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA
# - TLS_RSA_WITH_AES_256_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA256
# - TLS_RSA_WITH_AES_128_GCM_SHA256
# - TLS_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
# - TLS_ECDHE_RSA_WITH_RC4_128_SHA
# - 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: -ruler.alertmanager-client.tls-cipher-suites
#tls_cipher_suites: ""
# Override the default minimum TLS version. Allowed values: VersionTLS10,
# VersionTLS11, VersionTLS12, VersionTLS13
# CLI flag: -ruler.alertmanager-client.tls-min-version
#tls_min_version: ""
# HTTP Basic authentication username. It overrides the username set in the URL
# (if any).
# CLI flag: -ruler.alertmanager-client.basic-auth-username
#basic_auth_username: ""
# HTTP Basic authentication password. It overrides the password set in the URL
# (if any).
# CLI flag: -ruler.alertmanager-client.basic-auth-password
#basic_auth_password: ""
# HTTP Header authorization type (default: Bearer).
# CLI flag: -ruler.alertmanager-client.type
#type: "Bearer"
# HTTP Header authorization credentials.
# CLI flag: -ruler.alertmanager-client.credentials
#credentials: ""
# HTTP Header authorization credentials file.
# CLI flag: -ruler.alertmanager-client.credentials-file
#credentials_file: ""
# Max time to tolerate outage for restoring "for" state of alert.
# CLI flag: -ruler.for-outage-tolerance
#for_outage_tolerance: 1h
# Minimum duration between alert and restored "for" state. This is maintained
# only for alerts with configured "for" time greater than the grace period.
# CLI flag: -ruler.for-grace-period
#for_grace_period: 10m
# Minimum amount of time to wait before resending an alert to Alertmanager.
# CLI flag: -ruler.resend-delay
#resend_delay: 1m
# Distribute rule evaluation using ring backend.
# CLI flag: -ruler.enable-sharding
#enable_sharding: false
# The sharding strategy to use. Supported values are: default, shuffle-sharding.
# CLI flag: -ruler.sharding-strategy
#sharding_strategy: "default"
# The sharding algorithm to use for deciding how rules & groups are sharded.
# Supported values are: by-group, by-rule.
# CLI flag: -ruler.sharding-algo
#sharding_algo: "by-group"
# Time to spend searching for a pending ruler when shutting down.
# CLI flag: -ruler.search-pending-for
#search_pending_for: 5m
# Ring used by Loki ruler. The CLI flags prefix for this block configuration is
# 'ruler.ring'.
ring:
kvstore:
# Backend storage to use for the ring. Supported values are: consul, etcd,
# inmemory, memberlist, multi.
# CLI flag: -ruler.ring.store
#store: "consul"
# The prefix for the keys in the store. Should end with a /.
# CLI flag: -ruler.ring.prefix
#prefix: "rulers/"
# Configuration for a Consul client. Only applies if the selected kvstore is
# consul.
# The CLI flags prefix for this block configuration is: ruler.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: ruler.ring
#[etcd: <etcd>]
multi:
# Primary backend storage used by multi-client.
# CLI flag: -ruler.ring.multi.primary
#primary: ""
# Secondary backend storage used by multi-client.
# CLI flag: -ruler.ring.multi.secondary
#secondary: ""
# Mirror writes to secondary store.
# CLI flag: -ruler.ring.multi.mirror-enabled
#mirror_enabled: false
# Timeout for storing value to secondary store.
# CLI flag: -ruler.ring.multi.mirror-timeout
#mirror_timeout: 2s
# Interval between heartbeats sent to the ring. 0 = disabled.
# CLI flag: -ruler.ring.heartbeat-period
#heartbeat_period: 5s
# The heartbeat timeout after which ruler ring members are considered
# unhealthy within the ring. 0 = never (timeout disabled).
# CLI flag: -ruler.ring.heartbeat-timeout
#heartbeat_timeout: 1m
# Name of network interface to read addresses from.
# CLI flag: -ruler.ring.instance-interface-names
#instance_interface_names: [<private network interfaces>]
# The number of tokens the lifecycler will generate and put into the ring if
# it joined without transferring tokens from another lifecycler.
# CLI flag: -ruler.ring.num-tokens
#num_tokens: 128
# Period with which to attempt to flush rule groups.
# CLI flag: -ruler.flush-period
#flush_period: 1m
# Enable the ruler API.
# CLI flag: -ruler.enable-api
#enable_api: true
# Comma separated list of tenants whose rules this ruler can evaluate. If
# specified, only these tenants will be handled by ruler, otherwise this ruler
# can process rules from all tenants. Subject to sharding.
# CLI flag: -ruler.enabled-tenants
#enabled_tenants: ""
# Comma separated list of tenants whose rules this ruler cannot evaluate. If
# specified, a ruler that would normally pick the specified tenant(s) for
# processing will ignore them instead. Subject to sharding.
# CLI flag: -ruler.disabled-tenants
#disabled_tenants: ""
# Report the wall time for ruler queries to complete as a per user metric and as
# an info level log message.
# CLI flag: -ruler.query-stats-enabled
#query_stats_enabled: false
# Disable the rule_group label on exported metrics.
# CLI flag: -ruler.disable-rule-group-label
#disable_rule_group_label: false
wal:
# The directory in which to write tenant WAL files. Each tenant will have its
# own directory one level below this directory.
# CLI flag: -ruler.wal.dir
#dir: "ruler-wal"
# Frequency with which to run the WAL truncation process.
# CLI flag: -ruler.wal.truncate-frequency
#truncate_frequency: 1h
# Minimum age that samples must exist in the WAL before being truncated.
# CLI flag: -ruler.wal.min-age
#min_age: 5m
# Maximum age that samples must exist in the WAL before being truncated.
# CLI flag: -ruler.wal.max-age
#max_age: 4h
wal_cleaner:
# The minimum age of a WAL to consider for cleaning.
# CLI flag: -ruler.wal-cleaner.min-age
#min_age: 12h
# How often to run the WAL cleaner. 0 = disabled.
# CLI flag: -ruler.wal-cleaner.period
#period: 0s
# Remote-write configuration to send rule samples to a Prometheus remote-write
# endpoint.
remote_write:
# Deprecated: Use 'clients' instead. Configure remote write client.
[client: <RemoteWriteConfig>]
# Configure remote write clients. A map with remote client id as key.
[clients: <map of string to RemoteWriteConfig>]
# Enable remote-write functionality.
# CLI flag: -ruler.remote-write.enabled
[enabled: <boolean> | default = false]
# Minimum period to wait between refreshing remote-write reconfigurations.
# This should be greater than or equivalent to
# -limits.per-user-override-period.
# CLI flag: -ruler.remote-write.config-refresh-period
[config_refresh_period: <duration> | default = 10s]
# Add X-Scope-OrgID header in remote write requests.
# CLI flag: -ruler.remote-write.add-org-id-header
[add_org_id_header: <boolean> | default = true]
# Configuration for rule evaluation.
evaluation:
# The evaluation mode for the ruler. Can be either 'local' or 'remote'. If set
# to 'local', the ruler will evaluate rules locally. If set to 'remote', the
# ruler will evaluate rules remotely. If unset, the ruler will evaluate rules
# locally.
# CLI flag: -ruler.evaluation.mode
[mode: <string> | default = "local"]
# Upper bound of random duration to wait before rule evaluation to avoid
# contention during concurrent execution of rules. Jitter is calculated
# consistently for a given rule. Set 0 to disable (default).
# CLI flag: -ruler.evaluation.max-jitter
[max_jitter: <duration> | default = 0s]
query_frontend:
# GRPC listen address of the query-frontend(s). Must be a DNS address
# (prefixed with dns:///) to enable client side load balancing.
# CLI flag: -ruler.evaluation.query-frontend.address
[address: <string> | default = ""]
# Set to true if query-frontend connection requires TLS.
# CLI flag: -ruler.evaluation.query-frontend.tls-enabled
[tls_enabled: <boolean> | 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: -ruler.evaluation.query-frontend.tls-cert-path
[tls_cert_path: <string> | default = ""]
# Path to the key for the client certificate. Also requires the client
# certificate to be configured.
# CLI flag: -ruler.evaluation.query-frontend.tls-key-path
[tls_key_path: <string> | default = ""]
# Path to the CA certificates to validate server certificate against. If not
# set, the host's root CA certificates are used.
# CLI flag: -ruler.evaluation.query-frontend.tls-ca-path
[tls_ca_path: <string> | default = ""]
# Override the expected name on the server certificate.
# CLI flag: -ruler.evaluation.query-frontend.tls-server-name
[tls_server_name: <string> | default = ""]
# Skip validating server certificate.
# CLI flag: -ruler.evaluation.query-frontend.tls-insecure-skip-verify
[tls_insecure_skip_verify: <boolean> | default = false]
# Override the default cipher suite list (separated by commas). Allowed
# values:
#
# Secure Ciphers:
# - TLS_AES_128_GCM_SHA256
# - TLS_AES_256_GCM_SHA384
# - TLS_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
#
# Insecure Ciphers:
# - TLS_RSA_WITH_RC4_128_SHA
# - TLS_RSA_WITH_3DES_EDE_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA
# - TLS_RSA_WITH_AES_256_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA256
# - TLS_RSA_WITH_AES_128_GCM_SHA256
# - TLS_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
# - TLS_ECDHE_RSA_WITH_RC4_128_SHA
# - 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: -ruler.evaluation.query-frontend.tls-cipher-suites
[tls_cipher_suites: <string> | default = ""]
# Override the default minimum TLS version. Allowed values: VersionTLS10,
# VersionTLS11, VersionTLS12, VersionTLS13
# CLI flag: -ruler.evaluation.query-frontend.tls-min-version
[tls_min_version: <string> | default = ""]
# The ingester_client block configures how the distributor will connect to
# ingesters. Only appropriate when running all components, the distributor, or
# the querier.
[ingester_client: <ingester_client>]
# The ingester block configures the ingester and how the ingester will register
# itself to a key value store.
[ingester: <ingester>]
pattern_ingester:
# Whether the pattern ingester is enabled.
# CLI flag: -pattern-ingester.enabled
#enabled: false
# Configures how the lifecycle of the pattern 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: -pattern-ingester.store
#store: "consul"
# The prefix for the keys in the store. Should end with a /.
# CLI flag: -pattern-ingester.prefix
#prefix: "collectors/"
# 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: <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: <etcd>]
multi:
# Primary backend storage used by multi-client.
# CLI flag: -pattern-ingester.multi.primary
#primary: ""
# Secondary backend storage used by multi-client.
# CLI flag: -pattern-ingester.multi.secondary
#secondary: ""
# Mirror writes to secondary store.
# CLI flag: -pattern-ingester.multi.mirror-enabled
#mirror_enabled: false
# Timeout for storing value to secondary store.
# CLI flag: -pattern-ingester.multi.mirror-timeout
#mirror_timeout: 2s
# The heartbeat timeout after which ingesters are skipped for
# reads/writes. 0 = never (timeout disabled).
# CLI flag: -pattern-ingester.ring.heartbeat-timeout
#heartbeat_timeout: 1m
# The number of ingesters to write to and read from.
# CLI flag: -pattern-ingester.distributor.replication-factor
#replication_factor: 1
# True to enable the zone-awareness and replicate ingested samples across
# different availability zones.
# CLI flag: -pattern-ingester.distributor.zone-awareness-enabled
#zone_awareness_enabled: false
# Comma-separated list of zones to exclude from the ring. Instances in
# excluded zones will be filtered out from the ring.
# CLI flag: -pattern-ingester.distributor.excluded-zones
#excluded_zones: ""
# Number of tokens for each ingester.
# CLI flag: -pattern-ingester.num-tokens
#num_tokens: 128
# Period at which to heartbeat to consul. 0 = disabled.
# CLI flag: -pattern-ingester.heartbeat-period
#heartbeat_period: 5s
# Heartbeat timeout after which instance is assumed to be unhealthy. 0 =
# disabled.
# CLI flag: -pattern-ingester.heartbeat-timeout
#heartbeat_timeout: 1m
# Observe tokens after generating to resolve collisions. Useful when using
# gossiping ring.
# CLI flag: -pattern-ingester.observe-period
#observe_period: 0s
# Period to wait for a claim from another member; will join automatically
# after this.
# CLI flag: -pattern-ingester.join-after
#join_after: 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: -pattern-ingester.min-ready-duration
#min_ready_duration: 15s
# Name of network interface to read address from.
# CLI flag: -pattern-ingester.lifecycler.interface
#interface_names: [<private network interfaces>]
# Enable IPv6 support. Required to make use of IP addresses from IPv6
# interfaces.
# CLI flag: -pattern-ingester.enable-inet6
#enable_inet6: false
# Duration to sleep for before exiting, to ensure metrics are scraped.
# CLI flag: -pattern-ingester.final-sleep
#final_sleep: 0s
# File path where tokens are stored. If empty, tokens are not stored at
# shutdown and restored at startup.
# CLI flag: -pattern-ingester.tokens-file-path
#tokens_file_path: ""
# The availability zone where this instance is running.
# CLI flag: -pattern-ingester.availability-zone
#availability_zone: ""
# 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: -pattern-ingester.unregister-on-shutdown
#unregister_on_shutdown: 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: -pattern-ingester.readiness-check-ring-health
#readiness_check_ring_health: true
# IP address to advertise in the ring.
# CLI flag: -pattern-ingester.lifecycler.addr
#address: ""
# port to advertise in consul (defaults to server.grpc-listen-port).
# CLI flag: -pattern-ingester.lifecycler.port
#port: 0
# ID to register in the ring.
# CLI flag: -pattern-ingester.lifecycler.ID
#id: "<hostname>"
# 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: -pattern-ingester.client-cleanup-period
#client_cleanup_period: 15s
# Run a health check on each ingester client during periodic cleanup.
# CLI flag: -pattern-ingester.health-check-ingesters
#health_check_ingesters: true
# Timeout for the health check.
# CLI flag: -pattern-ingester.remote-timeout
#remote_timeout: 1s
# The remote request timeout on the client side.
# CLI flag: -pattern-ingester.client.timeout
#remote_timeout: 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: <grpc_client>]
# How many flushes can happen concurrently from each stream.
# CLI flag: -pattern-ingester.concurrent-flushes
#concurrent_flushes: 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: -pattern-ingester.flush-check-period
#flush_check_period: 30s
# The index_gateway block configures the Loki index gateway server, responsible
# for serving index queries without the need to constantly interact with the
# object store.
[index_gateway: <index_gateway>]
# Experimental: The bloom_compactor block configures the Loki bloom compactor
# server, responsible for compacting stream indexes into bloom filters and
# merging them as bloom blocks.
[bloom_compactor: <bloom_compactor>]
# Experimental: The bloom_gateway block configures the Loki bloom gateway
# server, responsible for serving queries for filtering chunks based on filter
# expressions.
[bloom_gateway: <bloom_gateway>]
# The storage_config block configures one of many possible stores for both the
# index and chunks. Which configuration to be picked should be defined in
# schema_config block.
[storage_config: <storage_config>]
# The chunk_store_config block configures how chunks will be cached and how long
# to wait before saving them to the backing store.
[chunk_store_config: <chunk_store_config>]
# Configures the chunk index schema and where it is stored.
[schema_config: <schema_config>]
# The compactor block configures the compactor component, which compacts index
# shards for performance.
[compactor: <compactor>]
compactor_grpc_client:
# gRPC client max receive message size (bytes).
# CLI flag: -compactor.grpc-client.grpc-max-recv-msg-size
#max_recv_msg_size: 104857600
# gRPC client max send message size (bytes).
# CLI flag: -compactor.grpc-client.grpc-max-send-msg-size
#max_send_msg_size: 104857600
# Use compression when sending messages. Supported values are: 'gzip',
# 'snappy' and '' (disable compression)
# CLI flag: -compactor.grpc-client.grpc-compression
#grpc_compression: ""
# Rate limit for gRPC client; 0 means disabled.
# CLI flag: -compactor.grpc-client.grpc-client-rate-limit
#rate_limit: 0
# Rate limit burst for gRPC client.
# CLI flag: -compactor.grpc-client.grpc-client-rate-limit-burst
#rate_limit_burst: 0
# Enable backoff and retry when we hit rate limits.
# CLI flag: -compactor.grpc-client.backoff-on-ratelimits
#backoff_on_ratelimits: false
backoff_config:
# Minimum delay when backing off.
# CLI flag: -compactor.grpc-client.backoff-min-period
#min_period: 100ms
# Maximum delay when backing off.
# CLI flag: -compactor.grpc-client.backoff-max-period
#max_period: 10s
# Number of times to backoff and retry before failing.
# CLI flag: -compactor.grpc-client.backoff-retries
#max_retries: 10
# Initial stream window size. Values less than the default are not supported
# and are ignored. Setting this to a value other than the default disables the
# BDP estimator.
# CLI flag: -compactor.grpc-client.initial-stream-window-size
#initial_stream_window_size: 63KiB1023B
# Initial connection window size. Values less than the default are not
# supported and are ignored. Setting this to a value other than the default
# disables the BDP estimator.
# CLI flag: -compactor.grpc-client.initial-connection-window-size
#initial_connection_window_size: 63KiB1023B
# Enable TLS in the gRPC client. This flag needs to be enabled when any other
# TLS flag is set. If set to false, insecure connection to gRPC server will be
# used.
# CLI flag: -compactor.grpc-client.tls-enabled
#tls_enabled: 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: -compactor.grpc-client.tls-cert-path
#tls_cert_path: ""
# Path to the key for the client certificate. Also requires the client
# certificate to be configured.
# CLI flag: -compactor.grpc-client.tls-key-path
#tls_key_path: ""
# Path to the CA certificates to validate server certificate against. If not
# set, the host's root CA certificates are used.
# CLI flag: -compactor.grpc-client.tls-ca-path
#tls_ca_path: ""
# Override the expected name on the server certificate.
# CLI flag: -compactor.grpc-client.tls-server-name
#tls_server_name: ""
# Skip validating server certificate.
# CLI flag: -compactor.grpc-client.tls-insecure-skip-verify
#tls_insecure_skip_verify: false
# Override the default cipher suite list (separated by commas). Allowed
# values:
#
# Secure Ciphers:
# - TLS_AES_128_GCM_SHA256
# - TLS_AES_256_GCM_SHA384
# - TLS_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
#
# Insecure Ciphers:
# - TLS_RSA_WITH_RC4_128_SHA
# - TLS_RSA_WITH_3DES_EDE_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA
# - TLS_RSA_WITH_AES_256_CBC_SHA
# - TLS_RSA_WITH_AES_128_CBC_SHA256
# - TLS_RSA_WITH_AES_128_GCM_SHA256
# - TLS_RSA_WITH_AES_256_GCM_SHA384
# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
# - TLS_ECDHE_RSA_WITH_RC4_128_SHA
# - 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: -compactor.grpc-client.tls-cipher-suites
#tls_cipher_suites: ""
# Override the default minimum TLS version. Allowed values: VersionTLS10,
# VersionTLS11, VersionTLS12, VersionTLS13
# CLI flag: -compactor.grpc-client.tls-min-version
#tls_min_version: ""
# The maximum amount of time to establish a connection. A value of 0 means
# default gRPC client connect timeout and backoff.
# CLI flag: -compactor.grpc-client.connect-timeout
#connect_timeout: 5s
# Initial backoff delay after first connection failure. Only relevant if
# ConnectTimeout > 0.
# CLI flag: -compactor.grpc-client.connect-backoff-base-delay
#connect_backoff_base_delay: 1s
# Maximum backoff delay when establishing a connection. Only relevant if
# ConnectTimeout > 0.
# CLI flag: -compactor.grpc-client.connect-backoff-max-delay
#connect_backoff_max_delay: 5s
# The limits_config block configures global and per-tenant limits in Loki. The
# values here can be overridden in the `overrides` section of the runtime_config
# file
[limits_config: <limits_config>]
# The frontend_worker configures the worker - running within the Loki querier -
# picking up and executing queries enqueued by the query-frontend.
[frontend_worker: <frontend_worker>]
# The table_manager block configures the table manager for retention.
[table_manager: <table_manager>]
# Configuration for memberlist client. Only applies if the selected kvstore is
# memberlist.
#
# When a memberlist config with atleast 1 join_members is defined, kvstore of
# type memberlist is automatically selected for all the components that require
# a ring unless otherwise specified in the component's configuration section.
[memberlist: <memberlist>]
# Configuration for 'runtime config' module, responsible for reloading runtime
# configuration file.
[runtime_config: <runtime_config>]
# These are values which allow you to control aspects of Loki's operation, most
# commonly used for controlling types of higher verbosity logging, the values
# here can be overridden in the `configs` section of the `runtime_config` file.
[operational_config: <operational_config>]
# Configuration for tracing.
[tracing: <tracing>]
# Configuration for analytics.
[analytics: <analytics>]
# Common configuration to be shared between multiple modules. If a more specific
# configuration is given in other sections, the related configuration within
# this section will be ignored.
common: # Optional
#path_prefix: ""
storage:
# The s3_storage_config block configures the connection to Amazon S3 object
# storage backend.
# The CLI flags prefix for this block configuration is: common
s3: # Optional
# S3 endpoint URL with escaped Key and Secret encoded. If only region is
# specified as a host, proper endpoint will be deduced. Use
# inmemory:///<bucket-name> to use a mock in-memory implementation.
# CLI flag: -<prefix>.storage.s3.url
#[s3: <url>]
# Set this to `true` to force the request to use path-style addressing.
# CLI flag: -<prefix>.storage.s3.force-path-style
#s3forcepathstyle: false
# Comma separated list of bucket names to evenly distribute chunks over.
# Overrides any buckets specified in s3.url flag
# CLI flag: -<prefix>.storage.s3.buckets
#bucketnames: ""
# S3 Endpoint to connect to.
# CLI flag: -<prefix>.storage.s3.endpoint
#endpoint: ""
# AWS region to use.
# CLI flag: -<prefix>.storage.s3.region
#region: ""
# AWS Access Key ID
# CLI flag: -<prefix>.storage.s3.access-key-id
#access_key_id: ""
# AWS Secret Access Key
# CLI flag: -<prefix>.storage.s3.secret-access-key
#secret_access_key: ""
# AWS Session Token
# CLI flag: -<prefix>.storage.s3.session-token
#session_token: ""
# Disable https on s3 connection.
# CLI flag: -<prefix>.storage.s3.insecure
#insecure: false
http_config:
# Timeout specifies a time limit for requests made by s3 Client.
# CLI flag: -<prefix>.storage.s3.http.timeout
#timeout: 0s
# The maximum amount of time an idle connection will be held open.
# CLI flag: -<prefix>.storage.s3.http.idle-conn-timeout
#idle_conn_timeout: 1m30s
# If non-zero, specifies the amount of time to wait for a server's response
# headers after fully writing the request.
# CLI flag: -<prefix>.storage.s3.http.response-header-timeout
#response_header_timeout: 0s
# Set to true to skip verifying the certificate chain and hostname.
# CLI flag: -<prefix>.storage.s3.http.insecure-skip-verify
#insecure_skip_verify: false
# Path to the trusted CA file that signed the SSL certificate of the S3
# endpoint.
# CLI flag: -<prefix>.storage.s3.http.ca-file
#ca_file: ""
# The signature version to use for authenticating against S3. Supported values
# are: v4.
# CLI flag: -<prefix>.storage.s3.signature-version
#signature_version: "v4"
# The S3 storage class which objects will use. Supported values are: GLACIER,
# DEEP_ARCHIVE, GLACIER_IR, INTELLIGENT_TIERING, ONEZONE_IA, OUTPOSTS,
# REDUCED_REDUNDANCY, STANDARD, STANDARD_IA.
# CLI flag: -<prefix>.storage.s3.storage-class
#storage_class: "STANDARD"
sse:
# Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.
# CLI flag: -<prefix>.storage.s3.sse.type
#type: ""
# KMS Key ID used to encrypt objects in S3
# CLI flag: -<prefix>.storage.s3.sse.kms-key-id
#kms_key_id: ""
# KMS Encryption Context used for object encryption. It expects JSON formatted
# string.
# CLI flag: -<prefix>.storage.s3.sse.kms-encryption-context
#kms_encryption_context: ""
# Configures back off when S3 get Object.
backoff_config:
# Minimum backoff time when s3 get Object
# CLI flag: -<prefix>.storage.s3.min-backoff
#min_period: 100ms
# Maximum backoff time when s3 get Object
# CLI flag: -<prefix>.storage.s3.max-backoff
#max_period: 3s
# Maximum number of times to retry when s3 get Object
# CLI flag: -<prefix>.storage.s3.max-retries
#max_retries: 5
# The gcs_storage_config block configures the connection to Google Cloud
# Storage object storage backend.
# The CLI flags prefix for this block configuration is: common.storage
[gcs: <gcs_storage_config>]
# The azure_storage_config block configures the connection to Azure object
# storage backend.
# The CLI flags prefix for this block configuration is: common.storage
[azure: <azure_storage_config>]
# The alibabacloud_storage_config block configures the connection to Alibaba
# Cloud Storage object storage backend.
[alibabacloud: <alibabacloud_storage_config>]
# The bos_storage_config block configures the connection to Baidu Object
# Storage (BOS) object storage backend.
# The CLI flags prefix for this block configuration is: common.storage
[bos: <bos_storage_config>]
# The swift_storage_config block configures the connection to OpenStack Object
# Storage (Swift) object storage backend.
# The CLI flags prefix for this block configuration is: common.storage
[swift: <swift_storage_config>]
filesystem:
# Directory to store chunks in.
# CLI flag: -common.storage.filesystem.chunk-directory
#chunks_directory: ""
# Directory to store rules in.
# CLI flag: -common.storage.filesystem.rules-directory
#rules_directory: ""
hedging:
# If set to a non-zero value a second request will be issued at the provided
# duration. Default is 0 (disabled)
# CLI flag: -common.storage.hedge-requests-at
#at: 0s
# The maximum of hedge requests allowed.
# CLI flag: -common.storage.hedge-requests-up-to
#up_to: 2
# The maximum of hedge requests allowed per seconds.
# CLI flag: -common.storage.hedge-max-per-second
#max_per_second: 5
# The cos_storage_config block configures the connection to IBM Cloud Object
# Storage (COS) backend.
# The CLI flags prefix for this block configuration is: common.storage
[cos: <cos_storage_config>]
congestion_control:
# Use storage congestion control (default: disabled).
# CLI flag: -common.storage.congestion-control.enabled
#enabled: false
controller:
# Congestion control strategy to use (default: none, options: 'aimd').
# CLI flag: -common.storage.congestion-control.strategy
#strategy: ""
aimd:
# AIMD starting throughput window size: how many requests can be sent
# per second (default: 2000).
# CLI flag: -common.storage.congestion-control.strategy.aimd.start
#start: 2000
# AIMD maximum throughput window size: upper limit of requests sent per
# second (default: 10000).
# CLI flag: -common.storage.congestion-control.strategy.aimd.upper-bound
#upper_bound: 10000
# AIMD backoff factor when upstream service is throttled to decrease
# number of requests sent per second (default: 0.5).
# CLI flag: -common.storage.congestion-control.strategy.aimd.backoff-factor
#backoff_factor: 0.5
retry:
# Congestion control retry strategy to use (default: none, options:
# 'limited').
# CLI flag: -common.storage.congestion-control.retry.strategy
#strategy: ""
# Maximum number of retries allowed.
# CLI flag: -common.storage.congestion-control.retry.strategy.limited.limit
#limit: 2
hedging:
config:
#at: <duration>
#up_to: <int>
#max_per_second: <int>
# Congestion control hedge strategy to use (default: none, options:
# 'limited').
# CLI flag: -common.storage.congestion-control.hedge.strategy
#strategy: ""
#persist_tokens: <boolean>
#replication_factor: <int>
ring:
kvstore:
# Backend storage to use for the ring. Supported values are: consul, etcd,
# inmemory, memberlist, multi.
# CLI flag: -common.storage.ring.store
#store: "consul"
# The prefix for the keys in the store. Should end with a /.
# CLI flag: -common.storage.ring.prefix
#prefix: "collectors/"
# 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: <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: <etcd>]
multi:
# Primary backend storage used by multi-client.
# CLI flag: -common.storage.ring.multi.primary
#primary: ""
# Secondary backend storage used by multi-client.
# CLI flag: -common.storage.ring.multi.secondary
#secondary: ""
# Mirror writes to secondary store.
# CLI flag: -common.storage.ring.multi.mirror-enabled
#mirror_enabled: false
# Timeout for storing value to secondary store.
# CLI flag: -common.storage.ring.multi.mirror-timeout
#mirror_timeout: 2s
# Period at which to heartbeat to the ring. 0 = disabled.
# CLI flag: -common.storage.ring.heartbeat-period
#heartbeat_period: 15s
# The heartbeat timeout after which compactors are considered unhealthy within
# the ring. 0 = never (timeout disabled).
# CLI flag: -common.storage.ring.heartbeat-timeout
#heartbeat_timeout: 1m
# File path where tokens are stored. If empty, tokens are not stored at
# shutdown and restored at startup.
# CLI flag: -common.storage.ring.tokens-file-path
#tokens_file_path: ""
# True to enable zone-awareness and replicate blocks across different
# availability zones.
# CLI flag: -common.storage.ring.zone-awareness-enabled
#zone_awareness_enabled: false
# Number of tokens to own in the ring.
# CLI flag: -common.storage.ring.num-tokens
#num_tokens: 128
# Factor for data replication.
# CLI flag: -common.storage.ring.replication-factor
#replication_factor: 3
# Instance ID to register in the ring.
# CLI flag: -common.storage.ring.instance-id
#instance_id: "<hostname>"
# Name of network interface to read address from.
# CLI flag: -common.storage.ring.instance-interface-names
#instance_interface_names: [<private network interfaces>]
# Port to advertise in the ring (defaults to server.grpc-listen-port).
# CLI flag: -common.storage.ring.instance-port
#instance_port: 0
# IP address to advertise in the ring.
# CLI flag: -common.storage.ring.instance-addr
#instance_addr: ""
# The availability zone where this instance is running. Required if
# zone-awareness is enabled.
# CLI flag: -common.storage.ring.instance-availability-zone
#instance_availability_zone: ""
# Enable using a IPv6 instance address.
# CLI flag: -common.storage.ring.instance-enable-ipv6
#instance_enable_ipv6: false
#instance_interface_names: [<private network interfaces>]
#instance_addr: ""
# the http address of the compactor in the form http://host:port
# CLI flag: -common.compactor-address
#compactor_address: ""
# the grpc address of the compactor in the form host:port
# CLI flag: -common.compactor-grpc-address
#compactor_grpc_address: ""
# How long to wait between SIGTERM and shutdown. After receiving SIGTERM, Loki
# will report 503 Service Unavailable status via /ready endpoint.
# CLI flag: -shutdown-delay
#shutdown_delay: 0s
# Namespace of the metrics that in previous releases had cortex as namespace.
# This setting is deprecated and will be removed in the next minor release.
# CLI flag: -metrics-namespace
#metrics_namespace: "loki"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment