Skip to content

Environment Variables

Applicable to open source & enterprise version

OpenObserve is configured through the use of below environment variables.

Common

Environment Variable Default Value Mandatory Description
ZO_ROOT_USER_EMAIL - On first run Email of first/root user
ZO_ROOT_USER_PASSWORD - On first run Password for first/root user
ZO_LOCAL_MODE true No If local mode is set to true ,OpenObserve becomes single node deployment, false indicates cluster mode deployment which supports multiple nodes with different roles. For local mode one needs to configure sqlite db, for cluster mode one needs to config etcd.
ZO_LOCAL_MODE_STORAGE disk No disk or s3, Applicable only for local mode , by default local disk is used as storage, we also support s3 in local mode.
ZO_NODE_ROLE all No Possible values are : all, ingester, querier, router, compactor, alertmanager, A single node can have multiple roles id desired. Specify roles separated by comma. e.g. compactor,alertmanager.
ZO_NODE_HEARTBEAT_TTL 30 No Node Heartbeat time to live in seconds.
ZO_HTTP_PORT 5080 No openobserve server listen HTTP port
ZO_HTTP_ADDR No openobserve server listen HTTP ip address
ZO_HTTP_IPV6_ENABLED false No enable ipv6 support for HTTP
ZO_HTTP_WORKER_NUM 0 No number of threads for http services, default equal to cpu_num.
ZO_HTTP_WORKER_MAX_BLOCKING 1024 No number of per http thread blocking connection in queue
ZO_GRPC_PORT 5081 No openobserve server listen gRPC port
ZO_GRPC_ADDR No openobserve server listen gRPC ip address
ZO_GRPC_ORG_HEADER_KEY openobserve-org-id No header key for sending organization information for traces using OTLP over grpc
ZO_GRPC_STREAM_HEADER_KEY stream-name No header key for sending stream-name information for traces using OTLP over grpc
ZO_GRPC_MAX_MESSAGE_SIZE 16 No Max grpc message size in MB, default is 16 MB.
ZO_GRPC_CONNECT_TIMEOUT 5 (seconds) No The timeout in seconds to connect to the grpc server.
ZO_ROUTE_TIMEOUT 600 No timeout for router node.
ZO_ROUTE_MAX_CONNECTIONS 1024 No Set total number of simultaneous connections per type of scheme for the Router node role.
ZO_INSTANCE_NAME - No in the cluster mode, each node has a instance name, default is instance hostname.
ZO_DATA_DIR ./data/openobserve/ No Defaults to "data" folder in current working directory if not provided.
ZO_DATA_DB_DIR ./data/openobserve/db/ No metadata database local storage directory.
ZO_DATA_WAL_DIR ./data/openobserve/wal/ No local WAL data directory.
ZO_DATA_STREAM_DIR ./data/openobserve/stream/ No streams local data storage directory ,applicable only for local mode.
ZO_DATA_IDX_DIR "" No Local WAL Idx directory.
ZO_COLS_PER_RECORD_LIMIT 1000 No number of fields allowed per records during ingestion , records having more fields than configured value will be discarded
ZO_WIDENING_SCHEMA_EVOLUTION true No if set to false user can add new columns to data being ingested but changes to existing data for data type are not supported .
ZO_SKIP_SCHEMA_VALIDATION false No Default we check ingested every record for schema validation, but if your schema is fixed, you can skip it, this will increase 2x ingestion performance.
ZO_FEATURE_INGEST_BUFFER_ENABLED false No enable it to enqueue ingestion requests for background processing, used to improve responsiveness of ingestion endpoints
ZO_FEATURE_FULLTEXT_EXTRA_FIELDS - No default full text search uses log, message, msg, content, data, json as global setting, but you can add more fields as global full text search fields. eg: field1,field2
ZO_FEATURE_DISTINCT_EXTRA_FIELDS "" No
ZO_FEATURE_QUICK_MODE_FIELDS "" No
ZO_FEATURE_FILELIST_DEDUP_ENABLED false No
ZO_FEATURE_QUERY_QUEUE_ENABLED true No
ZO_FEATURE_QUERY_INFER_SCHEMA false No
ZO_FEATURE_QUERY_PARTITION_STRATEGY file_num No Query partition strategy. Possible values - file_num, file_size, file_hash.
ZO_PARQUET_MAX_ROW_GROUP_SIZE No
ZO_UI_ENABLED true No default we enable embed UI, one can disable it.
ZO_UI_SQL_BASE64_ENABLED false No Enable base64 encoding for SQL in UI.
ZO_WEB_URL - No UI access URL, eg: http://localhost:5080, used for redirect url and alert url.
ZO_BASE_URI - No If you set OpenObserve with a prefix in k8s nginx ingress, you can set the prefix path.
ZO_JSON_LIMIT 209715200 No The max payload size of json.
ZO_PAYLOAD_LIMIT 209715200 No The max payload size of http request body.
ZO_MAX_FILE_SIZE_ON_DISK 64 No max WAL log file size before creating a new log file, default is 64MB, unit: MB, we created WAL log file by organization/stream_type
ZO_MAX_FILE_SIZE_IN_MEMORY 256 No max memtable size before moving to immutable and then write to disk, default is 256MB, unit: MB
ZO_MAX_FILE_RETENTION_TIME 600 No max retention time for WAL log and memtable, default is 600s (10m), unit: second, Whether it's the log file or the corresponding memtable that reaches this time limit, a new log file will be created and the memtable will be written to disk.
ZO_FILE_PUSH_INTERVAL 60 No interval at which job moves files from WAL to storage, default 60s, unit: second
ZO_FILE_MOVE_THREAD_NUM - No number of threads for job to move WAL files to storage on ingester, default equal to cpu_num.
ZO_MEM_DUMP_THREAD_NUM - No number of threads for job to dump MemTable to disk on ingester, default equal to cpu_num.
ZO_FILE_MERGE_THREAD_NUM - No number of threads for job to merge files on compactor WAL to storage, default equal to cpu_num.
ZO_FILE_PUSH_LIMIT 0 No
ZO_FILE_MOVE_FIELDS_LIMIT 2000 No Over this limit will skip merging on ingester.
ZO_MEM_TABLE_MAX_SIZE - No The total size limit of memory tables, we have multiple memtable for different organization/stream_types. The maximum value of each memtable is ZO_MAX_FILE_SIZE_IN_MEMORY, but the sum of all memtable cannot exceed this limit. Otherwise, an error will be returned: MemoryTableOverflowError to protect the system from OOM. default 50% of the total memory.
ZO_MEM_PERSIST_INTERVAL 5 No interval at which job persist immutable from memory to disk, default 5s, unit: second
ZO_COMPACT_ENABLED true No enable compact for small files.
ZO_COMPACT_INTERVAL 60 No interval at which job compacts small files into larger files. default is 60s, unit: second
ZO_COMPACT_MAX_FILE_SIZE 256 No max file size for a single compacted file, after compaction all files will be below this value. default is 256MB, unit: MB
ZO_COMPACT_DATA_RETENTION_DAYS 3650 No Data retention days, default is 10 years. Minimal 3. eg: 30, it means will auto delete the data older than 30 days. You also can set data retention for stream in the UI.
ZO_COMPACT_SYNC_TO_DB_INTERVAL 1800 No The interval time in seconds after which compactor sync cache to db is run.
ZO_COMPACT_DELETE_FILES_DELAY_HOURS 2 No The number of hours to delay to delete the pending deleted files by compactor. Value can not be less than 1.
ZO_COMPACT_DATA_RETENTION_HISTORY false No If enabled this will move the file_list into file_list_history and not delete files from storage.
ZO_COMPACT_BLOCKED_ORGS "" No Use comma to split multiple orgs. Blocked organizations will not be able to ingest data
ZO_COMPACT_FAST_MODE true No Enable fast mode compact, will use more memory but faster, disable it will reduce 50% memory
ZO_TELEMETRY true No Send anonymous telemetry info for improving OpenObserve. You can disable by set it to false
ZO_TELEMETRY_URL https://e1.zinclabs.dev No OpenTelemetry report URL. You can report to your own server.
ZO_HEARTBEAT_INTERVAL 30 No OpenTelemetry report frequency. unit is: minutes, default is 30m
ZO_PROMETHEUS_ENABLED false No Enables prometheus metrics on /metrics endpoint
ZO_LOGS_FILE_RETENTION hourly No log streams default time partition level: hourly, supported: hourly, daily
ZO_TRACES_FILE_RETENTION hourly No traces streams default time partition level: hourly, supported: hourly, daily
ZO_METRICS_FILE_RETENTION daily No metrics streams default time partition level: daily, supported: hourly, daily
ZO_METRICS_DEDUP_ENABLED true No enable de-duplication for metrics
ZO_METRICS_LEADER_PUSH_INTERVAL 15 No interval at which current leader information is updated to metadata store , default 15s, unit: second
ZO_METRICS_LEADER_ELECTION_INTERVAL 30 No interval after which new leader for metrics will be elected , when data isn't received from current leader, default 30s, unit: second
ZO_PROMETHEUS_HA_CLUSTER cluster No for Prometheus cluster deduplication
ZO_PROMETHEUS_HA_REPLICA __replica__ No for Prometheus cluster deduplication
ZO_PRINT_KEY_CONFIG false No Print key config information in logs
ZO_PRINT_KEY_SQL false No Print key sql in logs
RUST_LOG info No log level, default is info, supports: error, warn, info, debug, trace
ZO_BASE_URI "" No Change it in case you are hosting at a subpath e.g. www.example.com/openobserve
ZO_BULK_RESPONSE_INCLUDE_ERRORS_ONLY false No When using _bulk API which is compatible with Elasticsearch do not respond with records that succeeded. This allows for higher performance by returing smaller amount of data.
ZO_ALLOW_USER_DEFINED_SCHEMAS false No If true, it allows user defined schemas for a stream.
ZO_SKIP_FORMAT_STREAM_NAME false No If true, it skip formatting stream name while ingestion.
ZO_CONCATENATED_SCHEMA_FIELD_NAME _all No
ZO_STARTING_EXPECT_QUERIER_NUM 0 No The number of queriers expected to be running while caching enrichment tables.
ZO_QUERY_OPTIMIZATION_NUM_FIELDS 1000 No
ZO_QUERY_FULL_MODE_LIMIT 1000 No
ZO_QUERY_PARTITION_BY_SECS 10 (seconds) No
ZO_QUERY_PARTITION_MIN_SECS 600 (seconds) No
ZO_QUERY_GROUP_BASE_SPEED No
ZO_QUERY_THREAD_NUM - No number of threads for searching in data files.
ZO_QUERY_TIMEOUT 600 No Default timeout of query, unit: seconds
ZO_QUERY_ON_STREAM_SELECTION No
ZO_ENABLE_INVERTED_INDEX false No
ZO_INVERTED_INDEX_SPLIT_CHARS .,;:|/#_ =-+*^&%$@!~` No These are the default characters used for splitting the text for creating the inverted index.
ZO_IGNORE_FILE_RETENTION_BY_STREAM No
ZO_ACTIX_REQ_TIMEOUT 30 No Sets actix server client timeout in seconds for first request.
ZO_ACTIX_KEEP_ALIVE 30 No Sets actix server keep-alive preference in seconds.
ZO_ACTIX_SHUTDOWN_TIMEOUT No Sets timeout for graceful worker shutdown of actix workers.
ZO_COOKIE_SAME_SITE_LAX true No If true, same site "lax" cookie is set by the server while authentication.
ZO_COOKIE_SECURE_ONLY false No If true, secure flag is enabled for the cookie set by the server while authentication.
ZO_DISTINCT_VALUES_INTERVAL No
ZO_DISTINCT_VALUES_HOURLY No
ZO_INGEST_ALLOWED_UPTO 5 No allow historical data ingest up to now - 5 hours data, default 5 hours, unit: hours
ZO_INGEST_BUFFER_QUEUE_NUM 5 No number of queues to buffer ingestion requests. ZO_FEATURE_INGEST_BUFFER_ENABLED must be true
ZO_INGESTER_SERVICE_URL No
ZO_INGEST_BLOCKED_STREAMS No
ZO_INGEST_INFER_SCHEMA_PER_REQUEST No
ZO_INGEST_FLATTEN_LEVEL 3 No The level of flatten ingestion json data, if you want flatten everything you can simple set it to 0, or you can set it to N to limit the flatten level.
ZO_ENTRY_PER_SCHEMA_VERSION_ENABLED No
ZO_CLUSTER_COORDINATOR etcd No How the nodes in the cluster find each other. Options are etcd and nats. nats is preferred.
ZO_QUEUE_STORE No
ZO_SHOW_STREAM_DATES_DOCS_NUM No
ZO_RESTRICTED_ROUTES_ON_EMPTY_DATA No
ZO_ALERT_SCHEDULE_INTERVAL No
ZO_TCP_PORT 5514 No TCP port for syslog
ZO_UDP_PORT 5514 No UDP port for syslog
ZO_APP_NAME No
ZO_DEFAULT_SCRAPE_INTERVAL No
ZO_CIRCUIT_BREAKER_ENABLE No
ZO_CIRCUIT_BREAKER_RATIO No
ZO_CALCULATE_STATS_INTERVAL 600 No In seconds. How often stream stats (total size) is calculated
ZO_ENRICHMENT_TABLE_LIMIT No
ZO_SWAGGER_ENABLED true No Generate SWAGGER API documentation by default. (since v0.10.8)

For local mode, OpenObserve use sqlite as the metadata store.

For cluster mode, OpenObserve use postgres(recommended)/mysql as the metadata store.

Meta storage

Environment Variable Default Value Mandatory Description
ZO_META_STORE - No Default is sqlite for local mode, etcd for cluster mode. and supported values are: sqlite, etcd, postgres, mysql. sqlite is supported only for local mode. etcd is deprecated.
ZO_META_TRANSACTION_LOCK_TIMEOUT 600 No Timeout (in seconds) of transaction lock in meta table.
ZO_META_TRANSACTION_RETRIES 3 No Maximum time the transaction in the meta table will be retried.
ZO_META_POSTGRES_DSN - No If you enable postgres as meta store, you need configure the database source address, like this: postgres://postgres:12345678@localhost:5432/openobserve
ZO_META_MYSQL_DSN No set this if you want to use MySQL as metadata and filelist store.
ZO_META_CONNECTION_POOL_MIN_SIZE - No Minimum number of connections created in the connection pool size for postgres, sqlite, and mysql. Defaults to cpu_limits
ZO_META_CONNECTION_POOL_MAX_SIZE - No Maximum number of connections created in the connection pool size for postgres, sqlite, and mysql. Defaults to cpu_limits * 2

Bloom filter

Environment Variable Default Value Mandatory Description
ZO_BLOOM_FILTER_ENABLED true No Enable by default, but only enabled for trace_id field.
ZO_BLOOM_FILTER_DEFAULT_FIELDS - No Add more fields support by bloom filter, will add UI setting later.
ZO_BLOOM_FILTER_DISABLED_ON_SEARCH false No Disable bloom filter for search queries.

Usage reporting

Environment Variable Default Value Mandatory Description
ZO_USAGE_REPORTING_ENABLED false No Enable usage reporting. This will start capturing how much data has been ingested across each org/stream. You can use this info to enable charge back for internal teams.
ZO_USAGE_ORG meta No To which org the usage data should be sent.
ZO_USAGE_BATCH_SIZE 2000 No How many requests should be batched before flushing the usage data from memory to disk
ZO_USAGE_REPORTING_MODE local No local mode means the usage will be reported only in the internal cluster of ZO_USAGE_ORG. remote mode means that the usage reporting will be ingested to the remote target. both ingests the usage reports both to internal and remote target.
ZO_USAGE_REPORTING_URL http://localhost:5080/api/_meta/usage/_json No In case of remote or both value of ZO_USAGE_REPORTING_MODE, this URL is used to post the usage reports to remote target.
ZO_USAGE_REPORTING_CREDS "" No The credentials required to send along with the post request to the ZO_USAGE_REPORTING_URL. E.g. - Basic cm9vdEBleGFtcGxlLmNvbTpDb21wbGV4UGFzcyMxMjM=.
ZO_USAGE_PUBLISH_INTERVAL 600 No Duration in seconds after the last reporting usage will be published.

Reports and Alerts

Environment Variable Default Value Mandatory Description
ZO_CHROME_ENABLED false No When true, it looks for chromium executable. Required for dashboard reports.
ZO_CHROME_PATH - No If chrome is enabled, custom chrome executable path can be specified. If not specified, it looks for chrome executable in default locations. If still not found, it automatically downloads a good known version of chromium.
ZO_CHROME_CHECK_DEFAULT_PATH true No If false, it skips default locations (e.g. CHROME env, usual chrome file path etc.) when looking for chrome executable.
ZO_CHROME_NO_SANDBOX false No If true, it launches chromium in no-sandbox environment.
ZO_CHROME_SLEEP_SECS 20 No Specify the number of timeout seconds the headless chrome will wait until all the dashboard data is loaded.
ZO_CHROME_WITH_HEAD false No If true, it launches the chromium browser in non-headless mode.
ZO_CHROME_WINDOW_WIDTH 1370 No Specifies the width of the headless chromium browser.
ZO_CHROME_WINDOW_HEIGHT 730 No Specifies the height of the headless chromium browser.
ZO_CHROME_AUTO_DOWNLOAD false No Only used by the report-server. If true, the report-server automatically downloads a good known version of chromium if chromium is not found in the system. Note: If auto download of chromium is desired, make sure that the system has all the required dependency libraries of chromium already installed.
ZO_ALERT_SCHEDULE_CONCURRENCY 5 No The number of scheduled jobs the the alert manager will pull at a time from the scheduler for processing
ZO_ALERT_SCHEDULE_TIMEOUT 90 No The maximum expected time duration in seconds within which the processing of alert by the alert manager should be complete. If the processing of the alert is not complete within the timeframe, the alert will become available again for other alert managers to pick.
ZO_REPORT_SCHEDULE_TIMEOUT 300 No The maximum expected time duration in seconds within which the processing of report by the alert manager should be complete. If the processing of the report is not complete within the timeframe, the report will become available again for other alert managers to pick.
ZO_SCHEDULER_MAX_RETRIES 3 No The maximum number of times the scheduler will retry processing the alert/report. If exceeded, the scheduler will skip to the next trigger time of the alert/report.
ZO_SCHEDULER_CLEAN_INTERVAL 30 No The interval in seconds after which the scheduler will clean up the completed scheduled jobs.
ZO_SCHEDULER_WATCH_INTERVAL 30 No The scheduler frequently watches if there are any scheduled jobs which are in processing state for more than the ZO_ALERT_SCHEDULE_TIMEOUT/ZO_REPORT_SCHEDULE_TIMEOUT, if so it increases their retries field by 1 and marks them as available for processing again by alert managers.
ZO_REPORT_USER_NAME "" No The username that will be used by the headless chromium to login into openobserve and generate report.
ZO_REPORT_USER_PASSWORD "" No The password that will be used by the headless chromium to login into openobserve and generate report.
ZO_ENABLE_EMBEDDED_REPORT_SERVER false No If true, the alert manager (for which this ENV is enabled) spawns a new report-server running on PORT 5082 (default, can be changed through ZO_REPORT_SERVER_HTTP_PORT).
ZO_REPORT_SERVER_HTTP_PORT 5082 No The port used by the newly spawned report-server.
ZO_REPORT_SERVER_HTTP_ADDR 127.0.0.1 No The ip address used by the newly spawned report-server.
ZO_REPORT_SERVER_URL localhost:5082 No The report server server URL. E.g. - https://report-server.example.com/api.
ZO_REPORT_SERVER_SKIP_TLS_VERIFY false No If true, it will skip tls verification while making request to report-server from alert manager.

NOTE: For report-server to work correctly, ZO_WEB_URL, ZO_BASE_URI (if any) and ZO_REPORT_SERVER_URL must be specified for every alert managers.

Caching

Environment Variable Default Value Mandatory Description
ZO_DATA_CACHE_DIR ./data/openobserve/cache/ No local query cache storage directory, applicable only for cluster mode.
ZO_MEMORY_CACHE_ENABLED true No enable in-memory caching for files, default is true, the latest files are cached for accelerated queries.
ZO_MEMORY_CACHE_CACHE_LATEST_FILES false No by default we just cache files required by data being queried, enable this option to cache all the latest generated files. Caching all latest generated files can accelerate the queries on latest data, the time range for latest cached files depends on the max cache size.
ZO_MEMORY_CACHE_MAX_SIZE - No default 50% of the total memory used for in-memory cache, one can set it to desired amount unit: MB
ZO_MEMORY_CACHE_SKIP_SIZE - No default 80% of the total memory cache size, A query will skip memory cache if it need more than this value. one can set it to desired amount unit: MB
ZO_MEMORY_CACHE_RELEASE_SIZE - No default drop 1% entries from in-memory cache as cache is full, one can set it to desired amount unit: MB
ZO_MEMORY_CACHE_DATAFUSION_MEMORY_POOL - No memory pool for datafusion, supported: greedy, fair, none, default is: fair, you can choose from: https://docs.rs/datafusion/latest/datafusion/execution/memory_pool/index.html
ZO_MEMORY_CACHE_DATAFUSION_MAX_SIZE - No default 50% of the total memory used for in-memory cache, one can set it to desired amount unit: MB
ZO_MEMORY_CACHE_STRATEGY lru No Memory data cache strategy, default is lru, other value is fifo
ZO_MEMORY_CACHE_BUCKET_NUM 0 No Memory data cache bucket num, multiple bucket means multiple locker, default is 0
ZO_MEMORY_CACHE_GC_SIZE 50 (MB) No
ZO_DISK_CACHE_ENABLED true No enable in-disk caching for files, default is true, the latest files are cached for accelerated queries. when the memory cache is not enough will try to cache in local disk, you can consider the memory cache is first level, disk cache is second level.
ZO_DISK_CACHE_MAX_SIZE - No default 50% of the total free disk for in-disk cache, one can set it to desired amount unit: MB
ZO_DISK_CACHE_SKIP_SIZE - No default 80% of the total disk cache size, A query will skip disk cache if it need more than this value. one can set it to desired amount unit: MB
ZO_DISK_CACHE_RELEASE_SIZE - No default drop 1% entries from in-disk cache as cache is full, one can set it to desired amount unit: MB
ZO_DISK_CACHE_STRATEGY lru No Disk data cache strategy, default is lru, other value is fifo
ZO_DISK_CACHE_BUCKET_NUM 0 No Disk data cache bucket num, multiple bucket means multiple locker, default is 0
ZO_DISK_CACHE_MULTI_DIR No
ZO_DISK_CACHE_GC_SIZE 100 (MB) No
ZO_DISK_CACHE_GC_INTERVAL 0 (seconds) No
ZO_SCHEMA_CACHE_COMPRESS_ENABLED false No

Maxmind GeoIP

Environment Variable Default Value Mandatory Description
ZO_MMDB_DISABLE_DOWNLOAD false No
ZO_MMDB_UPDATE_DURATION 86400 No
ZO_MMDB_DATA_DIR No
ZO_MMDB_GEOLITE_CITYDB_URL No
ZO_MMDB_GEOLITE_ASNDB_URL No
ZO_MMDB_GEOLITE_CITYDB_SHA256_URL No
ZO_MMDB_GEOLITE_CITYDB_SHA256_URL No

OpenObserve self introspection and debugging

Environment Variable Default Value / Example Mandatory Description
ZO_TOKIO_CONSOLE_SERVER_ADDR "0.0.0.0" No
ZO_TOKIO_CONSOLE_SERVER_PORT 6699 No
ZO_TOKIO_CONSOLE_RETENTION 60 No
ZO_PROF_PYROSCOPE_ENABLED false No
ZO_PROF_PYROSCOPE_SERVER_URL http://localhost:4040 No
ZO_PROF_PYROSCOPE_PROJECT_NAME openobserve No
OTEL_OTLP_HTTP_ENDPOINT - / e.g. https://api.openobserve.ai/api/default No remote trace server endpoint.
ZO_TRACING_ENABLED false No enable it to send traces to remote trace server.
ZO_TRACING_HEADER_KEY Authorization No remote trace server endpoint authentication header key.
ZO_TRACING_HEADER_VALUE - / e.g. Basic gjdsgfksgkfjgdskfgsdlfglsjdg No remote trace server endpoint authentication header value.
ZO_TRACING_SEARCH_ENABLED false No

Quick mode

Environment Variable Default Value Mandatory Description
ZO_QUICK_MODE_ENABLED false No Indicates if quick mode is enabled.
ZO_QUICK_MODE_NUM_FIELDS 500 No The number of fields to consider for quick mode.
ZO_QUICK_MODE_STRATEGY "" No Possible values - first, last, both

SMTP

Environment Variable Default Value Mandatory Description
ZO_SMTP_ENABLED false No Indicates if smtp configuration is present.
ZO_SMTP_HOST localhost No The SMTP host to connect to.
ZO_SMTP_PORT 25 No The SMTP port to connect to.
ZO_SMTP_USER_NAME "" No SMTP user name. Required when using smtp.
ZO_SMTP_PASSWORD "" No SMTP user password. Required when using smtp.
ZO_SMTP_REPLY_TO "" No The user email whom people can reply to.
ZO_SMTP_FROM_EMAIL "" No The user email that is going to send the email. Required when using smtp.
ZO_SMTP_ENCRYPTION "" No Smtp encryption method. Possible values - ssltls, starttls and "" (in case of localhost smtp).

NATS

Environment Variable Default Value Mandatory Description
ZO_NATS_ADDR localhost:4222 No NATS server address - If not stated explicitly the nats:// schema and port 4222 is assumed.
ZO_NATS_PREFIX o2_ No NATS prefix for openobserve.
ZO_NATS_USER "" No NATS user name.
ZO_NATS_PASSWORD "" No NATS user password.
ZO_NATS_REPLICAS 3 No Number of replicas for NATS.
ZO_NATS_CONNECT_TIMEOUT 5 No NATS connection timeout in seconds.
ZO_NATS_COMMAND_TIMEOUT 10 No NATS command timeout in seconds.
ZO_NATS_LOCK_WAIT_TIMEOUT 3600 No NATS lock wait timeout in seconds.
ZO_NATS_QUEUE_MAX_AGE 60 No NATS queue maximum age in days.

Etcd

Using etcd is discouraged. Please use NATS as cluster coordinator and postgres/mysql as metastore.

For backward compatibility, we still support etcd but most of you should be able to migrate to NATS and postgres/mysql.

Environment Variable Default Value Mandatory Description
ZO_ETCD_ADDR localhost:2379 No default etcd endpoint
ZO_ETCD_PREFIX /openobserve/oxide/ No etcd keys prefix
ZO_ETCD_CONNECT_TIMEOUT 5 No endpoint connection timeout, unit: seconds
ZO_ETCD_COMMAND_TIMEOUT 10 No command execute timeout, unit: seconds
ZO_ETCD_LOCK_WAIT_TIMEOUT 60 No max ttl for a lock, the lock will report timeout above this limit.
ZO_ETCD_LOAD_PAGE_SIZE 1000 No set/change this to detect pagination size for loading data from etcd.
ZO_ETCD_USER - No authentication, username, refer: https://etcd.io/docs/v3.5/op-guide/authentication/rbac/
ZO_ETCD_PASSWORD - No authentication, password
ZO_ETCD_CLIENT_CERT_AUTH false No authentication with TLS, default is disabled, refer: https://etcd.io/docs/v3.5/op-guide/security/
ZO_ETCD_TRUSTED_CA_FILE - No authentication with TLS, ca file path
ZO_ETCD_CERT_FILE - No authentication with TLS, cert file path
ZO_ETCD_KEY_FILE - No authentication with TLS, key file path
ZO_ETCD_DOMAIN_NAME - No authentication with TLS, cert domain name, default is empty, OpenObserve uses the domain in the cert

S3 / Object store

Environment Variable Default Value Mandatory Description
ZO_S3_SERVER_URL - No default for aws s3 & leave it empty, but for minIO, gcs one should configure it.
ZO_S3_REGION_NAME - No region name
ZO_S3_ACCESS_KEY - No access key
ZO_S3_SECRET_KEY - No secret key
ZO_S3_BUCKET_NAME - No bucket name
ZO_S3_BUCKET_PREFIX - No you can store data in a sub directory, like: openobserve/
ZO_S3_PROVIDER s3 No s3 provider name, like: aws, gcs, gcp, oss, minio, swift
ZO_S3_FEATURE_FORCE_PATH_STYLE false No feature: force_path_style, default enable for provider minio and swift.
AWS_EC2_METADATA_DISABLED false No feature, default enable for swift.
ZO_S3_FEATURE_HTTP1_ONLY false No feature
ZO_S3_FEATURE_HTTP2_ONLY false No feature

Enterprise

Below are the Environment variables only available in the enterprise edition.

Misc

Environment Variable Default Value Mandatory Description
O2_AUDIT_ENABLED false No Indicates if audit reporting is enabled.
O2_AUDIT_BATCH_SIZE 500 No How many requests should be batched before flushing the audit data from memory to disk.
O2_CUSTOM_LOGO_TEXT "" No Custom logo text that will appear along with the openobserve logo.
O2_CUSTOM_SLACK_URL "" No Custom slack URL that will be used by the Slack menu on the openobserve UI.
O2_CUSTOM_DOCS_URL "" No Custom docs URL that will be used by the docs tab on the openobserve UI.
O2_CUSTOM_HIDE_MENUS "" No comma(',') separated menu items that should not be shown in the menu on openobserve UI. E.g. - metrics,traces

Super-Cluster

Environment Variable Default Value Mandatory Description
O2_SUPER_CLUSTER_ENABLED false No Indicates if super cluster is enabled.
O2_SUPER_CLUSTER_REGION default No Region of super cluster.
O2_SUPER_CLUSTER_PUBLIC_ADDR "" No Public address of super cluster.
O2_SUPER_CLUSTER_PUBLIC_PORT "" No Public port of super cluster (in case of gRPC).
O2_SUPER_CLUSTER_GRPC_TOKEN "" No gRPC token.

Search-Group

Environment Variable Default Value Mandatory Description
O2_SEARCH_GROUP_LONG_MAX_CPU 80% No
O2_SEARCH_GROUP_LONG_MAX_MEMORY 80% No
O2_SEARCH_GROUP_LONG_MAX_CONCURRENCY 2 No
O2_SEARCH_GROUP_SHORT_MAX_CPU 20% No
O2_SEARCH_GROUP_SHORT_MAX_CONCURRENCY 4 No
O2_SEARCH_GROUP_SHORT_MAX_MEMORY 20% No
O2_SEARCH_GROUP_BASE_SPEED 1024 No Base speed in MB.
O2_SEARCH_GROUP_BASE_SECS 10 No Base speed in secs.

OpenFGA

Environment Variable Default Value Mandatory Description
O2_OPENFGA_ENABLED false No Indicates if openfga is enabled.
O2_OPENFGA_BASE_URL http://127.0.0.1:8080/stores No The base URL of openfga stores server. Required when openfga is enabled.
O2_OPENFGA_STORE_NAME openobserve No OpenFGA store name. Required when openfga is enabled.
O2_MAP_GROUP_TO_ROLE false No If true, the group claims are mapped into roles in the default org.
O2_OPENFGA_PAGE_SIZE 100 No The page size used for openfga queries.
O2_OPENFGA_LIST_ONLY_PERMITTED false No If true, openobserve only lists resources that have GET permission.
O2_MAP_GROUP_TO_ROLE_SKIP_CREATION true No Used with O2_MAP_GROUP_TO_ROLE. Skips creating the roles mapped from group claims assuming they already exists.

DEX

Environment Variable Default Value Mandatory Description
O2_DEX_ENABLED false No Enables SSO in OpenObserve using Dex.
O2_DEX_CLIENT_ID - No Client id of static client. Required when dex is enabled.
O2_DEX_CLIENT_SECRET - No Client secret of static client. Required when dex is enabled.
O2_DEX_BASE_URL http://127.0.0.1:5556/dex No URL of the Dex identity provider. Required when dex is enabled.
O2_CALLBACK_URL - No Set this value to <openobserve base url>/web/cb, after successful token received from dex, user will be redirected to this page. Required when dex is enabled.
O2_DEX_REDIRECT_URL - No Set this value to <openobserve base url>/config/callback, Should match to redirect uri specified in dex. Required when dex is enabled.
O2_DEX_SCOPES openid profile email groups offline_access No scopes to be fetched from dex.
O2_DEX_GROUP_ATTRIBUTE ou No Maps user to OpenObserve organization.
O2_DEX_ROLE_ATTRIBUTE cn No User's role in the organization.
O2_DEX_DEFAULT_ORG default No Default organization for users not belonging to any group in ldap
O2_DEX_AUTH_EP_SUFFIX /auth No Suffix for dex authentication endpoint
O2_DEX_TOKEN_EP_SUFFIX /token No Suffix for dex token endpoint
O2_DEX_KEYS_EP_SUFFIX /keys No Suffix for dex keys endpoint
O2_DEX_AUTH_EP_SUFFIX /auth No Suffix for dex authentication endpoint
O2_DEX_NATIVE_LOGIN_ENABLED true No Indicates if native dex login is enabled.