mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-17 17:32:30 +00:00
* feat(client): support region request reuse and route refresh hints (#9540) * feat(client): support shared region requests without deep cloning Signed-off-by: WenyXu <wenymedia@gmail.com> * feat: propagate route refresh retry hints Signed-off-by: WenyXu <wenymedia@gmail.com> * style: preserve local error variant imports in retry hints Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(mito2): distinguish staging rejection from write backpressure Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(meta): preserve legacy retry hints in instruction replies Signed-off-by: WenyXu <wenymedia@gmail.com> * test(client): inline retry hint compatibility cases Signed-off-by: WenyXu <wenymedia@gmail.com> * test(datanode): align batch-open retry hint assertion Signed-off-by: WenyXu <wenymedia@gmail.com> * style: use imported types in region request tests Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com> (cherry picked from commit684c8ff291) Signed-off-by: WenyXu <wenymedia@gmail.com> * refactor(operator): centralize write partitioning and dispatch (#9541) * refactor(operator): centralize write partitioning and dispatch Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(operator): preserve write dispatch behavior during refactor Signed-off-by: WenyXu <wenymedia@gmail.com> * style(operator): import write dispatch error paths Signed-off-by: WenyXu <wenymedia@gmail.com> * style(operator): align dispatch imports and test utilities Signed-off-by: WenyXu <wenymedia@gmail.com> * style(operator): use imported types in partition tests Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com> (cherry picked from commita2d28e6060) Signed-off-by: WenyXu <wenymedia@gmail.com> * feat(operator): retry failed writes with refreshed partitions (#9542) * feat(operator): retry failed writes with refreshed partitions Signed-off-by: WenyXu <wenymedia@gmail.com> * style(operator): simplify retry test type references Signed-off-by: WenyXu <wenymedia@gmail.com> * refactor(operator): clarify write request rebuilding names Signed-off-by: WenyXu <wenymedia@gmail.com> * refactor(operator): encapsulate write retry attempts Signed-off-by: WenyXu <wenymedia@gmail.com> * style(operator): group inserter configuration methods Signed-off-by: WenyXu <wenymedia@gmail.com> * refactor(operator): share routed peers and separate retry decisions Signed-off-by: WenyXu <wenymedia@gmail.com> * refactor(operator): avoid temporary write routing allocations Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com> (cherry picked from commitd86741d0ad) Signed-off-by: WenyXu <wenymedia@gmail.com> * feat(frontend): retry transient distributed write failures (#9543) * refactor(operator): route shared requests through NodeManager Remove the concrete NodeClients requester API and use the existing node manager for owned and shared requests. Preserve the original write hint while the legacy error adapter remains in place. Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(meta): preserve retry policy through error hints Propagate client errors through External and let DDL read retry hints while preserving cleanup and terminal-child policies. Region transport failures retain the legacy Retryable classification, which now also participates in bounded write retries. Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(operator): restore sparse partition tags when rebuilding writes Decode retained primary keys when refreshed partition expressions need different tags. Keep the partitioner and multi-region sparse write regression tests with the fix. Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(operator): stop detached write retries when callers cancel Signed-off-by: WenyXu <wenymedia@gmail.com> * feat(frontend): configure retries across distributed write paths Wire the shared dispatcher through frontend and logical batching, preserving partition columns and request headers. Keep standalone retries disabled and include configuration, batching, and storage regression coverage. Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com> (cherry picked from commit863eebdecb) Signed-off-by: WenyXu <wenymedia@gmail.com> * style(mito2): format index error imports Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com>
461 lines
17 KiB
TOML
461 lines
17 KiB
TOML
## The default timezone of the server.
|
|
## @toml2docs:none-default
|
|
default_timezone = "UTC"
|
|
|
|
## The default column prefix for auto-created time index, value, and native histogram columns.
|
|
## Legacy OTLP summary columns keep their historical `greptime_` prefix.
|
|
## @toml2docs:none-default
|
|
default_column_prefix = "greptime"
|
|
|
|
## Server-side global switch for auto table creation on write.
|
|
## When `false`, a missing table is never auto-created even if the request sets the `auto_create_table` hint to `true`. Default: `true`.
|
|
#+ auto_create_table = true
|
|
|
|
## The user provider for authentication.
|
|
## Examples: "static_user_provider:file:/path/to/users", "static_user_provider:cmd:greptime_user=greptime_pwd"
|
|
## Password verifier formats: "plain:<password>", "pbkdf2_sha256:<iterations>:<hex_salt>:<hex_hash>",
|
|
## "mysql_native_password:<hex_sha1_sha1_password>",
|
|
## "pg_scram_sha256:<iterations>:<hex_salt>:<hex_stored_key>:<hex_server_key>"
|
|
## "pbkdf2_sha256" and "pg_scram_sha256" protect passwords at rest, but cannot authenticate over MySQL's
|
|
## native password handshake; a MySQL client must send the password in cleartext for such users.
|
|
## "mysql_native_password" is MySQL-specific and cannot authenticate over PostgreSQL at all.
|
|
## PostgreSQL SCRAM only covers "plain" and "pg_scram_sha256" users; if any user is "pbkdf2_sha256" or
|
|
## "mysql_native_password", PostgreSQL falls back to cleartext password auth for every user.
|
|
## For "pg_scram_sha256" users, keep the default iteration count (4096) and salt length (16): both are
|
|
## observable in the SCRAM server-first message, and non-default values weaken resistance to username
|
|
## enumeration.
|
|
## @toml2docs:none-default
|
|
#+ user_provider = "static_user_provider:file:/path/to/users"
|
|
|
|
## Maximum total memory for all concurrent write request bodies and messages (HTTP, gRPC, Flight).
|
|
## Set to 0 to disable the limit. Default: "0" (unlimited)
|
|
## @toml2docs:none-default
|
|
#+ max_in_flight_write_bytes = "1GB"
|
|
|
|
## Policy when write bytes quota is exhausted.
|
|
## Options: "wait" (default, 10s timeout), "wait(<duration>)" (e.g., "wait(30s)"), "fail"
|
|
## @toml2docs:none-default
|
|
#+ write_bytes_exhausted_policy = "wait"
|
|
|
|
## The runtime options.
|
|
#+ [runtime]
|
|
## The number of threads to execute the runtime for global read operations.
|
|
#+ global_rt_size = 8
|
|
## The number of threads to execute compact operations.
|
|
#+ compact_rt_size = 4
|
|
## The maximum number of blocking threads for compact operations.
|
|
## Defaults to max(num_cpus / 2, 2).
|
|
#+ compact_rt_max_blocking_threads = 4
|
|
|
|
## The HTTP server options.
|
|
[http]
|
|
## The address to bind the HTTP server.
|
|
addr = "127.0.0.1:4000"
|
|
## HTTP request timeout. Set to 0 to disable timeout.
|
|
## When Prometheus pending-row batching is enabled, a nonzero timeout less than or equal to the
|
|
## `prom_store.pending_rows_flush_interval` plus 1 second is adjusted to that value.
|
|
timeout = "0s"
|
|
## HTTP request body limit.
|
|
## The following units are supported: `B`, `KB`, `KiB`, `MB`, `MiB`, `GB`, `GiB`, `TB`, `TiB`, `PB`, `PiB`.
|
|
## Set to 0 to disable limit.
|
|
body_limit = "64MB"
|
|
## HTTP CORS support, it's turned on by default
|
|
## This allows browser to access http APIs without CORS restrictions
|
|
enable_cors = true
|
|
## Customize allowed origins for HTTP CORS.
|
|
## @toml2docs:none-default
|
|
cors_allowed_origins = ["https://example.com"]
|
|
|
|
## Whether to start the dedicated public HTTP **API** server. This server serves
|
|
## only the `v1` interfaces plus the dashboard, and shares every other `[http]`
|
|
## option with the main server. It is disabled by default; set to `true` to enable.
|
|
enable_api_server = false
|
|
## The address to bind the dedicated HTTP API server, in the same form as `addr`.
|
|
## Defaults to `127.0.0.1:4006`.
|
|
api_server_addr = "127.0.0.1:4006"
|
|
|
|
## The gRPC server options.
|
|
[grpc]
|
|
## The address to bind the gRPC server.
|
|
bind_addr = "127.0.0.1:4001"
|
|
## The address advertised to the metasrv, and used for connections from outside the host.
|
|
## If left empty or unset, the server will automatically use the IP address of the first network interface
|
|
## on the host, with the same port number as the one specified in `grpc.bind_addr`.
|
|
server_addr = "127.0.0.1:4001"
|
|
## The number of server worker threads.
|
|
runtime_size = 8
|
|
## Compression mode for frontend side Arrow IPC service. Available options:
|
|
## - `none`: disable all compression
|
|
## - `transport`: only enable gRPC transport compression (zstd)
|
|
## - `arrow_ipc`: only enable Arrow IPC compression (lz4)
|
|
## - `all`: enable all compression.
|
|
## Default to `none`
|
|
flight_compression = "arrow_ipc"
|
|
## The maximum connection age for gRPC connection.
|
|
## The value can be a human-readable time string. For example: `10m` for ten minutes or `1h` for one hour.
|
|
## Refer to https://grpc.io/docs/guides/keepalive/ for more details.
|
|
## @toml2docs:none-default
|
|
#+ max_connection_age = "10m"
|
|
|
|
## gRPC server TLS options, see `mysql.tls` section.
|
|
[grpc.tls]
|
|
## TLS mode.
|
|
mode = "disable"
|
|
|
|
## Certificate file path.
|
|
## @toml2docs:none-default
|
|
cert_path = ""
|
|
|
|
## Private key file path.
|
|
## @toml2docs:none-default
|
|
key_path = ""
|
|
|
|
## Watch for Certificate and key file change and auto reload.
|
|
## For now, gRPC tls config does not support auto reload.
|
|
watch = false
|
|
|
|
## The internal gRPC server options. Internal gRPC port for nodes inside cluster to access frontend.
|
|
[internal_grpc]
|
|
## The address to bind the gRPC server.
|
|
bind_addr = "127.0.0.1:4010"
|
|
## The address advertised to the metasrv, and used for connections from outside the host.
|
|
## If left empty or unset, the server will automatically use the IP address of the first network interface
|
|
## on the host, with the same port number as the one specified in `internal_grpc.bind_addr`.
|
|
server_addr = "127.0.0.1:4010"
|
|
## The number of server worker threads.
|
|
runtime_size = 8
|
|
## Compression mode for frontend side Arrow IPC service. Available options:
|
|
## - `none`: disable all compression
|
|
## - `transport`: only enable gRPC transport compression (zstd)
|
|
## - `arrow_ipc`: only enable Arrow IPC compression (lz4)
|
|
## - `all`: enable all compression.
|
|
## Default to `none`
|
|
flight_compression = "arrow_ipc"
|
|
|
|
## internal gRPC server TLS options, see `mysql.tls` section.
|
|
[internal_grpc.tls]
|
|
## TLS mode.
|
|
mode = "disable"
|
|
|
|
## Certificate file path.
|
|
## @toml2docs:none-default
|
|
cert_path = ""
|
|
|
|
## Private key file path.
|
|
## @toml2docs:none-default
|
|
key_path = ""
|
|
|
|
## Watch for Certificate and key file change and auto reload.
|
|
## For now, gRPC tls config does not support auto reload.
|
|
watch = false
|
|
|
|
## MySQL server options.
|
|
[mysql]
|
|
## Whether to enable.
|
|
enable = true
|
|
## The addr to bind the MySQL server.
|
|
addr = "127.0.0.1:4002"
|
|
## The number of server worker threads.
|
|
runtime_size = 2
|
|
## Server-side keep-alive time.
|
|
## Set to 0 (default) to disable.
|
|
keep_alive = "0s"
|
|
## Maximum entries in the MySQL prepared statement cache; default is 10,000.
|
|
prepared_stmt_cache_size = 10000
|
|
|
|
# MySQL server TLS options.
|
|
[mysql.tls]
|
|
|
|
## TLS mode, refer to https://www.postgresql.org/docs/current/libpq-ssl.html
|
|
## - `disable` (default value)
|
|
## - `prefer`
|
|
## - `require`
|
|
## - `verify-ca`
|
|
## - `verify-full`
|
|
mode = "disable"
|
|
|
|
## Certificate file path.
|
|
## @toml2docs:none-default
|
|
cert_path = ""
|
|
|
|
## Private key file path.
|
|
## @toml2docs:none-default
|
|
key_path = ""
|
|
|
|
## Watch for Certificate and key file change and auto reload
|
|
watch = false
|
|
|
|
## PostgresSQL server options.
|
|
[postgres]
|
|
## Whether to enable
|
|
enable = true
|
|
## The addr to bind the PostgresSQL server.
|
|
addr = "127.0.0.1:4003"
|
|
## The number of server worker threads.
|
|
runtime_size = 2
|
|
## Server-side keep-alive time.
|
|
## Set to 0 (default) to disable.
|
|
keep_alive = "0s"
|
|
|
|
## PostgresSQL server TLS options, see `mysql.tls` section.
|
|
[postgres.tls]
|
|
## TLS mode.
|
|
mode = "disable"
|
|
|
|
## Certificate file path.
|
|
## @toml2docs:none-default
|
|
cert_path = ""
|
|
|
|
## Private key file path.
|
|
## @toml2docs:none-default
|
|
key_path = ""
|
|
|
|
## Watch for Certificate and key file change and auto reload
|
|
watch = false
|
|
|
|
## OpenTSDB protocol options.
|
|
[opentsdb]
|
|
## Whether to enable OpenTSDB put in HTTP API.
|
|
enable = true
|
|
|
|
## InfluxDB protocol options.
|
|
[influxdb]
|
|
## Whether to enable InfluxDB protocol in HTTP API.
|
|
enable = true
|
|
## Default merge mode for tables automatically created by InfluxDB protocol.
|
|
## Available values: "last_non_null", "last_row".
|
|
default_merge_mode = "last_non_null"
|
|
|
|
## Jaeger protocol options.
|
|
[jaeger]
|
|
## Whether to enable Jaeger protocol in HTTP API.
|
|
enable = true
|
|
|
|
## OpenTelemetry protocol options.
|
|
[otlp]
|
|
## Whether to enable OpenTelemetry protocol in HTTP API.
|
|
enable = true
|
|
## Experimental: enable cumulative OTLP exponential histogram ingestion.
|
|
experimental_enable_exponential_histogram = false
|
|
## Maximum spans per trace ingest chunk. Set to 0 to disable splitting.
|
|
trace_ingest_chunk_size = 512
|
|
## Whether to synthesize the `greptime_otel_resource_info` table from OTLP metric
|
|
## resource attributes, so metrics-only services reach the semantic graph.
|
|
experimental_enable_resource_info = false
|
|
|
|
## Prometheus remote storage options
|
|
[prom_store]
|
|
## Whether to enable Prometheus remote write and read in HTTP API.
|
|
enable = true
|
|
## Whether to store the data from Prometheus remote write in metric engine.
|
|
with_metric_engine = true
|
|
## Whether to enable validation for Prometheus remote write requests.
|
|
## Available options:
|
|
## - strict: deny invalid UTF-8 strings (default).
|
|
## - lossy: allow invalid UTF-8 strings, replace invalid characters with REPLACEMENT_CHARACTER(U+FFFD).
|
|
## - unchecked: do not valid strings.
|
|
prom_validation_mode = "strict"
|
|
## Experimental: enable Prometheus remote write v2 native histogram ingestion.
|
|
experimental_enable_prometheus_native_histogram = false
|
|
## Interval to flush pending rows batcher.
|
|
## Set to "0s" to disable batching mode in Prometheus Remote Write endpoint
|
|
#+pending_rows_flush_interval = "0s"
|
|
## Max rows per pending batch before triggering a flush.
|
|
#+max_batch_rows = 100000
|
|
## Max number of concurrent batch flushes.
|
|
#+max_concurrent_flushes = 256
|
|
## Capacity of the pending batch worker channel.
|
|
#+worker_channel_capacity = 65526
|
|
## Max inflight write requests before backpressure.
|
|
#+max_inflight_requests = 3000
|
|
## Maximum number of logical-table flow notifications waiting in the shared queue.
|
|
#+flow_notification_queue_capacity = 1024
|
|
|
|
## The metasrv client options.
|
|
[meta_client]
|
|
## The addresses of the metasrv.
|
|
metasrv_addrs = ["127.0.0.1:3002"]
|
|
|
|
## Operation timeout.
|
|
timeout = "3s"
|
|
|
|
## DDL timeout.
|
|
ddl_timeout = "10s"
|
|
|
|
## Connect server timeout.
|
|
connect_timeout = "1s"
|
|
|
|
## `TCP_NODELAY` option for accepted connections.
|
|
tcp_nodelay = true
|
|
|
|
## The configuration about the cache of the metadata.
|
|
metadata_cache_max_capacity = 100000
|
|
|
|
## TTL of the metadata cache.
|
|
metadata_cache_ttl = "10m"
|
|
|
|
# TTI of the metadata cache.
|
|
metadata_cache_tti = "5m"
|
|
|
|
## The query engine options.
|
|
[query]
|
|
## Parallelism of the query engine.
|
|
## Default to 0, which means the number of CPU cores.
|
|
parallelism = 0
|
|
## Whether to allow query fallback when push down optimize fails.
|
|
## Default to false, meaning when push down optimize failed, return error msg
|
|
allow_query_fallback = false
|
|
|
|
## Memory pool size for query execution operators (aggregation, sorting, join).
|
|
## Supports absolute size (e.g., "4GB", "8GB") or percentage of system memory (e.g., "30%").
|
|
## Setting it to 0 disables the limit (unbounded, default behavior).
|
|
## When this limit is reached, queries will fail with ResourceExhausted error.
|
|
## NOTE: This does NOT limit memory used by table scans (only applies to datanodes).
|
|
memory_pool_size = "50%"
|
|
|
|
## Experimental memory pool allocation policy:
|
|
## - "greedy" (default): first-come-first-served allocation; preserves current behavior.
|
|
## - "fair": divides available memory among spillable operators and may spill earlier.
|
|
## Only effective when `memory_pool_size` is bounded (>0).
|
|
#+ experimental_memory_pool_policy = "greedy"
|
|
|
|
# --- Experimental: DataFusion spill-to-disk controls ---
|
|
## Spill mode:
|
|
## - "default": preserve DataFusion built-in OS temp directory (default).
|
|
## - "custom": explicitly configure spill path, quota, and compression.
|
|
## - "disabled": explicitly disable disk spilling.
|
|
## Set this to "custom" before using the path/quota/compression keys below.
|
|
#+ experimental_spill_mode = "default"
|
|
## Spill directory path. Ignored unless mode is "custom".
|
|
## @toml2docs:none-default
|
|
#+ experimental_spill_path = "/path/to/spill"
|
|
## Maximum total size of spill directory (default: "1GiB").
|
|
## Ignored unless mode is "custom".
|
|
#+ experimental_spill_max_temp_directory_size = "1GiB"
|
|
## Compression for spilled data files: "uncompressed" (default), "lz4_frame", "zstd".
|
|
## Ignored unless mode is "custom".
|
|
#+ experimental_spill_compression = "uncompressed"
|
|
# --- End spill-to-disk ---
|
|
|
|
## Retry retryable distributed write failures.
|
|
## Backoff grows exponentially, with jitter to spread concurrent retries.
|
|
[write_retry]
|
|
## Maximum retries after the initial write attempt. Set to 0 to disable retries.
|
|
max_retries = 3
|
|
## Initial backoff before jitter is applied. Must be positive.
|
|
initial_backoff = "1500ms"
|
|
## Maximum backoff before jitter is applied. Must be at least initial_backoff.
|
|
max_backoff = "10s"
|
|
## Backoff multiplier. Must be finite and at least 1.
|
|
backoff_multiplier = 2.0
|
|
|
|
## Datanode options.
|
|
[datanode]
|
|
## Datanode client options.
|
|
[datanode.client]
|
|
connect_timeout = "10s"
|
|
tcp_nodelay = true
|
|
## The maximum receive message size for the gRPC client.
|
|
max_recv_message_size = "512MB"
|
|
## The maximum send message size for the gRPC client.
|
|
max_send_message_size = "512MB"
|
|
|
|
## The logging options.
|
|
[logging]
|
|
## The directory to store the log files. If set to empty, logs will not be written to files.
|
|
dir = "./greptimedb_data/logs"
|
|
|
|
## The log level. Can be `info`/`debug`/`warn`/`error`.
|
|
## @toml2docs:none-default
|
|
level = "info"
|
|
|
|
## Enable OTLP tracing.
|
|
enable_otlp_tracing = false
|
|
|
|
## The OTLP tracing endpoint.
|
|
otlp_endpoint = "http://localhost:4318/v1/traces"
|
|
|
|
## Whether to append logs to stdout.
|
|
append_stdout = true
|
|
|
|
## Whether to write logs to files in `dir`.
|
|
enable_file_logging = true
|
|
|
|
## The log format. Can be `text`/`json`.
|
|
log_format = "text"
|
|
|
|
## The maximum amount of log files.
|
|
max_log_files = 720
|
|
|
|
## The maximum total size of managed log files in `dir`.
|
|
## Old closed log files are removed before writing when necessary. Active files may exceed it. Set to `0B` to disable.
|
|
max_log_dir_size = "0B"
|
|
|
|
## Whether to enable per-region metrics.
|
|
## Default to false.
|
|
enable_per_region_metrics = false
|
|
|
|
## The OTLP tracing export protocol. Can be `grpc`/`http`.
|
|
otlp_export_protocol = "http"
|
|
|
|
## Additional OTLP headers, only valid when using OTLP http
|
|
[logging.otlp_headers]
|
|
## @toml2docs:none-default
|
|
#Authorization = "Bearer my-token"
|
|
## @toml2docs:none-default
|
|
#Database = "My database"
|
|
|
|
## The percentage of tracing will be sampled and exported.
|
|
## Valid range `[0, 1]`, 1 means all traces are sampled, 0 means all traces are not sampled, the default value is 1.
|
|
## ratio > 1 are treated as 1. Fractions < 0 are treated as 0
|
|
[logging.tracing_sample_ratio]
|
|
default_ratio = 1.0
|
|
|
|
## The slow query log options.
|
|
[slow_query]
|
|
## Whether to enable slow query log.
|
|
enable = true
|
|
|
|
## The record type of slow queries. It can be `system_table` or `log`.
|
|
## If `system_table` is selected, the slow queries will be recorded in a system table `greptime_private.slow_queries`.
|
|
## If `log` is selected, the slow queries will be logged in a log file `greptimedb-slow-queries.*`.
|
|
record_type = "system_table"
|
|
|
|
## The threshold of slow query. It can be human readable time string, for example: `10s`, `100ms`, `1s`.
|
|
threshold = "30s"
|
|
|
|
## The sampling ratio of slow query log. The value should be in the range of (0, 1]. For example, `0.1` means 10% of the slow queries will be logged and `1.0` means all slow queries will be logged.
|
|
sample_ratio = 1.0
|
|
|
|
## The TTL of the `slow_queries` system table. Default is `90d` when `record_type` is `system_table`.
|
|
ttl = "90d"
|
|
|
|
## The tracing options. Only effect when compiled with `tokio-console` feature.
|
|
#+ [tracing]
|
|
## The tokio console address.
|
|
## @toml2docs:none-default
|
|
#+ tokio_console_addr = "127.0.0.1"
|
|
|
|
## The memory options.
|
|
[memory]
|
|
## Whether to enable heap profiling activation during startup.
|
|
## When enabled, heap profiling will be activated if the `MALLOC_CONF` environment variable
|
|
## is set to "prof:true,prof_active:false". The official image adds this env variable.
|
|
## Default is true.
|
|
enable_heap_profiling = true
|
|
|
|
## The pipeline options.
|
|
[pipeline]
|
|
## Time to live of the frontend-local pipeline cache. A pipeline created or deleted on
|
|
## another frontend takes effect on this one after at most this duration.
|
|
cache_ttl = "10s"
|
|
|
|
## Configuration options for the event recorder.
|
|
[event_recorder]
|
|
## TTL for the events table that will be used to store the events. Default is `90d`.
|
|
ttl = "90d"
|
|
## Event types to record. Current available event type: `admin_function`.
|
|
## When omitted, all current and future event types are recorded.
|
|
## Set to an empty array to disable event recording.
|
|
#+ event_types = ["admin_function"]
|