# Node running mode, "standalone" or "distributed". mode = "standalone" # Whether to enable greptimedb telemetry, true by default. enable_telemetry = true # The default timezone of the server # default_timezone = "UTC" # HTTP server options. [http] # Server address, "127.0.0.1:4000" by default. addr = "127.0.0.1:4000" # HTTP request timeout, 30s by default. timeout = "30s" # HTTP request body limit, 64Mb by default. # the following units are supported: B, KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB body_limit = "64MB" # gRPC server options. [grpc] # Server address, "127.0.0.1:4001" by default. addr = "127.0.0.1:4001" # The number of server worker threads, 8 by default. runtime_size = 8 # MySQL server options. [mysql] # Whether to enable enable = true # Server address, "127.0.0.1:4002" by default. addr = "127.0.0.1:4002" # The number of server worker threads, 2 by default. runtime_size = 2 # 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. cert_path = "" # Private key file path. key_path = "" # Watch for Certificate and key file change and auto reload watch = false # PostgresSQL server options. [postgres] # Whether to enable enable = true # Server address, "127.0.0.1:4003" by default. addr = "127.0.0.1:4003" # The number of server worker threads, 2 by default. runtime_size = 2 # PostgresSQL server TLS options, see `[mysql_options.tls]` section. [postgres.tls] # TLS mode. mode = "disable" # certificate file path. cert_path = "" # private key file path. key_path = "" # Watch for Certificate and key file change and auto reload watch = false # OpenTSDB protocol options. [opentsdb] # Whether to enable enable = true # OpenTSDB telnet API server address, "127.0.0.1:4242" by default. addr = "127.0.0.1:4242" # The number of server worker threads, 2 by default. runtime_size = 2 # InfluxDB protocol options. [influxdb] # Whether to enable InfluxDB protocol in HTTP API, true by default. enable = true # Prometheus remote storage options [prom_store] # Whether to enable Prometheus remote write and read in HTTP API, true by default. enable = true # Whether to store the data from Prometheus remote write in metric engine. # true by default with_metric_engine = true [wal] # Available wal providers: # - "raft_engine" (default) # - "kafka" provider = "raft_engine" # Raft-engine wal options. # WAL data directory # dir = "/tmp/greptimedb/wal" # WAL file size in bytes. file_size = "256MB" # WAL purge threshold. purge_threshold = "4GB" # WAL purge interval in seconds. purge_interval = "10m" # WAL read batch size. read_batch_size = 128 # Whether to sync log file after every write. sync_write = false # Whether to reuse logically truncated log files. enable_log_recycle = true # Whether to pre-create log files on start up prefill_log_files = false # Duration for fsyncing log files. sync_period = "1000ms" # Kafka wal options. # The broker endpoints of the Kafka cluster. ["127.0.0.1:9092"] by default. # broker_endpoints = ["127.0.0.1:9092"] # Number of topics to be created upon start. # num_topics = 64 # Topic selector type. # Available selector types: # - "round_robin" (default) # selector_type = "round_robin" # The prefix of topic name. # topic_name_prefix = "greptimedb_wal_topic" # The number of replicas of each partition. # Warning: the replication factor must be positive and must not be greater than the number of broker endpoints. # replication_factor = 1 # The max size of a single producer batch. # Warning: Kafka has a default limit of 1MB per message in a topic. # max_batch_size = "1MB" # The linger duration. # linger = "200ms" # The consumer wait timeout. # consumer_wait_timeout = "100ms" # Create topic timeout. # create_topic_timeout = "30s" # The initial backoff delay. # backoff_init = "500ms" # The maximum backoff delay. # backoff_max = "10s" # Exponential backoff rate, i.e. next backoff = base * current backoff. # backoff_base = 2 # The deadline of retries. # backoff_deadline = "5mins" # Metadata storage options. [metadata_store] # Kv file size in bytes. file_size = "256MB" # Kv purge threshold. purge_threshold = "4GB" # Procedure storage options. [procedure] # Procedure max retry time. max_retry_times = 3 # Initial retry delay of procedures, increases exponentially retry_delay = "500ms" # Storage options. [storage] # The working home directory. data_home = "/tmp/greptimedb/" # Storage type. type = "File" # TTL for all tables. Disabled by default. # global_ttl = "7d" # Cache configuration for object storage such as 'S3' etc. # cache_path = "/path/local_cache" # The local file cache capacity in bytes. # cache_capacity = "256MB" # Custom storage options #[[storage.providers]] #type = "S3" #[[storage.providers]] #type = "Gcs" # Mito engine options [[region_engine]] [region_engine.mito] # Number of region workers num_workers = 8 # Request channel size of each worker worker_channel_size = 128 # Max batch size for a worker to handle requests worker_request_batch_size = 64 # Number of meta action updated to trigger a new checkpoint for the manifest manifest_checkpoint_distance = 10 # Whether to compress manifest and checkpoint file by gzip (default false). compress_manifest = false # Max number of running background jobs max_background_jobs = 4 # Interval to auto flush a region if it has not flushed yet. auto_flush_interval = "1h" # Global write buffer size for all regions. If not set, it's default to 1/8 of OS memory with a max limitation of 1GB. global_write_buffer_size = "1GB" # Global write buffer size threshold to reject write requests. If not set, it's default to 2 times of `global_write_buffer_size` global_write_buffer_reject_size = "2GB" # Cache size for SST metadata. Setting it to 0 to disable the cache. # If not set, it's default to 1/32 of OS memory with a max limitation of 128MB. sst_meta_cache_size = "128MB" # Cache size for vectors and arrow arrays. Setting it to 0 to disable the cache. # If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. vector_cache_size = "512MB" # Cache size for pages of SST row groups. Setting it to 0 to disable the cache. # If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. page_cache_size = "512MB" # Buffer size for SST writing. sst_write_buffer_size = "8MB" # Parallelism to scan a region (default: 1/4 of cpu cores). # - 0: using the default value (1/4 of cpu cores). # - 1: scan in current thread. # - n: scan in parallelism n. scan_parallelism = 0 # Capacity of the channel to send data from parallel scan tasks to the main task (default 32). parallel_scan_channel_size = 32 # Whether to allow stale WAL entries read during replay. allow_stale_entries = false [region_engine.mito.inverted_index] # Whether to create the index on flush. # - "auto": automatically # - "disable": never create_on_flush = "auto" # Whether to create the index on compaction. # - "auto": automatically # - "disable": never create_on_compaction = "auto" # Whether to apply the index on query # - "auto": automatically # - "disable": never apply_on_query = "auto" # Memory threshold for performing an external sort during index creation. # Setting to empty will disable external sorting, forcing all sorting operations to happen in memory. mem_threshold_on_create = "64M" # File system path to store intermediate files for external sorting (default `{data_home}/index_intermediate`). intermediate_path = "" [region_engine.mito.memtable] # Memtable type. # - "experimental": experimental memtable # - "time_series": time-series memtable (deprecated) type = "experimental" # The max number of keys in one shard. index_max_keys_per_shard = 8192 # The max rows of data inside the actively writing buffer in one shard. data_freeze_threshold = 32768 # Max dictionary bytes. fork_dictionary_bytes = "1GiB" # Log options # [logging] # Specify logs directory. # dir = "/tmp/greptimedb/logs" # Specify the log level [info | debug | error | warn] # level = "info" # whether enable tracing, default is false # enable_otlp_tracing = false # tracing exporter endpoint with format `ip:port`, we use grpc oltp as exporter, default endpoint is `localhost:4317` # otlp_endpoint = "localhost:4317" # Whether to append logs to stdout. Defaults to true. # append_stdout = true # 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 = 0.0 # Standalone export the metrics generated by itself # encoded to Prometheus remote-write format # and send to Prometheus remote-write compatible receiver (e.g. send to `greptimedb` itself) # This is only used for `greptimedb` to export its own metrics internally. It's different from prometheus scrape. # [export_metrics] # whether enable export metrics, default is false # enable = false # The interval of export metrics # write_interval = "30s" # for `standalone`, `self_import` is recommend to collect metrics generated by itself # [export_metrics.self_import] # db = "information_schema"