{{< product-name >}} lets you customize your server configuration by using `influxdb3 serve` command options or by setting environment variables. ## Configure your server Pass configuration options to the `influxdb serve` server using either command options or environment variables. Command options take precedence over environment variables. ##### Example `influxdb3 serve` command options ```sh influxdb3 serve \ --node-id node0 \ {{% show-in "enterprise" %}} --cluster-id cluster0 \ --license-email example@email.com \{{% /show-in %}} --object-store file \ --data-dir ~/.influxdb3 \ --log-filter info ``` ##### Example environment variables ```sh {{% show-in "enterprise" %}}export INFLUXDB3_ENTERPRISE_LICENSE_EMAIL=example@email.com export INFLUXDB3_ENTERPRISE_CLUSTER_ID=cluster0 {{% /show-in %}}export INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node export INFLUXDB3_OBJECT_STORE=file export INFLUXDB3_DB_DIR=~/.influxdb3 export LOG_FILTER=info influxdb3 serve ``` ## Server configuration options - [General](#general) {{% show-in "enterprise" %}} - [cluster-id](#cluster-id){{% /show-in %}} - [data-dir](#data-dir) {{% show-in "enterprise" %}} - [mode](#mode){{% /show-in %}} - [node-id](#node-id) {{% show-in "enterprise" %}} - [node-id-from-env](#node-id-from-env){{% /show-in %}} - [object-store](#object-store) {{% show-in "enterprise" %}} - [num-cores](#num-cores) - [num-database-limit](#num-database-limit) - [num-table-limit](#num-table-limit) - [num-total-columns-per-table-limit](#num-total-columns-per-table-limit) - [Licensing](#licensing) - [license-email](#license-email) - [license-file](#license-file) - [license-type](#license-type){{% /show-in %}} - [Security](#security) - [tls-key](#tls-key) - [tls-cert](#tls-cert) - [tls-minimum-versions](#tls-minimum-version) - [without-auth](#without-auth) - [disable-authz](#disable-authz) - [admin-token-recovery-http-bind](#admin-token-recovery-http-bind) - [admin-token-file](#admin-token-file) {{% show-in "enterprise" %}}- [permission-tokens-file](#permission-tokens-file){{% /show-in %}} - [AWS](#aws) - [aws-access-key-id](#aws-access-key-id) - [aws-secret-access-key](#aws-secret-access-key) - [aws-default-region](#aws-default-region) - [aws-endpoint](#aws-endpoint) - [aws-session-token](#aws-session-token) - [aws-allow-http](#aws-allow-http) - [aws-skip-signature](#aws-skip-signature) - [aws-credentials-file](#aws-credentials-file) - [Google Cloud Service](#google-cloud-service) - [google-service-account](#google-service-account) - [Microsoft Azure](#microsoft-azure) - [azure-storage-account](#azure-storage-account) - [azure-storage-access-key](#azure-storage-access-key) - [azure-endpoint](#azure-endpoint) - [azure-allow-http](#azure-allow-http) - [Object Storage](#object-storage) - [bucket](#bucket) - [object-store-connection-limit](#object-store-connection-limit) - [object-store-http2-only](#object-store-http2-only) - [object-store-http2-max-frame-size](#object-store-http2-max-frame-size) - [object-store-max-retries](#object-store-max-retries) - [object-store-retry-timeout](#object-store-retry-timeout) - [object-store-cache-endpoint](#object-store-cache-endpoint) - [Logs](#logs) - [log-filter](#log-filter) - [log-destination](#log-destination) - [log-format](#log-format) - [query-log-size](#query-log-size) - [Traces](#traces) - [traces-exporter](#traces-exporter) - [traces-exporter-jaeger-agent-host](#traces-exporter-jaeger-agent-host) - [traces-exporter-jaeger-agent-port](#traces-exporter-jaeger-agent-port) - [traces-exporter-jaeger-service-name](#traces-exporter-jaeger-service-name) - [traces-exporter-jaeger-trace-context-header-name](#traces-exporter-jaeger-trace-context-header-name) - [traces-jaeger-debug-name](#traces-jaeger-debug-name) - [traces-jaeger-tags](#traces-jaeger-tags) - [traces-jaeger-max-msgs-per-second](#traces-jaeger-max-msgs-per-second) - [DataFusion](#datafusion) - [datafusion-num-threads](#datafusion-num-threads) - [datafusion-runtime-type](#datafusion-runtime-type) - [datafusion-runtime-disable-lifo-slot](#datafusion-runtime-disable-lifo-slot) - [datafusion-runtime-event-interval](#datafusion-runtime-event-interval) - [datafusion-runtime-global-queue-interval](#datafusion-runtime-global-queue-interval) - [datafusion-runtime-max-blocking-threads](#datafusion-runtime-max-blocking-threads) - [datafusion-runtime-max-io-events-per-tick](#datafusion-runtime-max-io-events-per-tick) - [datafusion-runtime-thread-keep-alive](#datafusion-runtime-thread-keep-alive) - [datafusion-runtime-thread-priority](#datafusion-runtime-thread-priority) - [datafusion-max-parquet-fanout](#datafusion-max-parquet-fanout) - [datafusion-use-cached-parquet-loader](#datafusion-use-cached-parquet-loader) - [datafusion-config](#datafusion-config) - [HTTP](#http) - [max-http-request-size](#max-http-request-size) - [http-bind](#http-bind) - [Memory](#memory) - [exec-mem-pool-bytes](#exec-mem-pool-bytes) - [force-snapshot-mem-threshold](#force-snapshot-mem-threshold) - [Write-Ahead Log (WAL)](#write-ahead-log-wal) - [wal-flush-interval](#wal-flush-interval) - [wal-snapshot-size](#wal-snapshot-size) - [wal-max-write-buffer-size](#wal-max-write-buffer-size) - [snapshotted-wal-files-to-keep](#snapshotted-wal-files-to-keep) - [wal-replay-fail-on-error](#wal-replay-fail-on-error) - [wal-replay-concurrency-limit](#wal-replay-concurrency-limit) - [Compaction](#compaction) {{% show-in "enterprise" %}} - [compaction-row-limit](#compaction-row-limit) - [compaction-max-num-files-per-plan](#compaction-max-num-files-per-plan) - [compaction-gen2-duration](#compaction-gen2-duration) - [compaction-multipliers](#compaction-multipliers) - [compaction-cleanup-wait](#compaction-cleanup-wait) - [compaction-check-interval](#compaction-check-interval){{% /show-in %}} - [gen1-duration](#gen1-duration) - [Caching](#caching) - [preemptive-cache-age](#preemptive-cache-age) - [parquet-mem-cache-size](#parquet-mem-cache-size) - [parquet-mem-cache-prune-percentage](#parquet-mem-cache-prune-percentage) - [parquet-mem-cache-prune-interval](#parquet-mem-cache-prune-interval) - [parquet-mem-cache-query-path-duration](#parquet-mem-cache-query-path-duration) - [disable-parquet-mem-cache](#disable-parquet-mem-cache) - [table-index-cache-max-entries](#table-index-cache-max-entries) - [table-index-cache-concurrency-limit](#table-index-cache-concurrency-limit) {{% show-in "enterprise" %}} - [last-value-cache-disable-from-history](#last-value-cache-disable-from-history){{% /show-in %}} - [last-cache-eviction-interval](#last-cache-eviction-interval) {{% show-in "enterprise" %}} - [distinct-value-cache-disable-from-history](#distinct-value-cache-disable-from-history){{% /show-in %}} - [distinct-cache-eviction-interval](#distinct-cache-eviction-interval) - [query-file-limit](#query-file-limit) - [Processing Engine](#processing-engine) - [plugin-dir](#plugin-dir) - [virtual-env-location](#virtual-env-location) - [package-manager](#package-manager) {{% show-in "enterprise" %}} - [Cluster Management](#cluster-management) - [replication-interval](#replication-interval) - [catalog-sync-interval](#catalog-sync-interval) - [wait-for-running-ingestor](#wait-for-running-ingestor) - [Resource Limits](#resource-limits) - [num-cores](#num-cores) - [num-database-limit](#num-database-limit) - [num-table-limit](#num-table-limit) - [num-total-columns-per-table-limit](#num-total-columns-per-table-limit) {{% /show-in %}} - [Data Lifecycle Management](#data-lifecycle-management) - [gen1-lookback-duration](#gen1-lookback-duration) - [retention-check-interval](#retention-check-interval) - [delete-grace-period](#delete-grace-period) - [hard-delete-default-duration](#hard-delete-default-duration) - [Telemetry](#telemetry) - [telemetry-disable-upload](#telemetry-disable-upload) - [telemetry-endpoint](#telemetry-endpoint) - [TCP Listeners](#tcp-listeners) - [tcp-listener-file-path](#tcp-listener-file-path) - [admin-token-recovery-tcp-listener-file-path](#admin-token-recovery-tcp-listener-file-path) --- ### General {{% show-in "enterprise" %}} - [cluster-id](#cluster-id) {{% /show-in %}} - [data-dir](#data-dir) {{% show-in "enterprise" %}} - [mode](#mode) {{% /show-in %}} - [node-id](#node-id) {{% show-in "enterprise" %}} - [node-id-from-env](#node-id-from-env) {{% /show-in %}} - [object-store](#object-store) - [query-file-limit](#query-file-limit) {{% show-in "enterprise" %}} #### cluster-id Specifies the cluster identifier that prefixes the object store path for the Enterprise Catalog. This value must be different than the [`--node-id`](#node-id) value. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------------------- | | `--cluster-id` | `INFLUXDB3_ENTERPRISE_CLUSTER_ID` | --- {{% /show-in %}} #### data-dir For the `file` object store, defines the location {{< product-name >}} uses to store files locally. Required when using the `file` [object store](#object-store). | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--data-dir` | `INFLUXDB3_DB_DIR` | --- {{% show-in "enterprise" %}} #### mode Sets the mode to start the server in. This option supports the following values: - `all` _(default)_: Enables all server modes - `ingest`: Enables only data ingest capabilities - `query`: Enables only query capabilities - `compact`: Enables only compaction processes - `process`: Enables only data processing capabilities You can specify multiple modes using a comma-delimited list (for example, `ingest,query`). **Default:** `all` | influxdb3 serve option | Environment variable | | :--------------------- | :-------------------------- | | `--mode` | `INFLUXDB3_ENTERPRISE_MODE` | --- {{% /show-in %}} #### node-id Specifies the node identifier used as a prefix in all object store file paths. This should be unique for any hosts sharing the same object store configuration--for example, the same bucket. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------------------- | | `--node-id` | `INFLUXDB3_NODE_IDENTIFIER_PREFIX` | --- {{% show-in "enterprise" %}} #### node-id-from-env Specifies the node identifier used as a prefix in all object store file paths. Takes the name of an environment variable as an argument and uses the value of that environment variable as the node identifier. This option cannot be used with the `--node-id` option. | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--node-id-from-env` | `INFLUXDB3_NODE_IDENTIFIER_FROM_ENV` | ##### Example using --node-id-from-env ```bash export DATABASE_NODE=node0 && influxdb3 serve \ --node-id-from-env DATABASE_NODE \ --cluster-id cluster0 \ --object-store file \ --data-dir ~/.influxdb3/data ``` --- {{% /show-in %}} #### object-store Specifies which object storage to use to store Parquet files. This option supports the following values: - `memory`: Effectively no object persistence - `memory-throttled`: Like `memory` but with latency and throughput that somewhat resembles a cloud object store - `file`: Stores objects in the local filesystem (must also set `--data-dir`) - `s3`: Amazon S3 (must also set `--bucket`, `--aws-access-key-id`, `--aws-secret-access-key`, and possibly `--aws-default-region`) - `google`: Google Cloud Storage (must also set `--bucket` and `--google-service-account`) - `azure`: Microsoft Azure blob storage (must also set `--bucket`, `--azure-storage-account`, and `--azure-storage-access-key`) | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------- | | `--object-store` | `INFLUXDB3_OBJECT_STORE` | {{% show-in "enterprise" %}} --- #### num-cores Limits the total number of CPU cores that can be used by the server. Default is determined by your {{% product-name %}} license: - **Trial**: up to 256 cores - **At-Home**: 2 cores - **Commercial**: per contract | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------------------- | | `--num-cores` | `INFLUXDB3_ENTERPRISE_NUM_CORES` | For more information about licensing, see [Manage license](/influxdb3/enterprise/admin/license). --- #### num-database-limit Limits the total number of active databases. Default is {{% influxdb3/limit "database" %}}. | influxdb3 serve option | Environment variable | | :---------------------- | :---------------------------------------- | | `--num-database-limit` | `INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT` | --- #### num-table-limit Limits the total number of active tables across all databases. Default is {{% influxdb3/limit "table" %}}. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------------------------- | | `--num-table-limit` | `INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT` | --- #### num-total-columns-per-table-limit Limits the total number of columns per table. Default is {{% influxdb3/limit "column" %}}. | influxdb3 serve option | Environment variable | | :------------------------------------ | :------------------------------------------------------- | | `--num-total-columns-per-table-limit` | `INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT` | {{% /show-in %}} --- {{% show-in "enterprise" %}} ### Licensing #### license-email Specifies the email address to associate with your {{< product-name >}} license and automatically responds to the interactive email prompt when the server starts. This option is mutually exclusive with [license-file](#license-file). | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-email` | `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL` | --- #### license-file Specifies the path to a license file for {{< product-name >}}. When provided, the license file's contents are used instead of requesting a new license. This option is mutually exclusive with [license-email](#license-email). | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-file` | `INFLUXDB3_ENTERPRISE_LICENSE_FILE` | --- #### license-type Specifies the type of {{% product-name %}} license to use and bypasses the interactive license prompt. Provide one of the following license types: - `home` - `trial` - `commercial` | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-type` | `INFLUXDB3_ENTERPRISE_LICENSE_TYPE` | --- {{% /show-in %}} ### Security - [tls-key](#tls-key) - [tls-cert](#tls-cert) - [tls-minimum-versions](#tls-minimum-version) - [without-auth](#without-auth) - [disable-authz](#disable-authz) - [admin-token-recovery-http-bind](#admin-token-recovery-http-bind) - [admin-token-file](#admin-token-file) {{% show-in "enterprise" %}}- [permission-tokens-file](#permission-tokens-file){{% /show-in %}} #### tls-key The path to a key file for TLS to be enabled. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------- | | `--tls-key` | `INFLUXDB3_TLS_KEY` | --- #### tls-cert The path to a cert file for TLS to be enabled. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------- | | `--tls-cert` | `INFLUXDB3_TLS_CERT` | --- #### tls-minimum-version The minimum version for TLS. Valid values are `tls-1.2` or `tls-1.3`. Default is `tls-1.2`. | influxdb3 serve option | Environment variable | | :---------------------- | :----------------------- | | `--tls-minimum-version` | `INFLUXDB3_TLS_MINIMUM_VERSION` | --- #### without-auth Disables authentication for all server actions (CLI commands and API requests). The server processes all requests without requiring tokens or authentication. | influxdb3 serve option | Environment variable | | :--------------------- | :---------------------------- | | `--without-auth` | `INFLUXDB3_START_WITHOUT_AUTH`| --- #### disable-authz Optionally disable authz by passing in a comma separated list of resources. Valid values are `health`, `ping`, and `metrics`. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------------ | | `--disable-authz` | `INFLUXDB3_DISABLE_AUTHZ` | --- #### admin-token-recovery-http-bind Enables an admin token recovery HTTP server on a separate port. This server allows regenerating lost admin tokens without existing authentication. The server automatically shuts down after a successful token regeneration. > [!Warning] > This option creates an unauthenticated endpoint that can regenerate admin tokens. > Only use this when you have lost access to your admin token and ensure the > server is only accessible from trusted networks. **Default:** `127.0.0.1:8182` (when enabled) | influxdb3 serve option | Environment variable | | :--------------------------------- | :----------------------------------------- | | `--admin-token-recovery-http-bind` | `INFLUXDB3_ADMIN_TOKEN_RECOVERY_HTTP_BIND` | ##### Example usage ```bash # Start server with recovery endpoint influxdb3 serve --admin-token-recovery-http-bind # In another terminal, regenerate the admin token influxdb3 create token --admin --regenerate --host http://127.0.0.1:8182 ``` --- #### admin-token-file Specifies an offline admin token file to use if no tokens exist when the server starts. Once started, you can interact with the server using the provided token. Offline admin tokens are designed to help with automated deployments. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------------- | | `--admin-token-file` | `INFLUXDB3_ADMIN_TOKEN_FILE` | Offline admin tokens are defined in a JSON-formatted file. Use the following command to generate an offline admin token file: ```bash { placeholders="./path/to/admin-token.json" } influxdb3 create token --admin \ --name "example-admin-token" \ --expiry 1d \ --offline \ --output-file ./path/to/admin-token.json ``` {{< expand-wrapper >}} {{% expand "View example offline admin token file" %}} ```json { "token": "apiv3_0XXXX-xxxXxXxxxXX_OxxxX...", "name": "example-admin-token", "expiry_millis": 1756400061529 } ``` {{% /expand %}} {{< /expand-wrapper >}} ##### Example usage ```bash { placeholders="./path/to/admin-token.json" } # Generate and admin token offline influxdb3 create token \ --admin \ --name "example-admin-token" \ --expiry 1d \ --offline \ --output-file ./path/to/admin-token.json # Start {{% product-name %}} using the generated token influxdb3 serve --admin-token-file ./path/to/admin-token.json ``` --- {{% show-in "enterprise" %}} #### permission-tokens-file Specifies an offline permission (resource) tokens file to use if no resource tokens exist when the server starts. Once started, you can interact with the server using the provided tokens. Offline permission tokens are designed to help with automated deployments. | influxdb3 serve option | Environment variable | | :------------------------- | :--------------------------------- | | `--permission-tokens-file` | `INFLUXDB3_PERMISSION_TOKENS_FILE` | Multiple tokens with database-level permissions can be defined. You can also specify databases to create at startup. Use the a command similar to the following to generate an offline permission token file: ```bash { placeholders="./path/to/tokens.json" } influxdb3 create token \ --name "example-token" \ --permission "db:db1,db2:read,write" \ --permission "db:db3:read" \ --expiry 1d \ --offline \ --create-databases db1,db2 \ --output-file ./path/to/tokens.json ``` {{< expand-wrapper >}} {{% expand "View example offline permission tokens file" %}} ```json { "create_databases": [ "db1", "db2", "d3" ], "tokens": [ { "token": "apiv3_0XXXX-xxxXxXxxxXX_OxxxX...", "name": "example-token", "expiry_millis": 1756400061529, "permissions": [ "db:db1,db2:read,write", "db:db3:read" ] } ] } ``` {{% /expand %}} {{< /expand-wrapper >}} > [!Note] > If you write a new offline permission token to an existing permission token file, > the command appends the new token to the existing output file. ##### Example usage ```bash { placeholders="./path/to/tokens.json" } # Generate and admin token offline influxdb3 create token \ --name "example-token" \ --permission "db:db1,db2:read,write" \ --permission "db:db3:read" \ --expiry 1d \ --offline \ --create-databases db1,db2 \ --output-file ./path/to/tokens.json # Start {{% product-name %}} using the generated token influxdb3 serve --permission-tokens-file ./path/to/tokens.json ``` --- {{% /show-in %}} {{% show-in "enterprise" %}} ### Licensing #### license-email Specifies the email address to associate with your {{< product-name >}} license and automatically responds to the interactive email prompt when the server starts. This option is mutually exclusive with [license-file](#license-file). | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-email` | `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL` | --- #### license-file Specifies the path to a license file for {{< product-name >}}. When provided, the license file's contents are used instead of requesting a new license. This option is mutually exclusive with [license-email](#license-email). | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-file` | `INFLUXDB3_ENTERPRISE_LICENSE_FILE` | --- #### license-type Specifies the type of {{% product-name %}} license to use and bypasses the interactive license prompt. Provide one of the following license types: - `home` - `trial` - `commercial` | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------------- | | `--license-type` | `INFLUXDB3_ENTERPRISE_LICENSE_TYPE` | --- {{% /show-in %}} ### AWS - [aws-access-key-id](#aws-access-key-id) - [aws-secret-access-key](#aws-secret-access-key) - [aws-default-region](#aws-default-region) - [aws-endpoint](#aws-endpoint) - [aws-session-token](#aws-session-token) - [aws-allow-http](#aws-allow-http) - [aws-skip-signature](#aws-skip-signature) - [aws-credentials-file](#aws-credentials-file) #### aws-access-key-id When using Amazon S3 as the object store, set this to an access key that has permission to read from and write to the specified S3 bucket. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-access-key-id` | `AWS_ACCESS_KEY_ID` | --- #### aws-secret-access-key When using Amazon S3 as the object store, set this to the secret access key that goes with the specified access key ID. | influxdb3 serve option | Environment variable | | :------------------------ | :---------------------- | | `--aws-secret-access-key` | `AWS_SECRET_ACCESS_KEY` | --- #### aws-default-region When using Amazon S3 as the object store, set this to the region that goes with the specified bucket if different from the fallback value. **Default:** `us-east-1` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-default-region` | `AWS_DEFAULT_REGION` | --- #### aws-endpoint When using an Amazon S3 compatibility storage service, set this to the endpoint. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-endpoint` | `AWS_ENDPOINT` | --- #### aws-session-token When using Amazon S3 as an object store, set this to the session token. This is handy when using a federated login or SSO and fetching credentials via the UI. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-session-token` | `AWS_SESSION_TOKEN` | --- #### aws-allow-http Allows unencrypted HTTP connections to AWS. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-allow-http` | `AWS_ALLOW_HTTP` | --- #### aws-skip-signature If enabled, S3 object stores do not fetch credentials and do not sign requests. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--aws-skip-signature` | `AWS_SKIP_SIGNATURE` | --- #### aws-credentials-file Specifies the path to your S3 credentials file. When using a credentials file, settings in the file override the corresponding CLI flags. S3 credential files are JSON-formatted and should contain the following: ```json { placeholders="AWS_(ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)|UNIX_SECONDS_TIMESTAMP" } { "aws_access_key_id": "AWS_ACCESS_KEY_ID", "aws_secret_access_key": "AWS_SECRET_ACCESS_KEY", "aws_session_token": "AWS_SESSION_TOKEN", "expiry": "UNIX_SECONDS_TIMESTAMP" } ``` The `aws_session_token` and `expiry` fields are optional. The file is automatically checked for updates at the expiry time or at 1-hour intervals. If the object store returns an "Unauthenticated" error, InfluxDB will attempt to update its in-memory credentials from this file and then retry the object store request. | influxdb3 serve option | Environment variable | | :----------------------- | :--------------------- | | `--aws-credentials-file` | `AWS_CREDENTIALS_FILE` | --- ### Google Cloud Service - [google-service-account](#google-service-account) #### google-service-account When using Google Cloud Storage as the object store, set this to the path to the JSON file that contains the Google credentials. | influxdb3 serve option | Environment variable | | :------------------------- | :----------------------- | | `--google-service-account` | `GOOGLE_SERVICE_ACCOUNT` | --- ### Microsoft Azure - [azure-storage-account](#azure-storage-account) - [azure-storage-access-key](#azure-storage-access-key) - [azure-endpoint](#azure-endpoint) - [azure-allow-http](#azure-allow-http) #### azure-storage-account When using Microsoft Azure as the object store, set this to the name you see when navigating to **All Services > Storage accounts > `[name]`**. | influxdb3 serve option | Environment variable | | :------------------------ | :---------------------- | | `--azure-storage-account` | `AZURE_STORAGE_ACCOUNT` | --- #### azure-storage-access-key When using Microsoft Azure as the object store, set this to one of the Key values in the Storage account's **Settings > Access keys**. | influxdb3 serve option | Environment variable | | :--------------------------- | :------------------------- | | `--azure-storage-access-key` | `AZURE_STORAGE_ACCESS_KEY` | --- #### azure-endpoint When using Microsoft Azure as the object store, set this to the Azure Blob Storage endpoint. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--azure-endpoint` | `AZURE_ENDPOINT` | --- #### azure-allow-http When using Microsoft Azure as the object store, allow unencrypted HTTP requests to Azure Blob Storage. **Default:** `false` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--azure-allow-http` | `AZURE_ALLOW_HTTP` | --- ### Object Storage - [bucket](#bucket) - [object-store-connection-limit](#object-store-connection-limit) - [object-store-http2-only](#object-store-http2-only) - [object-store-http2-max-frame-size](#object-store-http2-max-frame-size) - [object-store-max-retries](#object-store-max-retries) - [object-store-retry-timeout](#object-store-retry-timeout) - [object-store-cache-endpoint](#object-store-cache-endpoint) #### bucket Sets the name of the object storage bucket to use. Must also set `--object-store` to a cloud object storage for this option to take effect. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--bucket` | `INFLUXDB3_BUCKET` | --- #### object-store-connection-limit When using a network-based object store, limits the number of connections to this value. **Default:** `16` | influxdb3 serve option | Environment variable | | :-------------------------------- | :------------------------------ | | `--object-store-connection-limit` | `OBJECT_STORE_CONNECTION_LIMIT` | --- #### object-store-http2-only Forces HTTP/2 connections to network-based object stores. | influxdb3 serve option | Environment variable | | :-------------------------- | :------------------------ | | `--object-store-http2-only` | `OBJECT_STORE_HTTP2_ONLY` | --- #### object-store-http2-max-frame-size Sets the maximum frame size (in bytes/octets) for HTTP/2 connections. | influxdb3 serve option | Environment variable | | :------------------------------------ | :---------------------------------- | | `--object-store-http2-max-frame-size` | `OBJECT_STORE_HTTP2_MAX_FRAME_SIZE` | --- #### object-store-max-retries Defines the maximum number of times to retry a request. | influxdb3 serve option | Environment variable | | :--------------------------- | :------------------------- | | `--object-store-max-retries` | `OBJECT_STORE_MAX_RETRIES` | --- #### object-store-retry-timeout Specifies the maximum length of time from the initial request after which no further retries are be attempted. | influxdb3 serve option | Environment variable | | :----------------------------- | :--------------------------- | | `--object-store-retry-timeout` | `OBJECT_STORE_RETRY_TIMEOUT` | --- #### object-store-cache-endpoint Sets the endpoint of an S3-compatible, HTTP/2-enabled object store cache. | influxdb3 serve option | Environment variable | | :------------------------------ | :---------------------------- | | `--object-store-cache-endpoint` | `OBJECT_STORE_CACHE_ENDPOINT` | --- ### Logs - [log-filter](#log-filter) - [log-destination](#log-destination) - [log-format](#log-format) - [query-log-size](#query-log-size) #### log-filter Sets the filter directive for logs. | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--log-filter` | `LOG_FILTER` | --- #### log-destination Specifies the destination for logs. This option supports the following values: - `stdout` _(default)_ - `stderr` **Default:** `stdout` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--log-destination` | `LOG_DESTINATION` | --- #### log-format Defines the message format for logs. This option supports the following values: - `full` _(default)_ **Default:** `full` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--log-format` | `LOG_FORMAT` | --- #### query-log-size Defines the size of the query log. Up to this many queries remain in the log before older queries are evicted to make room for new ones. **Default:** `1000` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------------- | | `--query-log-size` | `INFLUXDB3_QUERY_LOG_SIZE` | --- ### Traces - [traces-exporter](#traces-exporter) - [traces-exporter-jaeger-agent-host](#traces-exporter-jaeger-agent-host) - [traces-exporter-jaeger-agent-port](#traces-exporter-jaeger-agent-port) - [traces-exporter-jaeger-service-name](#traces-exporter-jaeger-service-name) - [traces-exporter-jaeger-trace-context-header-name](#traces-exporter-jaeger-trace-context-header-name) - [traces-jaeger-debug-name](#traces-jaeger-debug-name) - [traces-jaeger-tags](#traces-jaeger-tags) - [traces-jaeger-max-msgs-per-second](#traces-jaeger-max-msgs-per-second) #### traces-exporter Sets the type of tracing exporter. **Default:** `none` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--traces-exporter` | `TRACES_EXPORTER` | --- #### traces-exporter-jaeger-agent-host Specifies the Jaeger agent network hostname for tracing. **Default:** `0.0.0.0` | influxdb3 serve option | Environment variable | | :------------------------------------ | :---------------------------------- | | `--traces-exporter-jaeger-agent-host` | `TRACES_EXPORTER_JAEGER_AGENT_HOST` | --- #### traces-exporter-jaeger-agent-port Defines the Jaeger agent network port for tracing. **Default:** `6831` | influxdb3 serve option | Environment variable | | :------------------------------------ | :---------------------------------- | | `--traces-exporter-jaeger-agent-port` | `TRACES_EXPORTER_JAEGER_AGENT_PORT` | --- #### traces-exporter-jaeger-service-name Sets the Jaeger service name for tracing. **Default:** `iox-conductor` | influxdb3 serve option | Environment variable | | :-------------------------------------- | :------------------------------------ | | `--traces-exporter-jaeger-service-name` | `TRACES_EXPORTER_JAEGER_SERVICE_NAME` | --- #### traces-exporter-jaeger-trace-context-header-name Specifies the header name used for passing trace context. **Default:** `uber-trace-id` | influxdb3 serve option | Environment variable | | :--------------------------------------------------- | :------------------------------------------------- | | `--traces-exporter-jaeger-trace-context-header-name` | `TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME` | --- #### traces-jaeger-debug-name Specifies the header name used for force sampling in tracing. **Default:** `jaeger-debug-id` | influxdb3 serve option | Environment variable | | :--------------------------- | :---------------------------------- | | `--traces-jaeger-debug-name` | `TRACES_EXPORTER_JAEGER_DEBUG_NAME` | --- #### traces-jaeger-tags Defines a set of `key=value` pairs to annotate tracing spans with. | influxdb3 serve option | Environment variable | | :--------------------- | :---------------------------- | | `--traces-jaeger-tags` | `TRACES_EXPORTER_JAEGER_TAGS` | --- #### traces-jaeger-max-msgs-per-second Specifies the maximum number of messages sent to a Jaeger service per second. **Default:** `1000` | influxdb3 serve option | Environment variable | | :------------------------------------ | :---------------------------------- | | `--traces-jaeger-max-msgs-per-second` | `TRACES_JAEGER_MAX_MSGS_PER_SECOND` | --- ### DataFusion - [datafusion-num-threads](#datafusion-num-threads) - [datafusion-runtime-type](#datafusion-runtime-type) - [datafusion-runtime-disable-lifo-slot](#datafusion-runtime-disable-lifo-slot) - [datafusion-runtime-event-interval](#datafusion-runtime-event-interval) - [datafusion-runtime-global-queue-interval](#datafusion-runtime-global-queue-interval) - [datafusion-runtime-max-blocking-threads](#datafusion-runtime-max-blocking-threads) - [datafusion-runtime-max-io-events-per-tick](#datafusion-runtime-max-io-events-per-tick) - [datafusion-runtime-thread-keep-alive](#datafusion-runtime-thread-keep-alive) - [datafusion-runtime-thread-priority](#datafusion-runtime-thread-priority) - [datafusion-max-parquet-fanout](#datafusion-max-parquet-fanout) - [datafusion-use-cached-parquet-loader](#datafusion-use-cached-parquet-loader) - [datafusion-config](#datafusion-config) #### datafusion-num-threads Sets the maximum number of DataFusion runtime threads to use. | influxdb3 serve option | Environment variable | | :------------------------- | :--------------------------------- | | `--datafusion-num-threads` | `INFLUXDB3_DATAFUSION_NUM_THREADS` | --- #### datafusion-runtime-type Specifies the DataFusion tokio runtime type. This option supports the following values: - `current-thread` - `multi-thread` _(default)_ - `multi-thread-alt` **Default:** `multi-thread` | influxdb3 serve option | Environment variable | | :-------------------------- | :---------------------------------- | | `--datafusion-runtime-type` | `INFLUXDB3_DATAFUSION_RUNTIME_TYPE` | --- #### datafusion-runtime-disable-lifo-slot Disables the LIFO slot of the DataFusion runtime. This option supports the following values: - `true` - `false` | influxdb3 serve option | Environment variable | | :--------------------------------------- | :----------------------------------------------- | | `--datafusion-runtime-disable-lifo-slot` | `INFLUXDB3_DATAFUSION_RUNTIME_DISABLE_LIFO_SLOT` | --- #### datafusion-runtime-event-interval Sets the number of scheduler ticks after which the scheduler of the DataFusion tokio runtime polls for external events--for example: timers, I/O. | influxdb3 serve option | Environment variable | | :------------------------------------ | :-------------------------------------------- | | `--datafusion-runtime-event-interval` | `INFLUXDB3_DATAFUSION_RUNTIME_EVENT_INTERVAL` | --- #### datafusion-runtime-global-queue-interval Sets the number of scheduler ticks after which the scheduler of the DataFusion runtime polls the global task queue. | influxdb3 serve option | Environment variable | | :------------------------------------------- | :--------------------------------------------------- | | `--datafusion-runtime-global-queue-interval` | `INFLUXDB3_DATAFUSION_RUNTIME_GLOBAL_QUEUE_INTERVAL` | --- #### datafusion-runtime-max-blocking-threads Specifies the limit for additional threads spawned by the DataFusion runtime. | influxdb3 serve option | Environment variable | | :------------------------------------------ | :-------------------------------------------------- | | `--datafusion-runtime-max-blocking-threads` | `INFLUXDB3_DATAFUSION_RUNTIME_MAX_BLOCKING_THREADS` | --- #### datafusion-runtime-max-io-events-per-tick Configures the maximum number of events processed per tick by the tokio DataFusion runtime. | influxdb3 serve option | Environment variable | | :-------------------------------------------- | :---------------------------------------------------- | | `--datafusion-runtime-max-io-events-per-tick` | `INFLUXDB3_DATAFUSION_RUNTIME_MAX_IO_EVENTS_PER_TICK` | --- #### datafusion-runtime-thread-keep-alive Sets a custom timeout for a thread in the blocking pool of the tokio DataFusion runtime. | influxdb3 serve option | Environment variable | | :--------------------------------------- | :----------------------------------------------- | | `--datafusion-runtime-thread-keep-alive` | `INFLUXDB3_DATAFUSION_RUNTIME_THREAD_KEEP_ALIVE` | --- #### datafusion-runtime-thread-priority Sets the thread priority for tokio DataFusion runtime workers. **Default:** `10` | influxdb3 serve option | Environment variable | | :------------------------------------- | :--------------------------------------------- | | `--datafusion-runtime-thread-priority` | `INFLUXDB3_DATAFUSION_RUNTIME_THREAD_PRIORITY` | --- #### datafusion-max-parquet-fanout When multiple parquet files are required in a sorted way (deduplication for example), specifies the maximum fanout. **Default:** `1000` | influxdb3 serve option | Environment variable | | :-------------------------------- | :---------------------------------------- | | `--datafusion-max-parquet-fanout` | `INFLUXDB3_DATAFUSION_MAX_PARQUET_FANOUT` | --- #### datafusion-use-cached-parquet-loader Uses a cached parquet loader when reading parquet files from the object store. | influxdb3 serve option | Environment variable | | :--------------------------------------- | :----------------------------------------------- | | `--datafusion-use-cached-parquet-loader` | `INFLUXDB3_DATAFUSION_USE_CACHED_PARQUET_LOADER` | --- #### datafusion-config Provides custom configuration to DataFusion as a comma-separated list of `key:value` pairs. | influxdb3 serve option | Environment variable | | :--------------------- | :---------------------------- | | `--datafusion-config` | `INFLUXDB3_DATAFUSION_CONFIG` | --- ### HTTP - [max-http-request-size](#max-http-request-size) - [http-bind](#http-bind) #### max-http-request-size Specifies the maximum size of HTTP requests. **Default:** `10485760` | influxdb3 serve option | Environment variable | | :------------------------ | :-------------------------------- | | `--max-http-request-size` | `INFLUXDB3_MAX_HTTP_REQUEST_SIZE` | --- #### http-bind Defines the address on which InfluxDB serves HTTP API requests. **Default:** `0.0.0.0:8181` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------------- | | `--http-bind` | `INFLUXDB3_HTTP_BIND_ADDR` | --- ### Memory - [exec-mem-pool-bytes](#exec-mem-pool-bytes) - [force-snapshot-mem-threshold](#force-snapshot-mem-threshold) #### exec-mem-pool-bytes Specifies the size of memory pool used during query execution. Can be given as absolute value in bytes or as a percentage of the total available memory--for example: `8000000000` or `10%`. {{% show-in "core" %}}**Default:** `8589934592`{{% /show-in %}} {{% show-in "enterprise" %}}**Default:** `20%`{{% /show-in %}} | influxdb3 serve option | Environment variable | | :---------------------- | :------------------------------ | | `--exec-mem-pool-bytes` | `INFLUXDB3_EXEC_MEM_POOL_BYTES` | --- #### force-snapshot-mem-threshold Specifies the threshold for the internal memory buffer. Supports either a percentage (portion of available memory) or absolute value in MB--for example: `70%` or `1000`. {{% show-in "core" %}}**Default:** `70%`{{% /show-in %}} {{% show-in "enterprise" %}}**Default:** `50%`{{% /show-in %}} | influxdb3 serve option | Environment variable | | :------------------------------- | :--------------------------------------- | | `--force-snapshot-mem-threshold` | `INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD` | --- ### Write-Ahead Log (WAL) - [wal-flush-interval](#wal-flush-interval) - [wal-snapshot-size](#wal-snapshot-size) - [wal-max-write-buffer-size](#wal-max-write-buffer-size) - [snapshotted-wal-files-to-keep](#snapshotted-wal-files-to-keep) - [wal-replay-fail-on-error](#wal-replay-fail-on-error) - [wal-replay-concurrency-limit](#wal-replay-concurrency-limit) #### wal-flush-interval Specifies the interval to flush buffered data to a WAL file. Writes that wait for WAL confirmation take up to this interval to complete. Use `s` for seconds or `ms` for milliseconds. For local disks, `100 ms` is recommended. **Default:** `1s` | influxdb3 serve option | Environment variable | | :--------------------- | :----------------------------- | | `--wal-flush-interval` | `INFLUXDB3_WAL_FLUSH_INTERVAL` | --- #### wal-snapshot-size Defines the number of WAL files to attempt to remove in a snapshot. This, multiplied by the interval, determines how often snapshots are taken. **Default:** `600` | influxdb3 serve option | Environment variable | | :--------------------- | :---------------------------- | | `--wal-snapshot-size` | `INFLUXDB3_WAL_SNAPSHOT_SIZE` | --- #### wal-max-write-buffer-size Specifies the maximum number of write requests that can be buffered before a flush must be executed and succeed. **Default:** `100000` | influxdb3 serve option | Environment variable | | :---------------------------- | :------------------------------------ | | `--wal-max-write-buffer-size` | `INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE` | --- #### snapshotted-wal-files-to-keep Specifies the number of snapshotted WAL files to retain in the object store. Flushing the WAL files does not clear the WAL files immediately; they are deleted when the number of snapshotted WAL files exceeds this number. **Default:** `300` | influxdb3 serve option | Environment variable | | :-------------------------------- | :-------------------------------- | | `--snapshotted-wal-files-to-keep` | `INFLUXDB3_NUM_WAL_FILES_TO_KEEP` | --- #### wal-replay-fail-on-error Determines whether WAL replay should fail when encountering errors. **Default:** `false` | influxdb3 serve option | Environment variable | | :--------------------------- | :------------------------------------- | | `--wal-replay-fail-on-error` | `INFLUXDB3_WAL_REPLAY_FAIL_ON_ERROR` | --- #### wal-replay-concurrency-limit Concurrency limit during WAL replay. Setting this number too high can lead to OOM. The default is dynamically determined. **Default:** `max(num_cpus, 10)` | influxdb3 serve option | Environment variable | | :--------------------------------- | :------------------------------------------ | | `--wal-replay-concurrency-limit` | `INFLUXDB3_WAL_REPLAY_CONCURRENCY_LIMIT` | --- ### Compaction {{% show-in "enterprise" %}} - [compaction-row-limit](#compaction-row-limit) - [compaction-max-num-files-per-plan](#compaction-max-num-files-per-plan) - [compaction-gen2-duration](#compaction-gen2-duration) - [compaction-multipliers](#compaction-multipliers) - [compaction-cleanup-wait](#compaction-cleanup-wait) - [compaction-check-interval](#compaction-check-interval) {{% /show-in %}} - [gen1-duration](#gen1-duration) {{% show-in "enterprise" %}} #### compaction-row-limit Specifies the soft limit for the number of rows per file that the compactor writes. The compactor may write more rows than this limit. **Default:** `1000000` | influxdb3 serve option | Environment variable | | :----------------------- | :------------------------------------------ | | `--compaction-row-limit` | `INFLUXDB3_ENTERPRISE_COMPACTION_ROW_LIMIT` | --- #### compaction-max-num-files-per-plan Sets the maximum number of files included in any compaction plan. **Default:** `500` | influxdb3 serve option | Environment variable | | :------------------------------------ | :------------------------------------------------------- | | `--compaction-max-num-files-per-plan` | `INFLUXDB3_ENTERPRISE_COMPACTION_MAX_NUM_FILES_PER_PLAN` | --- #### compaction-gen2-duration Specifies the duration of the first level of compaction (gen2). Later levels of compaction are multiples of this duration. This value should be equal to or greater than the gen1 duration. **Default:** `20m` | influxdb3 serve option | Environment variable | | :--------------------------- | :---------------------------------------------- | | `--compaction-gen2-duration` | `INFLUXDB3_ENTERPRISE_COMPACTION_GEN2_DURATION` | --- #### compaction-multipliers Specifies a comma-separated list of multiples defining the duration of each level of compaction. The number of elements in the list determines the number of compaction levels. The first element specifies the duration of the first level (gen3); subsequent levels are multiples of the previous level. **Default:** `3,4,6,5` | influxdb3 serve option | Environment variable | | :------------------------- | :-------------------------------------------- | | `--compaction-multipliers` | `INFLUXDB3_ENTERPRISE_COMPACTION_MULTIPLIERS` | --- #### compaction-cleanup-wait Specifies the amount of time that the compactor waits after finishing a compaction run to delete files marked as needing deletion during that compaction run. **Default:** `10m` | influxdb3 serve option | Environment variable | | :-------------------------- | :--------------------------------------------- | | `--compaction-cleanup-wait` | `INFLUXDB3_ENTERPRISE_COMPACTION_CLEANUP_WAIT` | --- #### compaction-check-interval Specifies how often the compactor checks for new compaction work to perform. **Default:** `10s` | influxdb3 serve option | Environment variable | | :----------------------------- | :------------------------------------------------ | | `--compaction-check-interval` | `INFLUXDB3_ENTERPRISE_COMPACTION_CHECK_INTERVAL` | --- {{% /show-in %}} #### gen1-duration Specifies the duration that Parquet files are arranged into. Data timestamps land each row into a file of this duration. Supported durations are `1m`, `5m`, and `10m`. These files are known as "generation 1" files{{% show-in "enterprise" %}}, which the compactor can merge into larger generations{{% /show-in %}}{{% show-in "core" %}} that the compactor in InfluxDB 3 Enterprise can merge into larger generations{{% /show-in %}}. **Default:** `10m` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------------ | | `--gen1-duration` | `INFLUXDB3_GEN1_DURATION` | --- ### Caching - [preemptive-cache-age](#preemptive-cache-age) - [parquet-mem-cache-size](#parquet-mem-cache-size) - [parquet-mem-cache-prune-percentage](#parquet-mem-cache-prune-percentage) - [parquet-mem-cache-prune-interval](#parquet-mem-cache-prune-interval) - [parquet-mem-cache-query-path-duration](#parquet-mem-cache-query-path-duration) - [disable-parquet-mem-cache](#disable-parquet-mem-cache) - [table-index-cache-max-entries](#table-index-cache-max-entries) - [table-index-cache-concurrency-limit](#table-index-cache-concurrency-limit) {{% show-in "enterprise" %}} - [last-value-cache-disable-from-history](#last-value-cache-disable-from-history) {{% /show-in %}} - [last-cache-eviction-interval](#last-cache-eviction-interval) {{% show-in "enterprise" %}} - [distinct-value-cache-disable-from-history](#distinct-value-cache-disable-from-history) {{% /show-in %}} - [distinct-cache-eviction-interval](#distinct-cache-eviction-interval) #### preemptive-cache-age Specifies the interval to prefetch into the Parquet cache during compaction. **Default:** `3d` | influxdb3 serve option | Environment variable | | :----------------------- | :------------------------------- | | `--preemptive-cache-age` | `INFLUXDB3_PREEMPTIVE_CACHE_AGE` | --- #### parquet-mem-cache-size Specifies the size of the in-memory Parquet cache{{% show-in "core" %}} in megabytes (MB){{% /show-in %}}{{% show-in "enterprise" %}} in megabytes or percentage of total available memory{{% /show-in %}}. {{% show-in "core" %}}**Default:** `1000`{{% /show-in %}} {{% show-in "enterprise" %}}**Default:** `20%`{{% /show-in %}} | influxdb3 serve option | Environment variable | | :---------------------------- | :---------------------------------- | {{% show-in "core" %}}| `--parquet-mem-cache-size-mb` | `INFLUXDB3_PARQUET_MEM_CACHE_SIZE_MB` |{{% /show-in %}} {{% show-in "enterprise" %}}| `--parquet-mem-cache-size` | `INFLUXDB3_PARQUET_MEM_CACHE_SIZE` |{{% /show-in %}} #### parquet-mem-cache-prune-percentage Specifies the percentage of entries to prune during a prune operation on the in-memory Parquet cache. **Default:** `0.1` | influxdb3 serve option | Environment variable | | :------------------------------------- | :--------------------------------------------- | | `--parquet-mem-cache-prune-percentage` | `INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_PERCENTAGE` | --- #### parquet-mem-cache-prune-interval Sets the interval to check if the in-memory Parquet cache needs to be pruned. **Default:** `1s` | influxdb3 serve option | Environment variable | | :----------------------------------- | :------------------------------------------- | | `--parquet-mem-cache-prune-interval` | `INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_INTERVAL` | --- #### parquet-mem-cache-query-path-duration {{% show-in "enterprise" %}} A [duration](/influxdb3/enterprise/reference/glossary/#duration) that specifies {{% /show-in %}}{{% show-in "core" %}} Specifies {{% /show-in %}} the time window for caching recent Parquet files in memory. Default is `5h`. Only files containing data with a timestamp between `now` and `now - duration` are cached when accessed during queries--for example, with the default `5h` setting: - Current time: `2024-06-10 15:00:00` - Cache window: Last 5 hours (`2024-06-10 10:00:00` to now) If a query requests data from `2024-06-09` (old) and `2024-06-10 14:00` (recent): - **Cached**: Parquet files with data from `2024-06-10 14:00` (within 5-hour window) - **Not cached**: Parquet files with data from `2024-06-09` (outside 5-hour window) | influxdb3 serve option | Environment variable | | :---------------------------- | :------------------------------------ | | `--parquet-mem-cache-query-path-duration` | `INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION` | --- #### disable-parquet-mem-cache Disables the in-memory Parquet cache. By default, the cache is enabled. | influxdb3 serve option | Environment variable | | :---------------------------- | :------------------------------------ | | `--disable-parquet-mem-cache` | `INFLUXDB3_DISABLE_PARQUET_MEM_CACHE` | --- #### table-index-cache-max-entries Specifies the maximum number of entries in the table index cache. **Default:** `1000` | influxdb3 serve option | Environment variable | | :--------------------------------- | :-------------------------------------------- | | `--table-index-cache-max-entries` | `INFLUXDB3_TABLE_INDEX_CACHE_MAX_ENTRIES` | --- #### table-index-cache-concurrency-limit Limits the concurrency level for table index cache operations. **Default:** `8` | influxdb3 serve option | Environment variable | | :---------------------------------------- | :------------------------------------------------- | | `--table-index-cache-concurrency-limit` | `INFLUXDB3_TABLE_INDEX_CACHE_CONCURRENCY_LIMIT` | {{% show-in "enterprise" %}} --- #### last-value-cache-disable-from-history Disables populating the last-N-value cache from historical data. If disabled, the cache is still populated with data from the write-ahead log (WAL). | influxdb3 serve option | Environment variable | | :---------------------------------------- | :---------------------------------------------------------- | | `--last-value-cache-disable-from-history` | `INFLUXDB3_ENTERPRISE_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY`| {{% /show-in %}} --- #### last-cache-eviction-interval Specifies the interval to evict expired entries from the Last-N-Value cache, expressed as a human-readable duration--for example: `20s`, `1m`, `1h`. **Default:** `10s` | influxdb3 serve option | Environment variable | | :------------------------------- | :--------------------------------------- | | `--last-cache-eviction-interval` | `INFLUXDB3_LAST_CACHE_EVICTION_INTERVAL` | {{% show-in "enterprise" %}} --- #### distinct-value-cache-disable-from-history Disables populating the distinct value cache from historical data. If disabled, the cache is still populated with data from the write-ahead log (WAL). | influxdb3 serve option | Environment variable | | :-------------------------------------------- | :-------------------------------------------------------------- | | `--distinct-value-cache-disable-from-history` | `INFLUXDB3_ENTERPRISE_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY`| {{% /show-in %}} --- #### distinct-cache-eviction-interval Specifies the interval to evict expired entries from the distinct value cache, expressed as a human-readable duration--for example: `20s`, `1m`, `1h`. **Default:** `10s` | influxdb3 serve option | Environment variable | | :----------------------------------- | :------------------------------------------- | | `--distinct-cache-eviction-interval` | `INFLUXDB3_DISTINCT_CACHE_EVICTION_INTERVAL` | --- #### query-file-limit Limits the number of Parquet files a query can access. If a query attempts to read more than this limit, {{< product-name >}} returns an error. {{% show-in "core" %}} **Default:** `432` With the default `432` setting and the default [`gen1-duration`](#gen1-duration) setting of 10 minutes, queries can access up to a 72 hours of data, but potentially less depending on whether all data for a given 10 minute block of time was ingested during the same period. You can increase this limit to allow more files to be queried, but be aware of the following side-effects: - Degraded query performance for queries that read more Parquet files - Increased memory usage - Your system potentially killing the `influxdb3` process due to Out-of-Memory (OOM) errors - If using object storage to store data, many GET requests to access the data (as many as 2 per file) > [!Note] > We recommend keeping the default setting and querying smaller time ranges. > If you need to query longer time ranges or faster query performance on any query > that accesses an hour or more of data, [InfluxDB 3 Enterprise](/influxdb3/enterprise/) > optimizes data storage by compacting and rearranging Parquet files to achieve > faster query performance. {{% /show-in %}} | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------------- | | `--query-file-limit` | `INFLUXDB3_QUERY_FILE_LIMIT` | --- ### Processing Engine - [plugin-dir](#plugin-dir) - [virtual-env-location](#virtual-env-location) - [package-manager](#package-manager) #### plugin-dir Specifies the local directory that contains Python plugins and their test files. | influxdb3 serve option | Environment variable | | :--------------------- | :--------------------- | | `--plugin-dir` | `INFLUXDB3_PLUGIN_DIR` | --- #### virtual-env-location Specifies the location of the Python virtual environment that the processing engine uses. | influxdb3 serve option | Environment variable | | :----------------------- | :--------------------- | | `--virtual-env-location` | `VIRTUAL_ENV` | --- #### package-manager Specifies the Python package manager that the processing engine uses. This option supports the following values: - `discover` _(default)_: Automatically discover available package manager - `pip`: Use pip package manager - `uv`: Use uv package manager **Default:** `discover` | influxdb3 serve option | Environment variable | | :--------------------- | :------------------- | | `--package-manager` | `PACKAGE_MANAGER` | {{% show-in "enterprise" %}} --- ### Cluster Management - [replication-interval](#replication-interval) - [catalog-sync-interval](#catalog-sync-interval) - [wait-for-running-ingestor](#wait-for-running-ingestor) #### replication-interval Specifies the interval at which data replication occurs between cluster nodes. **Default:** `250ms` | influxdb3 serve option | Environment variable | | :------------------------- | :------------------------------------------- | | `--replication-interval` | `INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL` | --- #### catalog-sync-interval Defines how often the catalog synchronizes across cluster nodes. **Default:** `10s` | influxdb3 serve option | Environment variable | | :--------------------------- | :------------------------------------------ | | `--catalog-sync-interval` | `INFLUXDB3_ENTERPRISE_CATALOG_SYNC_INTERVAL`| --- #### wait-for-running-ingestor Specifies how long to wait for a running ingestor during startup. **Default:** `10s` | influxdb3 serve option | Environment variable | | :------------------------------- | :------------------------------------------------ | | `--wait-for-running-ingestor` | `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTOR` | --- ### Resource Limits - [num-cores](#num-cores) - [num-database-limit](#num-database-limit) - [num-table-limit](#num-table-limit) - [num-total-columns-per-table-limit](#num-total-columns-per-table-limit) #### num-cores Limits the number of CPU cores that the InfluxDB 3 Enterprise process can use when running on systems where resources are shared. When specified, InfluxDB automatically assigns the number of DataFusion threads and IO threads based on the core count. **Thread assignment logic:** - **1-2 cores**: 1 IO thread, 1 DataFusion thread - **3 cores**: 1 IO thread, 2 DataFusion threads - **4+ cores**: 2 IO threads, (n-2) DataFusion threads **Constraints:** - Must be at least 2 - Cannot exceed the number of cores available on the system - Total thread count from other thread options cannot exceed the `num-cores` value | influxdb3 serve option | Environment variable | | :--------------------- | :-------------------------------- | | `--num-cores` | `INFLUXDB3_ENTERPRISE_NUM_CORES` | --- #### num-database-limit Sets the maximum number of databases that can be created. | influxdb3 serve option | Environment variable | | :------------------------ | :---------------------------------------- | | `--num-database-limit` | `INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT` | --- #### num-table-limit Defines the maximum number of tables that can be created across all databases. | influxdb3 serve option | Environment variable | | :---------------------- | :------------------------------------- | | `--num-table-limit` | `INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT` | --- #### num-total-columns-per-table-limit Sets the maximum number of columns allowed per table. | influxdb3 serve option | Environment variable | | :--------------------------------------- | :---------------------------------------------------------- | | `--num-total-columns-per-table-limit` | `INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT` | {{% /show-in %}} --- ### Data Lifecycle Management - [gen1-lookback-duration](#gen1-lookback-duration) - [retention-check-interval](#retention-check-interval) - [delete-grace-period](#delete-grace-period) - [hard-delete-default-duration](#hard-delete-default-duration) #### gen1-lookback-duration Specifies how far back to look when creating generation 1 Parquet files. **Default:** `24h` | influxdb3 serve option | Environment variable | | :---------------------------- | :-------------------------------------- | | `--gen1-lookback-duration` | `INFLUXDB3_GEN1_LOOKBACK_DURATION` | --- #### retention-check-interval The interval at which retention policies are checked and enforced. Enter as a human-readable time--for example: `30m` or `1h`. **Default:** `30m` | influxdb3 serve option | Environment variable | | :----------------------------- | :--------------------------------------- | | `--retention-check-interval` | `INFLUXDB3_RETENTION_CHECK_INTERVAL` | --- #### delete-grace-period Specifies the grace period before permanently deleting data. **Default:** `24h` | influxdb3 serve option | Environment variable | | :------------------------ | :--------------------------------- | | `--delete-grace-period` | `INFLUXDB3_DELETE_GRACE_PERIOD` | --- #### hard-delete-default-duration Sets the default duration for hard deletion of data. **Default:** `90d` | influxdb3 serve option | Environment variable | | :---------------------------------- | :-------------------------------------------- | | `--hard-delete-default-duration` | `INFLUXDB3_HARD_DELETE_DEFAULT_DURATION` | --- ### Telemetry - [telemetry-disable-upload](#telemetry-disable-upload) - [telemetry-endpoint](#telemetry-endpoint) #### telemetry-disable-upload Disables the upload of telemetry data to InfluxData. **Default:** `false` | influxdb3 serve option | Environment variable | | :---------------------------- | :-------------------------------------- | | `--telemetry-disable-upload` | `INFLUXDB3_TELEMETRY_DISABLE_UPLOAD` | --- #### telemetry-endpoint Specifies the endpoint for telemetry data uploads. | influxdb3 serve option | Environment variable | | :----------------------- | :--------------------------------- | | `--telemetry-endpoint` | `INFLUXDB3_TELEMETRY_ENDPOINT` | --- ### TCP Listeners - [tcp-listener-file-path](#tcp-listener-file-path) - [admin-token-recovery-tcp-listener-file-path](#admin-token-recovery-tcp-listener-file-path) #### tcp-listener-file-path Specifies the file path for the TCP listener configuration. | influxdb3 serve option | Environment variable | | :-------------------------- | :----------------------------------- | | `--tcp-listener-file-path` | `INFLUXDB3_TCP_LISTINER_FILE_PATH` | --- #### admin-token-recovery-tcp-listener-file-path Specifies the TCP listener file path for admin token recovery operations. | influxdb3 serve option | Environment variable | | :---------------------------------------------- | :-------------------------------------------------------- | | `--admin-token-recovery-tcp-listener-file-path` | `INFLUXDB3_ADMIN_TOKEN_RECOVERY_TCP_LISTENER_FILE_PATH` |