---
title: InfluxDB 3 Enterprise configuration options
description: InfluxDB 3 Enterprise lets you customize your server configuration by using influxdb3 serve command options or by setting environment variables.
url: https://docs.influxdata.com/influxdb3/enterprise/reference/config-options/
estimated_tokens: 40367
product: InfluxDB 3 Enterprise
version: enterprise
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/enterprise/reference/config-options/
date: '2026-07-11T10:53:18+00:00'
lastmod: '2026-07-11T10:53:18+00:00'
---

InfluxDB 3 Enterprise lets you customize your configuration by using`influxdb3` command options or by setting environment variables.

## Configure your server

Pass configuration options using either command options or environment variables.
Command options take precedence over environment variables.

### TOML configuration files

DEB and RPM installs include a TOML configuration file at`/etc/influxdb3/influxdb3-enterprise.conf`.
The systemd launcher reads this file and converts each entry to an`INFLUXDB3_*` environment variable (the pattern is `INFLUXDB3_<KEY>`with hyphens replaced by underscores and uppercased) before invoking`influxdb3 serve`.

`influxdb3 serve` does not yet natively read TOML; the file’s effect is
applied through the environment variables the launcher sets.
CLI flags passed to `influxdb3 serve` still override values defined in
the TOML file because they override the environment variables that
file becomes.

For day-to-day systemd operation — including the edit-and-restart
workflow for applying changes — see[Run as a system service (Linux)](/influxdb3/enterprise/install/#run-as-a-system-service-linux).

### Global vs serve-specific options

Some options are **global** (specified before the command) while others are **serve-specific** (specified after `serve`):

* **Global options**: Apply to the `influxdb3` CLI itself (for example, `--num-io-threads`)
* **Serve options**: Apply only to the `serve` command (for example, `--node-id`, `--object-store`, `--verbose`)

#### Example command with global and serve-specific options

```sh
influxdb3 --num-io-threads=4 serve \
  --node-id node0 \
  --cluster-id cluster0 \
  --license-email example@email.com \
  --object-store file \
  --data-dir ~/.influxdb3 \
  --verbose \
  --log-filter info
```

##### Example environment variables

```sh
export INFLUXDB3_LICENSE_EMAIL=example@email.com
export INFLUXDB3_CLUSTER_ID=cluster0

export INFLUXDB3_NODE_ID=my-node
export INFLUXDB3_OBJECT_STORE=file
export INFLUXDB3_DATA_DIR=~/.influxdb3
export INFLUXDB3_LOG_FILTER=info

influxdb3 serve
```

### Deprecated names

Many options and environment variables were renamed in InfluxDB 3 Enterprise
3.11.0, with the old names kept as deprecated aliases.
Option tables on this page list the pre-3.11 names where they exist.
For the full old-to-new tables and compatibility rules, see[Configuration name changes in 3.11](#name-changes-in-3-11).

### Size option values

Options that accept a size value require an explicit unit:

* Append a unit suffix `b`, `kb`, `mb`, `gb`, or `tb`(case-insensitive)—for example, `10mb` or `8GB`.
* Where noted, specify a percentage of total available memory—for
  example, `20%`.

Bare numbers are rejected to avoid a silent change in meaning—historically,
a bare number meant megabytes for some options and bytes for others.

For compatibility with pre-3.11 configurations:

* The deprecated `--parquet-mem-cache-size`, `--exec-mem-pool-bytes`, and`--force-snapshot-mem-threshold` options (and their environment variables)
  accept their pre-3.11 value format—a bare number means megabytes—with a
  startup deprecation warning.
* `--max-http-request-size` (name unchanged) accepts a bare number as bytes,
  its pre-3.11 meaning, with a startup warning.

## Global configuration options

The following options apply to the `influxdb3` CLI globally and must be specified **before** any subcommand (for example, `serve`):

### num-io-threads

Sets the number of threads allocated to the IO runtime thread pool. IO threads handle HTTP request serving, line protocol parsing, and file operations.

> [!Important]
> `--num-io-threads` is a **global option** that must be specified before the `serve` command.

**Default:** `2` on Parquet-engine clusters; the licensed core count on
clusters running the upgraded storage engine (the default for new clusters).
Values above the licensed core count are capped with a startup warning.

```bash
# Set IO threads (global option before serve)
influxdb3 --num-io-threads=8 serve --node-id=node0 --object-store=file
```

For detailed information about thread allocation, see the [Resource Limits](#resource-limits) section.

| influxdb3 option |   Environment variable   |
|------------------|--------------------------|
|`--num-io-threads`|`INFLUXDB3_NUM_IO_THREADS`|

## Server configuration options

> [!Note]
> #### Storage engines and option visibility
>
> New InfluxDB 3 Enterprise clusters default to the upgraded storage engine.
> Clusters that started on 3.10 or earlier keep the Parquet engine until you
> run the storage engine upgrade by restarting the cluster with[`--upgrade-pacha-tree`](#upgrade-pacha-tree).
>
> The default `influxdb3 serve --help` output shows a single unified
> storage-engine section.
> Parquet-specific tuning options (for example, `compaction-*`, `gen1-*`,`wal-files-per-snapshot`, and the `num-*` limits) no longer appear in the
> default help output but remain functional for clusters that have not run
> the storage engine upgrade.
> Use `influxdb3 serve --help-all` to list every option.
>
> If you explicitly set an option (on the command line or through an
> environment variable) that has no effect on the active storage engine,
> the server logs one aggregated startup warning naming the ignored options.
> After the storage engine upgrade completes, this includes long-standing
> Parquet options that no longer apply. The warnings appear on the next
> server start following completion of the upgrade–use them as a checklist
> for cleaning up your configuration.

* [General](#general)

  * [Licensing](#licensing)

* [Security](#security)

* [AWS](#aws)

* [Google Cloud Service](#google-cloud-service)

* [Microsoft Azure](#microsoft-azure)

* [Object Storage](#object-storage)

* [Logs](#logs)

* [Traces](#traces)

* [DataFusion](#datafusion)

* [HTTP](#http)

* [Memory](#memory)

* [Write-Ahead Log (WAL)](#write-ahead-log-wal)

* [Compaction](#compaction)

* [Caching](#caching)

* [Processing Engine](#processing-engine)

* [Bulk Import](#bulk-import)

* [Cluster Management](#cluster-management)

* [Web UI](#web-ui)

* [Resource Limits](#resource-limits)

* [Data Lifecycle Management](#data-lifecycle-management)

* [Telemetry](#telemetry)

* [TCP Listeners](#tcp-listeners)

### General

* [cluster-id](#cluster-id)

* [data-dir](#data-dir)

* [mode](#mode)

* [node-id](#node-id)

* [node-id-from-env](#node-id-from-env)

* [object-store](#object-store)

* [query-file-limit](#query-file-limit)

* [upgrade-pacha-tree](#upgrade-pacha-tree)

#### 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 variables                                         |
|----------------------|-------------------------------------------------------------------------------------------------------|
|    `--cluster-id`    |`INFLUXDB3_CLUSTER_ID`  <br/>`INFLUXDB3_ENTERPRISE_CLUSTER_ID` ([pre-3.11 name](#name-changes-in-3-11))|

#### data-dir

For the `file` object store, defines the location InfluxDB 3 Enterprise uses to store files locally.
Required when using the `file` [object store](#object-store).

|influxdb3 serve option|                                Environment variables                                 |
|----------------------|--------------------------------------------------------------------------------------|
|     `--data-dir`     |`INFLUXDB3_DATA_DIR`  <br/>`INFLUXDB3_DB_DIR` ([pre-3.11 name](#name-changes-in-3-11))|

#### mode

Sets the mode to start the server in, allowing you to create specialized nodes in a distributed cluster.

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`: Activates the [Processing Engine](/influxdb3/enterprise/reference/processing-engine/) so the node can execute trigger plugins. `process` has no API surface of its own — it doesn’t accept writes or serve queries. Setting [`--plugin-dir`](#plugin-dir) implicitly adds `process` mode regardless of `--mode`. Conversely, `--mode=process` requires `--plugin-dir`. In a multi-node cluster, combine `process` with another mode (typically `query`) so plugins can call `influxdb3_local.query()` locally.
* `webui` *(3.11+)*: Serves the [InfluxDB 3 Explorer](/influxdb3/enterprise/admin/explorer-ui/) web UI from the server process as a WebAssembly (WASM) guest. `all` doesn’t include `webui`, so name `webui` explicitly–for example, `--mode all,webui`. `webui` mode requires [`--webui-session-secret`](#webui-session-secret). Set [`--plugin-dir`](#plugin-dir) as well to use the plugin features in Explorer.

You can specify multiple modes using a comma-delimited list (for example, `ingest,query`).

**Default:** `all`

> [!Important]
> **Thread allocation for different modes:**
>
> * **Ingest mode**: Benefits from additional IO threads for line protocol parsing. For high-throughput
> scenarios with multiple concurrent writers, consider increasing [`--num-io-threads`](#num-io-threads) (global option)
> to 8-16+ to optimize performance. DataFusion threads are still needed for snapshot operations.
>
> * **Query mode**: Benefits from maximizing DataFusion threads. Use most available cores for DataFusion
> with minimal IO threads (2-4).
>
> * **Compact mode**: Primarily uses DataFusion threads for sort/dedupe operations.
>
> * **All mode**: Requires balanced thread allocation based on your workload mix.

**Example configurations:**

```bash
# High-throughput ingest node (32 cores)
influxdb3 --num-io-threads=12 serve --mode=ingest --datafusion-num-threads=20

# Query-optimized node (32 cores)
influxdb3 --num-io-threads=4 serve --mode=query --datafusion-num-threads=28

# Balanced all-in-one (32 cores)
influxdb3 --num-io-threads=6 serve --mode=all --datafusion-num-threads=26
```

|influxdb3 serve option|                                   Environment variables                                   |
|----------------------|-------------------------------------------------------------------------------------------|
|       `--mode`       |`INFLUXDB3_MODE`  <br/>`INFLUXDB3_ENTERPRISE_MODE` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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 variables                                        |
|----------------------|-----------------------------------------------------------------------------------------------------|
|     `--node-id`      |`INFLUXDB3_NODE_ID`  <br/>`INFLUXDB3_NODE_IDENTIFIER_PREFIX` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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 variables                                              |
|----------------------|----------------------------------------------------------------------------------------------------------------|
| `--node-id-from-env` |`INFLUXDB3_NODE_ID_FROM_ENV`  <br/>`INFLUXDB3_NODE_IDENTIFIER_FROM_ENV` ([pre-3.11 name](#name-changes-in-3-11))|

##### 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
```

#### 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`|

#### upgrade-pacha-tree

Migrates the cluster’s existing Parquet data to the upgraded storage engine.

New clusters default to the upgraded storage engine.
Clusters that started on 3.10 or earlier keep the Parquet engine until you run
the storage engine upgrade by restarting the cluster with`--upgrade-pacha-tree`.
New clusters do not need this flag.
For the upgrade procedure, see[Upgrade from Parquet](/influxdb3/enterprise/reference/internals/storage-engine/#upgrade-from-parquet).

**Default:** `false`

> [!Note]
> `--use-pacha-tree` (environment variable `INFLUXDB3_USE_PACHA_TREE`; legacy`INFLUXDB3_ENTERPRISE_USE_PACHA_TREE`) is deprecated.
> It is still accepted and keeps its previous behavior—on an existing Parquet
> cluster it starts the same migration as `--upgrade-pacha-tree`—but the
> server logs a deprecation warning at startup.

|influxdb3 serve option|     Environment variable     |
|----------------------|------------------------------|
|`--upgrade-pacha-tree`|`INFLUXDB3_UPGRADE_PACHA_TREE`|

### Licensing

#### license-email

Specifies the email address to associate with your InfluxDB 3 Enterprise 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 variables                                            |
|----------------------|-------------------------------------------------------------------------------------------------------------|
|  `--license-email`   |`INFLUXDB3_LICENSE_EMAIL`  <br/>`INFLUXDB3_ENTERPRISE_LICENSE_EMAIL` ([pre-3.11 name](#name-changes-in-3-11))|

#### license-file

Specifies the path to a license file for InfluxDB 3 Enterprise. 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 variables                                           |
|----------------------|-----------------------------------------------------------------------------------------------------------|
|   `--license-file`   |`INFLUXDB3_LICENSE_FILE`  <br/>`INFLUXDB3_ENTERPRISE_LICENSE_FILE` ([pre-3.11 name](#name-changes-in-3-11))|

#### license-type

Specifies the type of InfluxDB 3 Enterprise license to use and bypasses the
interactive license prompt. Provide one of the following license types:

* `home`
* `trial`
* `commercial`

|influxdb3 serve option|                                           Environment variables                                           |
|----------------------|-----------------------------------------------------------------------------------------------------------|
|   `--license-type`   |`INFLUXDB3_LICENSE_TYPE`  <br/>`INFLUXDB3_ENTERPRISE_LICENSE_TYPE` ([pre-3.11 name](#name-changes-in-3-11))|

### 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)
  * [permission-tokens-file](#permission-tokens-file)

* [user-auth-type](#user-auth-type)
* [without-user-auth](#without-user-auth)
* [jwt-key-id](#jwt-key-id)
* [jwt-private-key](#jwt-private-key)
* [jwt-issuer](#jwt-issuer)
* [jwt-default-ttl-seconds](#jwt-default-ttl-seconds)
* [oauth-issuer](#oauth-issuer)
* [oauth-audience](#oauth-audience)
* [oauth-client-id](#oauth-client-id)
* [oauth-scopes](#oauth-scopes)
* [rbac-authoring-disabled](#rbac-authoring-disabled)

#### 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 variables                                         |
|----------------------|------------------------------------------------------------------------------------------------------|
|   `--without-auth`   |`INFLUXDB3_WITHOUT_AUTH`  <br/>`INFLUXDB3_START_WITHOUT_AUTH` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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_ADDR`|

##### 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
influxdb3 create token --admin \
  --name "example-admin-token" \
  --expiry 1d \
  --offline \
  --output-file ./path/to/admin-token.json
```

[](#view-example-offline-admin-token-file)

View example offline admin token file

```json
{
  "token": "apiv3_0XXXX-xxxXxXxxxXX_OxxxX...",
  "name": "example-admin-token",
  "expiry_millis": 1756400061529
}
```

##### Example usage

```bash
# Generate an admin token offline
influxdb3 create token \
  --admin \
  --name "example-admin-token" \
  --expiry 1d \
  --offline \
  --output-file ./path/to/admin-token.json

# Start InfluxDB 3 Enterprise using the generated token
influxdb3 serve --admin-token-file ./path/to/admin-token.json
```

#### 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
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
```

[](#view-example-offline-permission-tokens-file)

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"
      ]
    }
  ]
}
```

> [!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
# Generate an 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 InfluxDB 3 Enterprise using the generated token
influxdb3 serve --permission-tokens-file ./path/to/tokens.json
```

#### user-auth-type

Specifies which user authentication methods InfluxDB 3 Enterprise enables, as
a comma-separated list of `basic` (username and password) and/or `oauth`, or`none` to disable user authentication.`none` can’t be combined with other values.[`--without-auth`](#without-auth) overrides this option and disables all
authentication.

This option supports the following values:

* `none` *(default)*: Disable user authentication.
* `basic`: Enable username and password authentication.
  Requires [`--jwt-key-id`](#jwt-key-id) and[`--jwt-private-key`](#jwt-private-key).
* `oauth`: Enable OAuth authentication.
  Requires [`--oauth-issuer`](#oauth-issuer) and[`--oauth-audience`](#oauth-audience).

**Default:** `none`

|influxdb3 serve option|   Environment variable   |
|----------------------|--------------------------|
|  `--user-auth-type`  |`INFLUXDB3_USER_AUTH_TYPE`|

#### without-user-auth

Deprecated. When set, overrides [`--user-auth-type`](#user-auth-type):`true` disables user authentication (the same as `--user-auth-type none`),
and `false` enables both `basic` and `oauth` user authentication.
The server logs a deprecation warning when this option is set.

> [!Warning]
> #### Deprecated
>
> `--without-user-auth` is deprecated.
> Use [`--user-auth-type`](#user-auth-type) instead.

**Default:** not set (`--user-auth-type` applies)

|influxdb3 serve option|    Environment variable     |
|----------------------|-----------------------------|
|`--without-user-auth` |`INFLUXDB3_WITHOUT_USER_AUTH`|

#### jwt-key-id

RSA key ID used for signing JWTs for user authentication.
Required together with [jwt-private-key](#jwt-private-key) to enable JWT authentication.

|influxdb3 serve option| Environment variable |
|----------------------|----------------------|
|    `--jwt-key-id`    |`INFLUXDB3_JWT_KEY_ID`|

#### jwt-private-key

RSA private key (PEM) used for signing JWTs for user authentication.
Required together with [jwt-key-id](#jwt-key-id) to enable JWT authentication.

|influxdb3 serve option|   Environment variable    |
|----------------------|---------------------------|
| `--jwt-private-key`  |`INFLUXDB3_JWT_PRIVATE_KEY`|

#### jwt-issuer

Issuer claim for user authentication JWTs.

**Default:** `influxdb3-enterprise`

|influxdb3 serve option| Environment variable |
|----------------------|----------------------|
|    `--jwt-issuer`    |`INFLUXDB3_JWT_ISSUER`|

#### jwt-default-ttl-seconds

Default TTL (in seconds) for user authentication JWTs.

|  influxdb3 serve option   |       Environment variable        |
|---------------------------|-----------------------------------|
|`--jwt-default-ttl-seconds`|`INFLUXDB3_JWT_DEFAULT_TTL_SECONDS`|

#### oauth-issuer

OAuth issuer URL for validating OAuth tokens.
Required together with [oauth-audience](#oauth-audience) to enable OAuth authentication.

|influxdb3 serve option|  Environment variable  |
|----------------------|------------------------|
|   `--oauth-issuer`   |`INFLUXDB3_OAUTH_ISSUER`|

#### oauth-audience

OAuth audience for validating OAuth tokens.
Required together with [oauth-issuer](#oauth-issuer) to enable OAuth authentication.

|influxdb3 serve option|   Environment variable   |
|----------------------|--------------------------|
|  `--oauth-audience`  |`INFLUXDB3_OAUTH_AUDIENCE`|

#### oauth-client-id

OAuth client ID for the device-code login flow.
Required to enable `influxdb3 auth login --oauth`.

|influxdb3 serve option|   Environment variable    |
|----------------------|---------------------------|
| `--oauth-client-id`  |`INFLUXDB3_OAUTH_CLIENT_ID`|

#### oauth-scopes

OAuth scopes to request during device-code login (comma-separated).

**Default:** `openid,offline_access`

|influxdb3 serve option|  Environment variable  |
|----------------------|------------------------|
|   `--oauth-scopes`   |`INFLUXDB3_OAUTH_SCOPES`|

#### rbac-authoring-disabled

Disables RBAC authoring (creating or modifying custom roles).
Accepts `true` or `false`.

|  influxdb3 serve option   |Environment variable|
|---------------------------|--------------------|
|`--rbac-authoring-disabled`|                    |

### 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
{
  "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-request-timeout](#object-store-request-timeout)
* [object-store-max-retries](#object-store-max-retries)
* [object-store-retry-timeout](#object-store-retry-timeout)
* [object-store-tls-allow-insecure](#object-store-tls-allow-insecure)
* [object-store-tls-ca](#object-store-tls-ca)

#### 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 variables                                                             |
|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-connection-limit`|`INFLUXDB3_OBJECT_STORE_CONNECTION_LIMIT` (preferred)  <br/>`OBJECT_STORE_CONNECTION_LIMIT` (deprecated; supported for backward compatibility)|

#### object-store-http2-only

Forces HTTP/2 connections to network-based object stores.

|  influxdb3 serve option   |                                                      Environment variables                                                       |
|---------------------------|----------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-http2-only`|`INFLUXDB3_OBJECT_STORE_HTTP2_ONLY` (preferred)  <br/>`OBJECT_STORE_HTTP2_ONLY` (deprecated; supported for backward compatibility)|

#### object-store-http2-max-frame-size

Sets the maximum frame size (in bytes/octets) for HTTP/2 connections.

|       influxdb3 serve option        |                                                                Environment variables                                                                 |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-http2-max-frame-size`|`INFLUXDB3_OBJECT_STORE_HTTP2_MAX_FRAME_SIZE` (preferred)  <br/>`OBJECT_STORE_HTTP2_MAX_FRAME_SIZE` (deprecated; supported for backward compatibility)|

#### object-store-request-timeout

Sets the HTTP request timeout for object store requests.

**Default:** `30s`

|     influxdb3 serve option     |                                                           Environment variables                                                            |
|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-request-timeout`|`INFLUXDB3_OBJECT_STORE_REQUEST_TIMEOUT` (preferred)  <br/>`OBJECT_STORE_REQUEST_TIMEOUT` (deprecated; supported for backward compatibility)|

#### object-store-max-retries

Defines the maximum number of times to retry a request.

|   influxdb3 serve option   |                                                       Environment variables                                                        |
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-max-retries`|`INFLUXDB3_OBJECT_STORE_MAX_RETRIES` (preferred)  <br/>`OBJECT_STORE_MAX_RETRIES` (deprecated; supported for backward compatibility)|

#### 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 variables                                                          |
|------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-retry-timeout`|`INFLUXDB3_OBJECT_STORE_RETRY_TIMEOUT` (preferred)  <br/>`OBJECT_STORE_RETRY_TIMEOUT` (deprecated; supported for backward compatibility)|

#### object-store-tls-allow-insecure

Allows invalid TLS certificates when connecting to object storage.

This disables TLS certificate verification and should only be used for testing.

|      influxdb3 serve option       |                                                              Environment variables                                                               |
|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|`--object-store-tls-allow-insecure`|`INFLUXDB3_OBJECT_STORE_TLS_ALLOW_INSECURE` (preferred)  <br/>`OBJECT_STORE_TLS_ALLOW_INSECURE` (deprecated; supported for backward compatibility)|

#### object-store-tls-ca

Specifies the path to a custom CA certificate file (PEM format) for verifying
object store connections. Use this when your object store uses a certificate
signed by a private CA.

|influxdb3 serve option |                                                  Environment variables                                                   |
|-----------------------|--------------------------------------------------------------------------------------------------------------------------|
|`--object-store-tls-ca`|`INFLUXDB3_OBJECT_STORE_TLS_CA` (preferred)  <br/>`OBJECT_STORE_TLS_CA` (deprecated; supported for backward compatibility)|

### Logs

* [log-filter](#log-filter)
* [log-destination](#log-destination)
* [log-format](#log-format)
* [query-log-max-entries](#query-log-max-entries) (`--query-log-size` before 3.11)

#### log-filter

Sets the filter directive for logs. Use this option to control the verbosity of
server logs globally or for specific components.

##### Log levels

The following log levels are available (from least to most verbose):

| Level |                                    Description                                    |
|-------|-----------------------------------------------------------------------------------|
|`error`|                                    Only errors                                    |
|`warn` |                                Warnings and errors                                |
|`info` |             Informational messages, warnings, and errors *(default)*              |
|`debug`|           Debug information for troubleshooting, plus all above levels            |
|`trace`|Very detailed tracing information, plus all above levels (produces high log volume)|

##### Basic usage

To set the log level globally, pass one of the log levels:

```sh
influxdb3 serve --log-filter debug
```

##### Targeted filtering

Globally enabling `debug` or `trace` produces a high volume of log output.
For more targeted debugging, you can set different log levels for specific
components using the format `<global_level>,<component>=<level>`.

###### Debug write buffer operations

```sh
influxdb3 serve --log-filter info,influxdb3_write_buffer=debug
```

###### Trace WAL operations

```sh
influxdb3 serve --log-filter info,influxdb3_wal=trace
```

###### Multiple targeted filters

```sh
influxdb3 serve --log-filter info,influxdb3_write_buffer=debug,influxdb3_wal=debug
```

###### Debug Enterprise storage engine operations

```sh
influxdb3 serve --log-filter info,influxdb3_enterprise=debug
```

##### Common component names

The following are common component names you can use for targeted filtering:

|       Component        |         Description         |
|------------------------|-----------------------------|
|`influxdb3_write_buffer`|   Write buffer operations   |
|    `influxdb3_wal`     | Write-ahead log operations  |
|  `influxdb3_catalog`   |Catalog and schema operations|
|   `influxdb3_cache`    |     Caching operations      |

|      Component       |        Description         |
|----------------------|----------------------------|
|`influxdb3_enterprise`|Enterprise-specific features|

> [!Note]
> Targeted filtering requires knowledge of the codebase component names.
> The component names correspond to Rust package names in the InfluxDB 3 source
> code. Use `debug` or `trace` sparingly on specific components to avoid
> excessive log output.

|influxdb3 serve option|                                         Environment variables                                          |
|----------------------|--------------------------------------------------------------------------------------------------------|
|    `--log-filter`    |`INFLUXDB3_LOG_FILTER` (preferred)  <br/>`LOG_FILTER` (deprecated; supported for backward compatibility)|

#### log-destination

Specifies the destination for logs.

This option supports the following values:

* `stdout` *(default)*
* `stderr`

**Default:** `stdout`

|influxdb3 serve option|                                              Environment variables                                               |
|----------------------|------------------------------------------------------------------------------------------------------------------|
| `--log-destination`  |`INFLUXDB3_LOG_DESTINATION` (preferred)  <br/>`LOG_DESTINATION` (deprecated; supported for backward compatibility)|

#### log-format

Defines the message format for logs.

This option supports the following values:

* `full` *(default)*

**Default:** `full`

|influxdb3 serve option|                                         Environment variables                                          |
|----------------------|--------------------------------------------------------------------------------------------------------|
|    `--log-format`    |`INFLUXDB3_LOG_FORMAT` (preferred)  <br/>`LOG_FORMAT` (deprecated; supported for backward compatibility)|

#### query-log-max-entries

Defines the maximum number of entries in 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`

> [!Note]
> `--query-log-max-entries` was [renamed in 3.11](#name-changes-in-3-11)from `--query-log-size`.
> The legacy option and environment variable names are deprecated aliases.

|                      influxdb3 serve option                      |                                           Environment variables                                           |
|------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
|`--query-log-max-entries`  <br/>`--query-log-size` (pre-3.11 name)|`INFLUXDB3_QUERY_LOG_MAX_ENTRIES`  <br/>`INFLUXDB3_QUERY_LOG_SIZE` ([pre-3.11 name](#name-changes-in-3-11))|

### 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 variables                                               |
|----------------------|------------------------------------------------------------------------------------------------------------------|
| `--traces-exporter`  |`INFLUXDB3_TRACES_EXPORTER` (preferred)  <br/>`TRACES_EXPORTER` (deprecated; supported for backward compatibility)|

#### traces-exporter-jaeger-agent-host

Specifies the Jaeger agent network hostname for tracing.

**Default:** `0.0.0.0`

|       influxdb3 serve option        |                                                                Environment variables                                                                 |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-exporter-jaeger-agent-host`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_HOST` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_AGENT_HOST` (deprecated; supported for backward compatibility)|

#### traces-exporter-jaeger-agent-port

Defines the Jaeger agent network port for tracing.

**Default:** `6831`

|       influxdb3 serve option        |                                                                Environment variables                                                                 |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-exporter-jaeger-agent-port`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_PORT` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_AGENT_PORT` (deprecated; supported for backward compatibility)|

#### traces-exporter-jaeger-service-name

Sets the Jaeger service name for tracing.

**Default:** `iox-conductor`

|        influxdb3 serve option         |                                                                  Environment variables                                                                   |
|---------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-exporter-jaeger-service-name`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_SERVICE_NAME` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_SERVICE_NAME` (deprecated; supported for backward compatibility)|

#### traces-exporter-jaeger-trace-context-header-name

Specifies the header name used for passing trace context.

**Default:** `uber-trace-id`

|               influxdb3 serve option               |                                                                               Environment variables                                                                                |
|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-exporter-jaeger-trace-context-header-name`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME` (deprecated; supported for backward compatibility)|

#### traces-jaeger-debug-name

Specifies the header name used for force sampling in tracing.

**Default:** `jaeger-debug-id`

|   influxdb3 serve option   |                                                                Environment variables                                                                 |
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-jaeger-debug-name`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_DEBUG_NAME` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_DEBUG_NAME` (deprecated; supported for backward compatibility)|

#### traces-jaeger-tags

Defines a set of `key=value` pairs to annotate tracing spans with.

|influxdb3 serve option|                                                          Environment variables                                                           |
|----------------------|------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-jaeger-tags`|`INFLUXDB3_TRACES_EXPORTER_JAEGER_TAGS` (preferred)  <br/>`TRACES_EXPORTER_JAEGER_TAGS` (deprecated; supported for backward compatibility)|

#### 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 variables                                                                 |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--traces-jaeger-max-msgs-per-second`|`INFLUXDB3_TRACES_JAEGER_MAX_MSGS_PER_SECOND` (preferred)  <br/>`TRACES_JAEGER_MAX_MSGS_PER_SECOND` (deprecated; supported for backward compatibility)|

### DataFusion

* [datafusion-num-threads](#datafusion-num-threads)
* [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-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.
Prefer a [unit suffix](#size-option-values)—for example, `10mb`.
A bare number is accepted as bytes (its pre-3.11 meaning) with a startup
warning.

**Default:** `10mb`

| 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-size](#exec-mem-pool-size) (`--exec-mem-pool-bytes` before 3.11)
* [force-snapshot-mem-size](#force-snapshot-mem-size) (`--force-snapshot-mem-threshold` before 3.11)
* [force-snapshot-max-age](#force-snapshot-max-age)

#### exec-mem-pool-size

Specifies the size of the memory pool used for query processing and data operations.
This memory pool is used when InfluxDB 3 Enterprise processes queries and performs
internal data management tasks.
Provide a value with a [unit suffix](#size-option-values) or as a percentage
of the total available memory—for example: `8gb` or `10%`.

**Default:** `20%`

> [!Note]
> `--exec-mem-pool-size` was [renamed in 3.11](#name-changes-in-3-11)from `--exec-mem-pool-bytes`.
> The legacy option and environment variable names are still
> accepted–including the pre-3.11 bare-number format, meaning
> megabytes–with a startup deprecation warning.

|                       influxdb3 serve option                       |                                            Environment variables                                            |
|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|`--exec-mem-pool-size`  <br/>`--exec-mem-pool-bytes` (pre-3.11 name)|`INFLUXDB3_EXEC_MEM_POOL_SIZE`  <br/>`INFLUXDB3_EXEC_MEM_POOL_BYTES` ([pre-3.11 name](#name-changes-in-3-11))|

#### force-snapshot-mem-size

Specifies the threshold for the internal memory buffer. Supports either a
percentage (portion of available memory) or a value with a[unit suffix](#size-option-values)—for example: `70%` or `1000mb`.

**Default:** `50%`

> [!Note]
> `--force-snapshot-mem-size` was [renamed in 3.11](#name-changes-in-3-11)from `--force-snapshot-mem-threshold`.
> The legacy option and environment variable names are still
> accepted–including the pre-3.11 bare-number format, meaning
> megabytes–with a startup deprecation warning.

|                              influxdb3 serve option                              |                                                   Environment variables                                                   |
|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
|`--force-snapshot-mem-size`  <br/>`--force-snapshot-mem-threshold` (pre-3.11 name)|`INFLUXDB3_FORCE_SNAPSHOT_MEM_SIZE`  <br/>`INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD` ([pre-3.11 name](#name-changes-in-3-11))|

#### force-snapshot-max-age

Specifies how long WAL data can wait for a snapshot.
When the oldest WAL data that isn’t in a snapshot reaches this age, InfluxDB
forces a snapshot, regardless of how many WAL files have accumulated.
WAL data replayed after a restart ages from the time it’s replayed.
InfluxDB checks the age every 10 seconds.

Snapshots otherwise trigger on the WAL file count or on[force-snapshot-mem-size](#force-snapshot-mem-size), so a node that receives
few or no writes can hold hours of data in memory and replay it all on
restart.
This option bounds that wait.

This option applies to the Parquet engine only (clusters that started on 3.10
or earlier that have not run the[storage engine upgrade](#upgrade-pacha-tree)).

**Default:** `1h`

|  influxdb3 serve option  |       Environment variable       |
|--------------------------|----------------------------------|
|`--force-snapshot-max-age`|`INFLUXDB3_FORCE_SNAPSHOT_MAX_AGE`|

### Write-Ahead Log (WAL)

* [checkpoint-interval](#checkpoint-interval)

* [wal-flush-interval](#wal-flush-interval)

* [wal-files-per-snapshot](#wal-files-per-snapshot) (`--wal-snapshot-size` before 3.11)

* [wal-max-buffered-writes](#wal-max-buffered-writes) (`--wal-max-write-buffer-size` before 3.11)

* [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)

* [write-timestamp-max-past](#write-timestamp-max-past)

* [write-timestamp-max-future](#write-timestamp-max-future)

> [!Note]
> `wal-files-per-snapshot`, `wal-max-buffered-writes`, and`snapshotted-wal-files-to-keep` apply to the Parquet engine only
> (clusters that started on 3.10 or earlier that have not run the[storage engine upgrade](#upgrade-pacha-tree)).`wal-flush-interval` applies to both engines.

#### checkpoint-interval

Sets the interval for consolidating[snapshots](/influxdb3/enterprise/admin/backup-restore/#file-structure) into
monthly checkpoints for faster server startup.
Snapshots accumulate in object storage over time and are not automatically deleted.

Without checkpointing, the server loads individual snapshots on startup.
The number of snapshots is determined by the lookback window
([`gen1-lookback-duration`](#gen1-lookback-duration), default 1 month)
divided by [`gen1-duration`](#gen1-duration) (default 10 minutes),
with a minimum of 100.
With default settings, that can be up to \~4,320 snapshots.

With checkpointing enabled, the server periodically consolidates snapshot
metadata into checkpoints in object storage.
On startup, the server loads one to two checkpoints per calendar month,
then loads only snapshots created since the last checkpoint.
Enabling checkpointing does not delete old snapshots.

Up to 10 checkpoints load concurrently during startup.
The server retains two checkpoints per calendar month and handles month rollovers automatically.

Accepts a [duration](/influxdb3/enterprise/reference/glossary/#duration) value–for example: `1h`, `30m`, `10m`.

**Default:** *Not set (disabled)*

|influxdb3 serve option |     Environment variable      |
|-----------------------|-------------------------------|
|`--checkpoint-interval`|`INFLUXDB3_CHECKPOINT_INTERVAL`|

##### Example

```bash
influxdb3 serve --checkpoint-interval 1h
```

#### 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-files-per-snapshot

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`

> [!Note]
> `--wal-files-per-snapshot` was [renamed in 3.11](#name-changes-in-3-11)from `--wal-snapshot-size`.
> The legacy option and environment variable names are deprecated aliases.

|                        influxdb3 serve option                        |                                             Environment variables                                             |
|----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
|`--wal-files-per-snapshot`  <br/>`--wal-snapshot-size` (pre-3.11 name)|`INFLUXDB3_WAL_FILES_PER_SNAPSHOT`  <br/>`INFLUXDB3_WAL_SNAPSHOT_SIZE` ([pre-3.11 name](#name-changes-in-3-11))|

#### wal-max-buffered-writes

Specifies the maximum number of write requests that can be buffered awaiting
a WAL flush.

**Default:** `100000`

> [!Note]
> #### In v3.12+: enforced
>
> InfluxDB 3 Enterprise enforces this limit.
> Writes that arrive while the buffer is at this cap are rejected with an
> HTTP `429` response and the message `wal buffer is full; writes are temporarily rejected, retry shortly` until a flush drains the buffer.`/api/v2/write` returns the same condition as JSON with`code: "too many requests"`.
> Retry the write after a short delay.

> [!Note]
> `--wal-max-buffered-writes` was [renamed in 3.11](#name-changes-in-3-11)from `--wal-max-write-buffer-size`.
> The legacy option and environment variable names are deprecated aliases.

|                            influxdb3 serve option                             |                                                 Environment variables                                                  |
|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
|`--wal-max-buffered-writes`  <br/>`--wal-max-write-buffer-size` (pre-3.11 name)|`INFLUXDB3_WAL_MAX_BUFFERED_WRITES`  <br/>`INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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 variables                                                   |
|---------------------------------|--------------------------------------------------------------------------------------------------------------------------|
|`--snapshotted-wal-files-to-keep`|`INFLUXDB3_SNAPSHOTTED_WAL_FILES_TO_KEEP`  <br/>`INFLUXDB3_NUM_WAL_FILES_TO_KEEP` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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`|

#### write-timestamp-max-past

Rejects explicit point timestamps older than this duration relative to the
time the server received the write request.
Lines that don’t specify an explicit timestamp are exempt.
Applies to every database except `_internal`.
Each ingest node evaluates the bound against its own clock, so rejections
are per line, and the usual partial-write rules apply to the rest of the
request.
Disabled when unset.

This option applies to the upgraded storage engine only.

**Default:** *Not set (disabled)*

|   influxdb3 serve option   |        Environment variable        |
|----------------------------|------------------------------------|
|`--write-timestamp-max-past`|`INFLUXDB3_WRITE_TIMESTAMP_MAX_PAST`|

#### write-timestamp-max-future

Rejects explicit point timestamps newer than this duration relative to the
time the server received the write request.
Lines that don’t specify an explicit timestamp are exempt.
Applies to every database except `_internal`.
Each ingest node evaluates the bound against its own clock, so rejections
are per line, and the usual partial-write rules apply to the rest of the
request.
Disabled when unset.

This option applies to the upgraded storage engine only.

**Default:** *Not set (disabled)*

|    influxdb3 serve option    |         Environment variable         |
|------------------------------|--------------------------------------|
|`--write-timestamp-max-future`|`INFLUXDB3_WRITE_TIMESTAMP_MAX_FUTURE`|

### Compaction

> [!Note]
> The `compaction-*` and `gen1-*` options apply to the Parquet engine only
> (clusters that started on 3.10 or earlier that have not run the[storage engine upgrade](#upgrade-pacha-tree)).
> For the upgraded storage engine’s compaction options, see the[storage engine configuration reference](/influxdb3/enterprise/reference/storage-engine-config-options/).

* [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)
* [compacted-data-load-concurrency-limit](#compacted-data-load-concurrency-limit)
* [compacted-data-skip-file-index](#compacted-data-skip-file-index)

> [!Note]
> The following distributed-compaction and orphan-sweep options apply to
> the upgraded storage engine only.
> For more information, see[Distributed compaction](/influxdb3/enterprise/admin/distributed-compaction/).

* [compactor-dispatch-target](#compactor-dispatch-target)

* [compactor-dispatch-ack-timeout](#compactor-dispatch-ack-timeout)

* [compactor-sweep-interval](#compactor-sweep-interval)

* [compactor-sweep-mode](#compactor-sweep-mode)

* [compactor-sweep-grace](#compactor-sweep-grace)

* [compactor-sweep-auto-resume](#compactor-sweep-auto-resume)

* [compactor-sweep-audit-retention](#compactor-sweep-audit-retention)

* [gen1-duration](#gen1-duration)

#### 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_COMPACTION_ROW_LIMIT`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_ROW_LIMIT` ([pre-3.11 name](#name-changes-in-3-11))|

#### compaction-max-num-files-per-plan

> [!Warning]
> #### Deprecated in v3.12: has no effect
>
> In InfluxDB 3 Enterprise 3.12, `--compaction-max-num-files-per-plan` no
> longer has any effect: the compactor no longer limits compaction plans by
> input file count.
> The option is still accepted so existing configurations start, but the
> server logs a startup warning–remove it from your configuration.

|       influxdb3 serve option        |                                                                Environment variable                                                                 |
|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
|`--compaction-max-num-files-per-plan`|`INFLUXDB3_COMPACTION_MAX_NUM_FILES_PER_PLAN`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_MAX_NUM_FILES_PER_PLAN` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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_COMPACTION_GEN2_DURATION`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_GEN2_DURATION` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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_COMPACTION_MULTIPLIERS`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_MULTIPLIERS` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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.
On the legacy Parquet storage engine, compaction doesn’t mark Gen1 files for
deletion; see [Gen1 file cleanup](/influxdb3/enterprise/admin/gen1-file-cleanup/).

**Default:** `1h`

|  influxdb3 serve option   |                                                      Environment variable                                                       |
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------|
|`--compaction-cleanup-wait`|`INFLUXDB3_COMPACTION_CLEANUP_WAIT`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_CLEANUP_WAIT` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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_COMPACTION_CHECK_INTERVAL`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTION_CHECK_INTERVAL` ([pre-3.11 name](#name-changes-in-3-11))|

#### compacted-data-load-concurrency-limit

Specifies the maximum number of concurrent object store fetches while a node
loads compacted data (compaction detail and generation detail files), both at
startup and when a consumer picks up new compaction summaries.

The default bounds the transient memory used by in-flight downloads and is
sized so the load saturates neither a 10 GbE network interface nor the shared
object store connection pool (see[object-store-connection-limit](#object-store-connection-limit)).
Increase the limit for faster startup when the compaction index is large and
the host has network headroom; decrease it if the object store throttles the
load or memory is tight during startup.

This option isn’t supported in the TOML configuration file; use the command
option or environment variable.

**Default:** `20`

|         influxdb3 serve option          |                                                                    Environment variable                                                                     |
|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--compacted-data-load-concurrency-limit`|`INFLUXDB3_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT` ([pre-3.11 name](#name-changes-in-3-11))|

#### compacted-data-skip-file-index

Loads compacted data without building the in-memory file index.

Use this option when the file index has grown too large to fit in host memory
and the node can’t start. Without the index, queries can’t prune to a subset of
files and instead scan all files in the matching time range, so queries are
correct but slower. Pruning generations by time range is unaffected.

The setting applies to the node as a whole: a node started with this option also
skips index merges for newly compacted generations, and continues to persist
full indexes to the object store for other nodes to use.

Starting in v3.11.5, nodes that run only in ingest mode (`--mode ingest`) skip
the index regardless of this option, because they don’t prune files at query
time.

This option isn’t supported in the TOML configuration file; use the command
option or environment variable.

**Default:** `false`

|      influxdb3 serve option      |                                                             Environment variable                                                              |
|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
|`--compacted-data-skip-file-index`|`INFLUXDB3_COMPACTED_DATA_SKIP_FILE_INDEX`  <br/>`INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEX` ([pre-3.11 name](#name-changes-in-3-11))|

#### compactor-dispatch-target

Selects which nodes run compaction work.

This option supports the following values:

* `local` *(default)*: Every compaction runs on the node that holds the
  compactor lease (the primary).
* `remote`: Every compaction runs on other nodes running in `compact`[mode](#mode); work waits until one of those nodes is available.
* `all`: Compactions run on both the lease holder and the other compact
  nodes.

`remote` and `all` require every `compact`-mode node to advertise its
internode address: set `--internode-bind-addr` (and[`--conn-info`](#conn-info) if the node isn’t otherwise reachable).
A compact node that hasn’t advertised a `conn_info` catalog entry can’t
receive dispatched work; the primary logs a warning naming the peer.

> [!Important]
> #### Distributed compaction is a beta feature
>
> Running compaction across multiple nodes with `remote` or `all` is a beta
> feature in InfluxDB 3 Enterprise 3.12.
> For more information, see[Distributed compaction](/influxdb3/enterprise/admin/distributed-compaction/).

This option applies to the upgraded storage engine only.

**Default:** `local`

|   influxdb3 serve option    |        Environment variable         |
|-----------------------------|-------------------------------------|
|`--compactor-dispatch-target`|`INFLUXDB3_COMPACTOR_DISPATCH_TARGET`|

#### compactor-dispatch-ack-timeout

Specifies how long a remote output-group dispatch can sit unacknowledged
before the compactor primary declares the worker unresponsive and
redispatches its in-flight work elsewhere.

This option applies to the upgraded storage engine only.

**Default:** `5s`

|      influxdb3 serve option      |           Environment variable           |
|----------------------------------|------------------------------------------|
|`--compactor-dispatch-ack-timeout`|`INFLUXDB3_COMPACTOR_DISPATCH_ACK_TIMEOUT`|

#### compactor-sweep-interval

Specifies how often the compactor’s primary node sweeps its output prefixes
for orphaned files (objects that no published state references) and
records them in a durable audit trail.
In [`armed`](#compactor-sweep-mode) mode, the sweep also deletes orphaned
files once they’re past the [`--compactor-sweep-grace`](#compactor-sweep-grace)window.
Set to `off` to disable the scheduled sweep.

This option applies to the upgraded storage engine only.

**Default:** `7d`

|   influxdb3 serve option   |        Environment variable        |
|----------------------------|------------------------------------|
|`--compactor-sweep-interval`|`INFLUXDB3_COMPACTOR_SWEEP_INTERVAL`|

#### compactor-sweep-mode

Sets the mode for scheduled orphan-sweep passes.

This option supports the following values:

* `armed` *(default)*: Enqueue sweep candidates into the cooldown-protected
  delete queue, so confirmed orphaned files are deleted.
* `dry-run`: Only report candidates in the audit trail; delete nothing.

An interrupted `armed` pass resumes at the weaker of its recorded mode and
this setting.

This option applies to the upgraded storage engine only.

**Default:** `armed`

| influxdb3 serve option |      Environment variable      |
|------------------------|--------------------------------|
|`--compactor-sweep-mode`|`INFLUXDB3_COMPACTOR_SWEEP_MODE`|

#### compactor-sweep-grace

Specifies the orphan-sweep grace window.
Objects modified within this duration before a pass’s capture instant are
never deletion candidates.
Values below `6h` are raised to `6h`.

This option applies to the upgraded storage engine only.

**Default:** `24h`

| influxdb3 serve option  |      Environment variable       |
|-------------------------|---------------------------------|
|`--compactor-sweep-grace`|`INFLUXDB3_COMPACTOR_SWEEP_GRACE`|

#### compactor-sweep-auto-resume

Determines whether an unfinished scheduled sweep pass resumes after a
restart instead of waiting for a full interval to elapse.
Set to `false` only when the sweep itself is misbehaving (for example,
crashing mid-pass); every scheduled fire then starts a fresh pass.

This option applies to the upgraded storage engine only.

**Default:** `true`

|    influxdb3 serve option     |         Environment variable          |
|-------------------------------|---------------------------------------|
|`--compactor-sweep-auto-resume`|`INFLUXDB3_COMPACTOR_SWEEP_AUTO_RESUME`|

#### compactor-sweep-audit-retention

Specifies how long the orphan sweep retains its audit-trail objects.
InfluxDB 3 Enterprise expires older audit objects at the start of each pass.

This option applies to the upgraded storage engine only.

**Default:** `7d`

|      influxdb3 serve option       |           Environment variable            |
|-----------------------------------|-------------------------------------------|
|`--compactor-sweep-audit-retention`|`INFLUXDB3_COMPACTOR_SWEEP_AUDIT_RETENTION`|

#### 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, which the
compactor can merge into larger generations

.

**Default:** `10m`

|influxdb3 serve option|  Environment variable   |
|----------------------|-------------------------|
|  `--gen1-duration`   |`INFLUXDB3_GEN1_DURATION`|

### Caching

* [preemptive-cache-age](#preemptive-cache-age)

* [file-cache-size](#file-cache-size) (`--parquet-mem-cache-size` before 3.11)

* [parquet-mem-cache-prune-percentage](#parquet-mem-cache-prune-percentage)

* [parquet-mem-cache-prune-interval](#parquet-mem-cache-prune-interval)

* [file-cache-recency](#file-cache-recency) (`--parquet-mem-cache-query-path-duration` before 3.11)

* [disable-file-cache](#disable-file-cache) (`--disable-parquet-mem-cache`, `--disable-data-file-cache` before 3.11)

* [table-index-cache-max-entries](#table-index-cache-max-entries)

* [table-index-cache-concurrency-limit](#table-index-cache-concurrency-limit)

* [last-value-cache-disable-from-history](#last-value-cache-disable-from-history)

* [last-cache-eviction-interval](#last-cache-eviction-interval)

* [distinct-value-cache-disable-from-history](#distinct-value-cache-disable-from-history)

* [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`|

#### file-cache-size

Specifies the size of the in-memory data file cache.
Provide a value with a [unit suffix](#size-option-values) or as a percentage
of total available memory—for example, `4gb` or `20%`.

This is a total budget.

With the Parquet engine, the budget is used entirely by the in-memory Parquet
cache.
During the storage engine upgrade with hybrid query enabled, the budget
is split 50/50 between the hybrid-query Parquet cache and the upgraded
engine’s file cache; otherwise, the single active cache receives the full
budget.

> [!Note]
> #### In v3.12+: hard limit on the upgraded storage engine
>
> On the upgraded storage engine, `--file-cache-size` is a hard limit: the
> budget also counts bytes held by data files that running queries
> currently have open, not just cached files.
> When a query’s file access would exceed the budget, InfluxDB 3 Enterprise
> fails the query instead of exceeding the cache size, with`file access cache budget exhausted: ...` if the budget is already fully
> in use, or `file larger than the file access cache budget: ...` if a
> single file is larger than the entire cache.
> The HTTP API returns a `429` response; Flight (gRPC) clients see a`RESOURCE_EXHAUSTED` error.
> Retry the query after other queries finish.
> Size the cache for your largest concurrent query workload, not just your
> working set.

**Default:** `20%`

> [!Note]
> `--file-cache-size` was [renamed in 3.11](#name-changes-in-3-11)from `--parquet-mem-cache-size`.
> The legacy option and environment variable names are still
> accepted–including the pre-3.11 bare-number format, meaning
> megabytes–with a startup deprecation warning.

|                       influxdb3 serve option                       |                                            Environment variables                                            |
|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|`--file-cache-size`  <br/>`--parquet-mem-cache-size` (pre-3.11 name)|`INFLUXDB3_FILE_CACHE_SIZE`  <br/>`INFLUXDB3_PARQUET_MEM_CACHE_SIZE` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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`|

#### file-cache-recency

A [duration](/influxdb3/enterprise/reference/glossary/#duration) that specifies

the time window for caching recent data files in memory.

**Default:** `3d`

Only files containing data with a timestamp between `now` and `now - duration`are cached when accessed during queries—for example, with a `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**: data files with data from `2024-06-10 14:00` (within 5-hour window)
* **Not cached**: data files with data from `2024-06-09` (outside 5-hour window)

> [!Note]
> `--file-cache-recency` was [renamed in 3.11](#name-changes-in-3-11)from `--parquet-mem-cache-query-path-duration`.
> The legacy option and environment variable names are deprecated aliases.

|                                influxdb3 serve option                                |                                                     Environment variables                                                     |
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
|`--file-cache-recency`  <br/>`--parquet-mem-cache-query-path-duration` (pre-3.11 name)|`INFLUXDB3_FILE_CACHE_RECENCY`  <br/>`INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION` ([pre-3.11 name](#name-changes-in-3-11))|

#### disable-file-cache

Disables the in-memory data file cache. By default, the cache is enabled.

This disables data file caching in both the Parquet and upgraded storage
engines.

> [!Note]
> `--disable-file-cache` was [renamed in 3.11](#name-changes-in-3-11)from `--disable-parquet-mem-cache`.
> The legacy option and environment variable names (including`disable-data-file-cache`) are deprecated aliases.

|                                                   influxdb3 serve option                                                   |                                                                  Environment variables                                                                  |
|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--disable-file-cache`  <br/>`--disable-parquet-mem-cache` (pre-3.11 name)  <br/>`--disable-data-file-cache` (pre-3.11 name)|`INFLUXDB3_DISABLE_FILE_CACHE`  <br/>`INFLUXDB3_DISABLE_PARQUET_MEM_CACHE`, `INFLUXDB3_DISABLE_DATA_FILE_CACHE` ([pre-3.11 names](#name-changes-in-3-11))|

#### 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`|

#### 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_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY`  <br/>`INFLUXDB3_ENTERPRISE_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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`|

----------

#### 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_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY`  <br/>`INFLUXDB3_ENTERPRISE_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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, InfluxDB 3 Enterprise returns an error.

|influxdb3 serve option|    Environment variable    |
|----------------------|----------------------------|
| `--query-file-limit` |`INFLUXDB3_QUERY_FILE_LIMIT`|

### Processing Engine

* [plugin-dir](#plugin-dir)

* [plugin-repo](#plugin-repo)

* [virtual-env-location](#virtual-env-location)

* [package-manager](#package-manager)

* [restrict-plugin-triggers-to](#restrict-plugin-triggers-to)

* [trigger-retry-max-attempts](#trigger-retry-max-attempts)

* [trigger-work-silence-timeout](#trigger-work-silence-timeout)

* [processing-engine-restart-state-snapshot-interval](#processing-engine-restart-state-snapshot-interval)

* [plugin-dir-only](#plugin-dir-only)

#### plugin-dir

Specifies the local directory that contains Python plugins and their test files.

|influxdb3 serve option| Environment variable |
|----------------------|----------------------|
|    `--plugin-dir`    |`INFLUXDB3_PLUGIN_DIR`|

##### Default behavior by deployment type

|   Deployment   |Default state|              Configuration              |
|----------------|-------------|-----------------------------------------|
| Docker images  | **Enabled** |     `INFLUXDB3_PLUGIN_DIR=/plugins`     |
|DEB/RPM packages| **Enabled** |`plugin-dir="/var/lib/influxdb3/plugins"`|
| Binary/source  |  Disabled   |       No `plugin-dir` configured        |

##### Disable the Processing Engine

To disable the Processing Engine, ensure `plugin-dir` is not configured.

> [!Warning]
> Setting `plugin-dir=""` or `INFLUXDB3_PLUGIN_DIR=""` (empty string) does **not** disable the Processing Engine.
> You must comment out, remove, or unset the configuration — not set it to empty.

**Docker:** Use `INFLUXDB3_UNSET_VARS` to unset default environment variables that are preconfigured in the container image.

`INFLUXDB3_UNSET_VARS` accepts a comma-separated list of environment variable names to unset in the container entrypoint before InfluxDB 3 Enterprise starts.
This lets you disable or override image defaults (for example, `INFLUXDB3_PLUGIN_DIR`, logging, or other configuration variables) without modifying the container image itself.

To disable the default plugin directory, unset `INFLUXDB3_PLUGIN_DIR`:

```bash
docker run -e INFLUXDB3_UNSET_VARS="INFLUXDB3_PLUGIN_DIR" influxdb:3-enterprise
```

**systemd (DEB/RPM):** Comment out or remove `plugin-dir` in the configuration file:

```bash
sudo nano /etc/influxdb3/influxdb3-enterprise.conf
```

```toml
# plugin-dir="/var/lib/influxdb3/plugins"
```

Then restart the service:

```bash
sudo systemctl restart influxdb3-enterprise
```

When the Processing Engine is disabled:

* The Python environment and PyO3 bindings are not initialized
* Plugin-related operations return a “No plugin directory configured” error
* The server runs with reduced resource usage

#### plugin-repo

Specifies the base URL of the remote repository used when referencing plugins with the `gh:` prefix.
When you create a trigger with a plugin filename starting with `gh:`, InfluxDB fetches
the plugin code from this repository URL.

The URL construction automatically handles trailing slashes—both formats work identically:

* `https://example.com/plugins/` (with trailing slash)
* `https://example.com/plugins` (without trailing slash)

**Default:** The official InfluxDB 3 plugins repository at `https://raw.githubusercontent.com/influxdata/influxdb3_plugins/main/`

|influxdb3 serve option| Environment variable  |
|----------------------|-----------------------|
|   `--plugin-repo`    |`INFLUXDB3_PLUGIN_REPO`|

##### Example usage

```bash
# Use a custom organization repository
influxdb3 serve \
  --plugin-dir ~/.plugins \
  --plugin-repo "https://raw.githubusercontent.com/myorg/influxdb-plugins/main/"

# Use an internal mirror
influxdb3 serve \
  --plugin-dir ~/.plugins \
  --plugin-repo "https://internal.company.com/influxdb-plugins/"

# Set via environment variable
export INFLUXDB3_PLUGIN_REPO="https://custom-repo.example.com/plugins/"
influxdb3 serve --plugin-dir ~/.plugins
```

#### 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

> [!Caution]
> #### Deprecated in InfluxDB 3 Enterprise 3.10
>
> `--package-manager` is deprecated.
> Python and `pip` are bundled with InfluxDB 3 Enterprise, and `pip` is always
> used for plugin dependency installation.
> The server still starts if you set this option, but prints a deprecation
> warning.`disabled` continues to block plugin package installation API calls for
> compatibility.

Specifies the Python package manager that the Processing Engine uses to install plugin dependencies.

This option supports the following values:

* `discover` *(default)*: Automatically detect and use available package manager (`uv` or `pip`)
* `pip`: Use pip package manager exclusively
* `uv`: Use uv package manager exclusively
* `disabled`: Disable automatic package installation (all dependencies must be pre-installed)

**Default:** `discover`

##### Security mode (disabled)

When set to `disabled`, InfluxDB 3 Enterprise blocks all package installation attempts for security and compliance requirements.
The Processing Engine and plugins continue to function normally, but package installation requests (via CLI or API) return a `403 Forbidden` error.

This mode is designed for:

* **Enterprise security requirements**: Prevent arbitrary package installation
* **Compliance environments**: Control exactly which packages are available
* **Air-gapped deployments**: Pre-install all dependencies before deployment
* **Multi-tenant scenarios**: Prevent tenants from installing potentially malicious packages

> [!Important]
> Before using `--package-manager disabled`, administrators must pre-install all required Python packages into the virtual environment that plugins will use.

**Example:**

```bash
# Start InfluxDB 3 with disabled package manager
influxdb3 serve \
  --node-id node0 \
  --object-store file \
  --data-dir ~/.influxdb3 \
  --plugin-dir ~/.plugins \
  --package-manager disabled
```

For more information about plugins and package management, see [Processing Engine plugins](/influxdb3/enterprise/plugins/).

|influxdb3 serve option|   Environment variable    |
|----------------------|---------------------------|
| `--package-manager`  |`INFLUXDB3_PACKAGE_MANAGER`|

#### restrict-plugin-triggers-to

Restrict plugin triggers to one or more trigger types.
Provide one or more of `wal`, `schedule`, or `request`.

|    influxdb3 serve option     |         Environment variable          |
|-------------------------------|---------------------------------------|
|`--restrict-plugin-triggers-to`|`INFLUXDB3_RESTRICT_PLUGIN_TRIGGERS_TO`|

#### trigger-retry-max-attempts

Sets the maximum number of attempts for a failed trigger invocation before
it stops retrying.
Higher values keep retrying transient failures longer, but can retain
failing work and delay newer invocations.
Must be greater than zero.

**Default:** `5`

|    influxdb3 serve option    |         Environment variable         |
|------------------------------|--------------------------------------|
|`--trigger-retry-max-attempts`|`INFLUXDB3_TRIGGER_RETRY_MAX_ATTEMPTS`|

#### trigger-work-silence-timeout

Sets how long a trigger worker can go without reporting progress before its
work becomes eligible for recovery by another process node.
Smaller values reduce recovery time after a hard restart, but increase the
chance of duplicate executions during slow or partitioned operation.
Configure the same value on every [process](#mode) node.
Must be at least `1s`.

**Default:** `60s`

|     influxdb3 serve option     |          Environment variable          |
|--------------------------------|----------------------------------------|
|`--trigger-work-silence-timeout`|`INFLUXDB3_TRIGGER_WORK_SILENCE_TIMEOUT`|

#### processing-engine-restart-state-snapshot-interval

Sets the interval between Processing Engine restart-state checkpoints.
Smaller values reduce the amount of scheduled work that a hard restart must
replay, at the cost of more object store writes.
Must be greater than zero.

**Default:** `1s`

|               influxdb3 serve option                |                    Environment variable                     |
|-----------------------------------------------------|-------------------------------------------------------------|
|`--processing-engine-restart-state-snapshot-interval`|`INFLUXDB3_PROCESSING_ENGINE_RESTART_STATE_SNAPSHOT_INTERVAL`|

#### plugin-dir-only

Only allow plugins that already exist in the configured plugin directory.
Blocks plugin installation from any other source.

|influxdb3 serve option|   Environment variable    |
|----------------------|---------------------------|
| `--plugin-dir-only`  |`INFLUXDB3_PLUGIN_DIR_ONLY`|

### Bulk Import

* [import-attempt-server-side-copy](#import-attempt-server-side-copy)

#### import-attempt-server-side-copy

Applies to `influxdb3 import from-object-store` bulk imports that copy
Parquet files from a bucket other than the server’s own object store.

When enabled, InfluxDB 3 Enterprise first attempts a true S3 server-side
copy, which works only when all of the following hold:

* The source and destination object stores are both S3 (or an
  S3-compatible endpoint set with [`--aws-endpoint`](#aws-endpoint)).
* This server’s credentials can read the source bucket and write the
  destination bucket. This is true within one AWS account, or across accounts only
  when a bucket policy grants that access.
* The source file is under 5 GiB.

When any condition doesn’t hold, or when this option is `false`, the
import falls back to a streamed copy through this server, which still
succeeds but moves the file’s bytes through the server.

This option applies to the upgraded storage engine only.

**Default:** `true`

|      influxdb3 serve option       |           Environment variable            |
|-----------------------------------|-------------------------------------------|
|`--import-attempt-server-side-copy`|`INFLUXDB3_IMPORT_ATTEMPT_SERVER_SIDE_COPY`|

### Cluster Management

* [replication-interval](#replication-interval)
* [catalog-sync-interval](#catalog-sync-interval)
* [wait-for-running-ingester](#wait-for-running-ingester) (`--wait-for-running-ingestor` before 3.11)
* [conn-info](#conn-info)

#### replication-interval

Specifies the interval at which data replication occurs between cluster nodes.

**Default:** `250ms`

| influxdb3 serve option |                                                   Environment variable                                                    |
|------------------------|---------------------------------------------------------------------------------------------------------------------------|
|`--replication-interval`|`INFLUXDB3_REPLICATION_INTERVAL`  <br/>`INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL` ([pre-3.11 name](#name-changes-in-3-11))|

#### catalog-sync-interval

Defines how often the catalog synchronizes across cluster nodes.

**Default:** `1s`

| influxdb3 serve option  |                                                    Environment variable                                                     |
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------|
|`--catalog-sync-interval`|`INFLUXDB3_CATALOG_SYNC_INTERVAL`  <br/>`INFLUXDB3_ENTERPRISE_CATALOG_SYNC_INTERVAL` ([pre-3.11 name](#name-changes-in-3-11))|

#### wait-for-running-ingester

Specifies how long to wait for a running ingester during startup.

**Default:** `10s`

> [!Note]
> `--wait-for-running-ingester` was [renamed in 3.11](#name-changes-in-3-11)from `--wait-for-running-ingestor` (misspelled).
> The legacy option and environment variable names are deprecated aliases.

|                             influxdb3 serve option                              |                                                                                                     Environment variables                                                                                                     |
|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`--wait-for-running-ingester`  <br/>`--wait-for-running-ingestor` (pre-3.11 name)|`INFLUXDB3_WAIT_FOR_RUNNING_INGESTER`  <br/>`INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR`, `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTER`, `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTOR` ([pre-3.11 names](#name-changes-in-3-11))|

#### conn-info

In multi-node deployments, specifies the connection information used to reach
the ingester over the internode gRPC port (not the HTTP port).
Required for Processing Engine plugin writes from non-ingester nodes, and used
together with the `--internode-bind-addr` option.

|influxdb3 serve option|                                        Environment variables                                        |
|----------------------|-----------------------------------------------------------------------------------------------------|
|    `--conn-info`     |`INFLUXDB3_CONN_INFO`  <br/>`INFLUXDB3_ENTERPRISE_CONN_INFO` ([pre-3.11 name](#name-changes-in-3-11))|

### Web UI

Configure the [integrated Explorer UI](/influxdb3/enterprise/admin/explorer-ui/),
which the server hosts in-process as a WebAssembly (WASM) guest.
The web UI is off unless you add `webui` to [`--mode`](#mode).

* [webui-session-secret](#webui-session-secret)
* [webui-public-uri](#webui-public-uri)
* [webui-cookie-secure](#webui-cookie-secure)
* [webui-openai-base-url](#webui-openai-base-url)

#### webui-session-secret

Specifies the secret that signs web UI session cookies.
The secret doesn’t encrypt the cookies.
Keep it private: anyone who has it can forge session cookies.
Required whenever [`--mode`](#mode) includes `webui`–the server doesn’t start
without it.

Use a secret that’s unique to the cluster.
Generate a secret with `openssl rand -base64 24`, then pass the same value on
every start and on every node that runs `webui` mode.
A secret that changes between restarts signs out every user.

| influxdb3 serve option |      Environment variable      |
|------------------------|--------------------------------|
|`--webui-session-secret`|`INFLUXDB3_WEBUI_SESSION_SECRET`|

#### webui-public-uri

Sets the browser-reachable base URI of the embedded Web UI.
InfluxDB 3 Enterprise derives the OAuth callback URI as`<public URI>/auth/callback`.
Requires [`--oauth-client-id`](#oauth-client-id).

|influxdb3 serve option|    Environment variable    |
|----------------------|----------------------------|
| `--webui-public-uri` |`INFLUXDB3_WEBUI_PUBLIC_URI`|

#### webui-cookie-secure

Sets the `Secure` attribute on web UI session cookies, which tells browsers to
send the cookies only over HTTPS.

**Default:** `false`

Enable this option when browsers reach Explorer over HTTPS–for example,
through a TLS-terminating reverse proxy.
Leave it disabled when you reach Explorer over HTTP, such as through`http://localhost:8181/`; browsers withhold `Secure` cookies from HTTP
requests, so sessions don’t persist.

|influxdb3 serve option |     Environment variable      |
|-----------------------|-------------------------------|
|`--webui-cookie-secure`|`INFLUXDB3_WEBUI_COOKIE_SECURE`|

#### webui-openai-base-url

Specifies the base URL of the OpenAI-compatible endpoint that the web UI AI
chat sends requests to.
Chat prompts, and any query results included with them, go to this endpoint.

| influxdb3 serve option  |      Environment variable       |
|-------------------------|---------------------------------|
|`--webui-openai-base-url`|`INFLUXDB3_WEBUI_OPENAI_BASE_URL`|

### Resource Limits

* [num-cores](#num-cores)

* [max-concurrent-queries](#max-concurrent-queries)

* [datafusion-num-threads](#datafusion-num-threads)

* *[num-io-threads](#num-io-threads) - See [Global configuration options](#global-configuration-options)*

* [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.

**Default:** All available cores on the system

Maximum cores allowed is determined by your InfluxDB 3 Enterprise license:

* **Trial**: up to 256 cores
* **At-Home**: 2 cores
* **Commercial**: per contract

When specified, InfluxDB automatically assigns the number of DataFusion threads and IO threads based on the core count.

**Default thread assignment logic when `num-cores` is set:**

* **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

This automatic allocation applies when you don’t explicitly set [`--num-io-threads`](#num-io-threads) and [`--datafusion-num-threads`](#datafusion-num-threads).

> [!Note]
> You can override the automatic thread assignment by explicitly setting [`--num-io-threads`](#num-io-threads)and [`--datafusion-num-threads`](#datafusion-num-threads).
> This is particularly important for specialized
> workloads like [ingest mode](#mode) where you may need more IO threads than the default allocation.

> [!Note]
> #### Thread defaults on the upgraded storage engine
>
> The default thread assignment logic above applies to Parquet-engine
> clusters.
> On clusters running the upgraded storage engine (the default for new
> clusters), the IO and DataFusion
> runtimes each default to the licensed core count, and the node consumes the
> licensed core count regardless of thread configuration.
> Thread counts set above the licensed core count are capped with a startup
> warning instead of rejected, and the combined IO + DataFusion total is not
> checked against `num-cores`.
> An at-home license always runs 1 IO thread and 1 DataFusion thread.

**Constraints (Parquet-engine clusters):**

* Must be at least 2
* Cannot exceed the number of cores available on the system
* Total thread count from `--num-io-threads` (global option) and `--datafusion-num-threads` cannot exceed the `num-cores` value

|influxdb3 serve option|                                        Environment variable                                         |
|----------------------|-----------------------------------------------------------------------------------------------------|
|    `--num-cores`     |`INFLUXDB3_NUM_CORES`  <br/>`INFLUXDB3_ENTERPRISE_NUM_CORES` ([pre-3.11 name](#name-changes-in-3-11))|

#### max-concurrent-queries

Limits the number of queries that can run concurrently.
Queries beyond the limit wait in a queue until a running query completes.

To read, change, or reset the limit at runtime, send a `GET`, `PUT`, or `DELETE`request to `/api/v3/configure/query_concurrency_limit`.`DELETE` restores the limit set at startup.

**Default:** `max(50, 4 x P)`, where `P` is the effective query
parallelism: the smaller of the number of CPU cores
(the licensed core count on InfluxDB 3 Enterprise)

and [`--datafusion-num-threads`](#datafusion-num-threads).

> [!Note]
> #### In v3.12+: finite default, and queuing
>
> `--max-concurrent-queries` now has a finite default instead of being
> effectively unlimited, and queries beyond the limit queue for admission
> instead of always running immediately.
> If you set an explicit value below `max(16, P)`, the server logs a
> startup warning recommending you raise it. Limits that low mostly
> serialize query execution and suit testing, not production.

|  influxdb3 serve option  |       Environment variable       |
|--------------------------|----------------------------------|
|`--max-concurrent-queries`|`INFLUXDB3_MAX_CONCURRENT_QUERIES`|

#### datafusion-num-threads

Sets the number of threads allocated to the DataFusion runtime thread pool.
DataFusion threads handle:

* Query execution and processing
* Data aggregation and transformation
* Snapshot creation (sort/dedupe operations)
* Parquet file generation

**Default:**

* Clusters running the upgraded storage engine (the default for new clusters): the licensed core count
* Parquet-engine clusters, if `--num-cores` is not set: all available cores minus IO threads
* Parquet-engine clusters, if `--num-cores` is set: automatically determined based on core count (see [`--num-cores`](#num-cores))

> [!Note]
> DataFusion threads are used for both query processing and snapshot operations.
> Even ingest-only nodes use DataFusion threads during WAL snapshot creation.

**Constraints:** On Parquet-engine clusters, when used with `--num-cores`, the sum of `--num-io-threads` and `--datafusion-num-threads` cannot exceed the `num-cores` value.
On clusters running the upgraded storage engine, values above the licensed core count are capped with a startup warning.

|  influxdb3 serve option  |       Environment variable       |
|--------------------------|----------------------------------|
|`--datafusion-num-threads`|`INFLUXDB3_DATAFUSION_NUM_THREADS`|

> [!Note]
> [`--num-io-threads`](#num-io-threads) is a [global configuration option](#global-configuration-options).

----------

> [!Note]
> #### Parquet-engine limits
>
> `num-database-limit`, `num-table-limit`, and`num-total-columns-per-table-limit` apply to the Parquet engine only
> (clusters that started on 3.10 or earlier that have not run the[storage engine upgrade](#upgrade-pacha-tree)).
> On clusters running the upgraded storage engine, explicitly setting these
> options logs a startup
> warning and has no effect.`--max-total-columns` (documented in the[storage engine configuration reference](/influxdb3/enterprise/reference/storage-engine-config-options/))
> is the upgraded storage engine’s counterpart of`--num-total-columns-per-table-limit`;
> the database and table limits have no equivalent on the upgraded engine.

#### num-database-limit

Limits the total number of active databases.
Default is 100.

|influxdb3 serve option|                                                 Environment variable                                                  |
|----------------------|-----------------------------------------------------------------------------------------------------------------------|
|`--num-database-limit`|`INFLUXDB3_NUM_DATABASE_LIMIT`  <br/>`INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT` ([pre-3.11 name](#name-changes-in-3-11))|

#### num-table-limit

Limits the total number of active tables across all databases.
Default is 10000.

|influxdb3 serve option|                                              Environment variable                                               |
|----------------------|-----------------------------------------------------------------------------------------------------------------|
| `--num-table-limit`  |`INFLUXDB3_NUM_TABLE_LIMIT`  <br/>`INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT` ([pre-3.11 name](#name-changes-in-3-11))|

#### num-total-columns-per-table-limit

Limits the total number of columns per table.
Default is 500.

|       influxdb3 serve option        |                                                                Environment variable                                                                 |
|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
|`--num-total-columns-per-table-limit`|`INFLUXDB3_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT`  <br/>`INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT` ([pre-3.11 name](#name-changes-in-3-11))|

### 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

> [!Warning]
> #### Deprecated: has no effect
>
> `--hard-delete-default-duration` has never had an effect in any release;
> the server always uses the built-in default hard-delete duration.
> The option is still accepted so existing configurations start, but the
> server logs a startup warning–remove it from your configuration.

|     influxdb3 serve option     |          Environment variable          |
|--------------------------------|----------------------------------------|
|`--hard-delete-default-duration`|`INFLUXDB3_HARD_DELETE_DEFAULT_DURATION`|

### Telemetry

* [disable-telemetry-upload](#disable-telemetry-upload)
* [telemetry-endpoint](#telemetry-endpoint)

#### disable-telemetry-upload

Disables the upload of telemetry data to InfluxData.

**Default:** `false`

|   influxdb3 serve option   |                                                 Environment variables                                                  |
|----------------------------|------------------------------------------------------------------------------------------------------------------------|
|`--disable-telemetry-upload`|`INFLUXDB3_DISABLE_TELEMETRY_UPLOAD`  <br/>`INFLUXDB3_TELEMETRY_DISABLE_UPLOAD` ([pre-3.11 name](#name-changes-in-3-11))|

#### 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 variables                                                     |
|--------------------------|-------------------------------------------------------------------------------------------------------------------------------|
|`--tcp-listener-file-path`|`INFLUXDB3_TCP_LISTENER_FILE_PATH`  <br/>`INFLUXDB3_TCP_LISTINER_FILE_PATH` ([misspelled pre-3.11 name](#name-changes-in-3-11))|

#### 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`|

## Configuration name changes in 3.11

InfluxDB 3 Enterprise 3.11.0 renamed many `influxdb3 serve` options and
environment variables so that each variable matches its command option.
In addition, Enterprise-specific variables dropped
the `ENTERPRISE_` segment—for example, `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL`is now `INFLUXDB3_LICENSE_EMAIL`.

On 3.11.0 and later, legacy names remain supported as deprecated aliases:
the server logs a deprecation warning at startup when it detects one, and
if both the new and the legacy name are set, the new name takes precedence.

> [!Warning]
> #### New names don’t work on releases earlier than 3.11.0
>
> A pre-3.11 server doesn’t recognize names introduced by these 3.11
> renames: it exits with an error on an unknown command line option, but it**silently ignores** an unknown environment variable.
> If you run a release earlier than 3.11.0, use the legacy names, and verify
> in your startup logs that settings take effect.

Use the following tables to migrate a deployment configuration—for example,
Helm values or a systemd environment file—in one pass.

### Renamed options (legacy names aliased)

The following `influxdb3 serve` options and their environment variables were
renamed.
Legacy names are still accepted; the server logs a deprecation warning at
startup, and values in the old format are honored.

|                                                                     Legacy name                                                                     |                                New name                                 |
|-----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
|`--disable-parquet-mem-cache`  <br/>`INFLUXDB3_DISABLE_PARQUET_MEM_CACHE`  <br/>`--disable-data-file-cache`  <br/>`INFLUXDB3_DISABLE_DATA_FILE_CACHE`|       `--disable-file-cache`  <br/>`INFLUXDB3_DISABLE_FILE_CACHE`       |
|                                            `--exec-mem-pool-bytes`  <br/>`INFLUXDB3_EXEC_MEM_POOL_BYTES`                                            |       `--exec-mem-pool-size`  <br/>`INFLUXDB3_EXEC_MEM_POOL_SIZE`       |
|                                   `--force-snapshot-mem-threshold`  <br/>`INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD`                                   |  `--force-snapshot-mem-size`  <br/>`INFLUXDB3_FORCE_SNAPSHOT_MEM_SIZE`  |
|                          `--parquet-mem-cache-query-path-duration`  <br/>`INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION`                          |       `--file-cache-recency`  <br/>`INFLUXDB3_FILE_CACHE_RECENCY`       |
|                                         `--parquet-mem-cache-size`  <br/>`INFLUXDB3_PARQUET_MEM_CACHE_SIZE`                                         |          `--file-cache-size`  <br/>`INFLUXDB3_FILE_CACHE_SIZE`          |
|                                                 `--query-log-size`  <br/>`INFLUXDB3_QUERY_LOG_SIZE`                                                 |    `--query-log-max-entries`  <br/>`INFLUXDB3_QUERY_LOG_MAX_ENTRIES`    |
|                                      `--wal-max-write-buffer-size`  <br/>`INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE`                                      |  `--wal-max-buffered-writes`  <br/>`INFLUXDB3_WAL_MAX_BUFFERED_WRITES`  |
|                                              `--wal-snapshot-size`  <br/>`INFLUXDB3_WAL_SNAPSHOT_SIZE`                                              |   `--wal-files-per-snapshot`  <br/>`INFLUXDB3_WAL_FILES_PER_SNAPSHOT`   |
|                                      `--wait-for-running-ingestor`  <br/>`INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR`                                      |`--wait-for-running-ingester`  <br/>`INFLUXDB3_WAIT_FOR_RUNNING_INGESTER`|

### Renamed environment variables (legacy names aliased)

The following environment variables were renamed to match their command
options; the option names are unchanged.
Legacy names remain supported as deprecated aliases.

|            Legacy name             |                New name                 |
|------------------------------------|-----------------------------------------|
|         `INFLUXDB3_DB_DIR`         |          `INFLUXDB3_DATA_DIR`           |
|`INFLUXDB3_NODE_IDENTIFIER_FROM_ENV`|      `INFLUXDB3_NODE_ID_FROM_ENV`       |
| `INFLUXDB3_NODE_IDENTIFIER_PREFIX` |           `INFLUXDB3_NODE_ID`           |
| `INFLUXDB3_NUM_WAL_FILES_TO_KEEP`  |`INFLUXDB3_SNAPSHOTTED_WAL_FILES_TO_KEEP`|
|   `INFLUXDB3_START_WITHOUT_AUTH`   |        `INFLUXDB3_WITHOUT_AUTH`         |
| `INFLUXDB3_TCP_LISTINER_FILE_PATH` |   `INFLUXDB3_TCP_LISTENER_FILE_PATH`    |
|`INFLUXDB3_TELEMETRY_DISABLE_UPLOAD`|  `INFLUXDB3_DISABLE_TELEMETRY_UPLOAD`   |

### Renamed Enterprise environment variables (legacy names aliased)

Enterprise-specific environment variables dropped the `ENTERPRISE_` segment.
Legacy names remain supported as deprecated aliases.

|                          Legacy name                           |                      New name                       |
|----------------------------------------------------------------|-----------------------------------------------------|
|        `INFLUXDB3_ENTERPRISE_API_UPLOAD_CHECK_INTERVAL`        |        `INFLUXDB3_API_UPLOAD_CHECK_INTERVAL`        |
|   `INFLUXDB3_ENTERPRISE_API_UPLOAD_CONCURRENT_STATUS_READS`    |   `INFLUXDB3_API_UPLOAD_CONCURRENT_STATUS_READS`    |
|          `INFLUXDB3_ENTERPRISE_CATALOG_SYNC_INTERVAL`          |          `INFLUXDB3_CATALOG_SYNC_INTERVAL`          |
|               `INFLUXDB3_ENTERPRISE_CLUSTER_ID`                |               `INFLUXDB3_CLUSTER_ID`                |
|  `INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT`  |  `INFLUXDB3_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT`  |
|     `INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEX`      |     `INFLUXDB3_COMPACTED_DATA_SKIP_FILE_INDEX`      |
|        `INFLUXDB3_ENTERPRISE_COMPACTION_CHECK_INTERVAL`        |        `INFLUXDB3_COMPACTION_CHECK_INTERVAL`        |
|         `INFLUXDB3_ENTERPRISE_COMPACTION_CLEANUP_WAIT`         |         `INFLUXDB3_COMPACTION_CLEANUP_WAIT`         |
|        `INFLUXDB3_ENTERPRISE_COMPACTION_GEN2_DURATION`         |        `INFLUXDB3_COMPACTION_GEN2_DURATION`         |
|    `INFLUXDB3_ENTERPRISE_COMPACTION_MAX_NUM_FILES_PER_PLAN`    |    `INFLUXDB3_COMPACTION_MAX_NUM_FILES_PER_PLAN`    |
|         `INFLUXDB3_ENTERPRISE_COMPACTION_MULTIPLIERS`          |         `INFLUXDB3_COMPACTION_MULTIPLIERS`          |
|          `INFLUXDB3_ENTERPRISE_COMPACTION_ROW_LIMIT`           |          `INFLUXDB3_COMPACTION_ROW_LIMIT`           |
|       `INFLUXDB3_ENTERPRISE_COMPACTION_SNAPSHOTS_LIMIT`        |       `INFLUXDB3_COMPACTION_SNAPSHOTS_LIMIT`        |
|                `INFLUXDB3_ENTERPRISE_CONN_INFO`                |                `INFLUXDB3_CONN_INFO`                |
|`INFLUXDB3_ENTERPRISE_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY`|`INFLUXDB3_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY`|
|           `INFLUXDB3_ENTERPRISE_INTERNODE_BIND_ADDR`           |           `INFLUXDB3_INTERNODE_BIND_ADDR`           |
|          `INFLUXDB3_ENTERPRISE_INTERNODE_JWT_PRIMARY`          |          `INFLUXDB3_INTERNODE_JWT_PRIMARY`          |
|         `INFLUXDB3_ENTERPRISE_INTERNODE_JWT_SECONDARY`         |         `INFLUXDB3_INTERNODE_JWT_SECONDARY`         |
|            `INFLUXDB3_ENTERPRISE_INTERNODE_TLS_CA`             |            `INFLUXDB3_INTERNODE_TLS_CA`             |
|           `INFLUXDB3_ENTERPRISE_INTERNODE_TLS_CERT`            |           `INFLUXDB3_INTERNODE_TLS_CERT`            |
|            `INFLUXDB3_ENTERPRISE_INTERNODE_TLS_KEY`            |            `INFLUXDB3_INTERNODE_TLS_KEY`            |
|  `INFLUXDB3_ENTERPRISE_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY`  |  `INFLUXDB3_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY`  |
|              `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL`              |              `INFLUXDB3_LICENSE_EMAIL`              |
|              `INFLUXDB3_ENTERPRISE_LICENSE_FILE`               |              `INFLUXDB3_LICENSE_FILE`               |
|              `INFLUXDB3_ENTERPRISE_LICENSE_TYPE`               |              `INFLUXDB3_LICENSE_TYPE`               |
|                  `INFLUXDB3_ENTERPRISE_MODE`                   |                  `INFLUXDB3_MODE`                   |
|                `INFLUXDB3_ENTERPRISE_NUM_CORES`                |                `INFLUXDB3_NUM_CORES`                |
|           `INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT`            |           `INFLUXDB3_NUM_DATABASE_LIMIT`            |
|             `INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT`             |             `INFLUXDB3_NUM_TABLE_LIMIT`             |
|    `INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT`    |    `INFLUXDB3_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT`    |
|          `INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL`           |          `INFLUXDB3_REPLICATION_INTERVAL`           |
|             `INFLUXDB3_ENTERPRISE_USE_PACHA_TREE`              |             `INFLUXDB3_USE_PACHA_TREE`              |
|       `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_COMPACTOR`        |       `INFLUXDB3_WAIT_FOR_RUNNING_COMPACTOR`        |
|        `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTER`        |        `INFLUXDB3_WAIT_FOR_RUNNING_INGESTER`        |
|        `INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTOR`        |        `INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR`        |

### Removed pt- option names (no aliases)

In InfluxDB 3 Enterprise 3.11+, options for the upgraded storage engine dropped the `pt-`prefix without backward compatibility: old `--pt-*` flags cause a startup
error, and legacy `INFLUXDB3_PT_*` and `INFLUXDB3_ENTERPRISE_PT_*`environment variables are ignored (the server logs a warning at startup for
each one that is still set).
For the complete old-to-new name table, see[Migrate from `--pt-*` option names](/influxdb3/enterprise/reference/storage-engine-config-options/#migrate-from-pt-option-names).
| influxdb3 option | Environment variable |
| --- | --- |
| influxdb3 option | Environment variable |
| --num-io-threads | INFLUXDB3_NUM_IO_THREADS |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --cluster-id | INFLUXDB3_CLUSTER_ID INFLUXDB3_ENTERPRISE_CLUSTER_ID  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --data-dir | INFLUXDB3_DATA_DIR INFLUXDB3_DB_DIR  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --mode | INFLUXDB3_MODE INFLUXDB3_ENTERPRISE_MODE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --node-id | INFLUXDB3_NODE_ID INFLUXDB3_NODE_IDENTIFIER_PREFIX  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --node-id-from-env | INFLUXDB3_NODE_ID_FROM_ENV INFLUXDB3_NODE_IDENTIFIER_FROM_ENV  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --object-store | INFLUXDB3_OBJECT_STORE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --upgrade-pacha-tree | INFLUXDB3_UPGRADE_PACHA_TREE |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --license-email | INFLUXDB3_LICENSE_EMAIL INFLUXDB3_ENTERPRISE_LICENSE_EMAIL  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --license-file | INFLUXDB3_LICENSE_FILE INFLUXDB3_ENTERPRISE_LICENSE_FILE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --license-type | INFLUXDB3_LICENSE_TYPE INFLUXDB3_ENTERPRISE_LICENSE_TYPE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --tls-key | INFLUXDB3_TLS_KEY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --tls-cert | INFLUXDB3_TLS_CERT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --tls-minimum-version | INFLUXDB3_TLS_MINIMUM_VERSION |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --without-auth | INFLUXDB3_WITHOUT_AUTH INFLUXDB3_START_WITHOUT_AUTH  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --disable-authz | INFLUXDB3_DISABLE_AUTHZ |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --admin-token-recovery-http-bind | INFLUXDB3_ADMIN_TOKEN_RECOVERY_HTTP_BIND_ADDR |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --admin-token-file | INFLUXDB3_ADMIN_TOKEN_FILE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --permission-tokens-file | INFLUXDB3_PERMISSION_TOKENS_FILE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --user-auth-type | INFLUXDB3_USER_AUTH_TYPE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --without-user-auth | INFLUXDB3_WITHOUT_USER_AUTH |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --jwt-key-id | INFLUXDB3_JWT_KEY_ID |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --jwt-private-key | INFLUXDB3_JWT_PRIVATE_KEY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --jwt-issuer | INFLUXDB3_JWT_ISSUER |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --jwt-default-ttl-seconds | INFLUXDB3_JWT_DEFAULT_TTL_SECONDS |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --oauth-issuer | INFLUXDB3_OAUTH_ISSUER |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --oauth-audience | INFLUXDB3_OAUTH_AUDIENCE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --oauth-client-id | INFLUXDB3_OAUTH_CLIENT_ID |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --oauth-scopes | INFLUXDB3_OAUTH_SCOPES |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --rbac-authoring-disabled |  |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-access-key-id | AWS_ACCESS_KEY_ID |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-secret-access-key | AWS_SECRET_ACCESS_KEY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-default-region | AWS_DEFAULT_REGION |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-endpoint | AWS_ENDPOINT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-session-token | AWS_SESSION_TOKEN |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-allow-http | AWS_ALLOW_HTTP |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-skip-signature | AWS_SKIP_SIGNATURE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --aws-credentials-file | AWS_CREDENTIALS_FILE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --google-service-account | GOOGLE_SERVICE_ACCOUNT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --azure-storage-account | AZURE_STORAGE_ACCOUNT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --azure-storage-access-key | AZURE_STORAGE_ACCESS_KEY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --azure-endpoint | AZURE_ENDPOINT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --azure-allow-http | AZURE_ALLOW_HTTP |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --bucket | INFLUXDB3_BUCKET |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-connection-limit | INFLUXDB3_OBJECT_STORE_CONNECTION_LIMIT  (preferred) OBJECT_STORE_CONNECTION_LIMIT  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-http2-only | INFLUXDB3_OBJECT_STORE_HTTP2_ONLY  (preferred) OBJECT_STORE_HTTP2_ONLY  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-http2-max-frame-size | INFLUXDB3_OBJECT_STORE_HTTP2_MAX_FRAME_SIZE  (preferred) OBJECT_STORE_HTTP2_MAX_FRAME_SIZE  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-request-timeout | INFLUXDB3_OBJECT_STORE_REQUEST_TIMEOUT  (preferred) OBJECT_STORE_REQUEST_TIMEOUT  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-max-retries | INFLUXDB3_OBJECT_STORE_MAX_RETRIES  (preferred) OBJECT_STORE_MAX_RETRIES  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-retry-timeout | INFLUXDB3_OBJECT_STORE_RETRY_TIMEOUT  (preferred) OBJECT_STORE_RETRY_TIMEOUT  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-tls-allow-insecure | INFLUXDB3_OBJECT_STORE_TLS_ALLOW_INSECURE  (preferred) OBJECT_STORE_TLS_ALLOW_INSECURE  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --object-store-tls-ca | INFLUXDB3_OBJECT_STORE_TLS_CA  (preferred) OBJECT_STORE_TLS_CA  (deprecated; supported for backward compatibility) |

| Level | Description |
| --- | --- |
| Level | Description |
| error | Only errors |
| warn | Warnings and errors |
| info | Informational messages, warnings, and errors  (default) |
| debug | Debug information for troubleshooting, plus all above levels |
| trace | Very detailed tracing information, plus all above levels (produces high log volume) |

| Component | Description |
| --- | --- |
| Component | Description |
| influxdb3_write_buffer | Write buffer operations |
| influxdb3_wal | Write-ahead log operations |
| influxdb3_catalog | Catalog and schema operations |
| influxdb3_cache | Caching operations |

| Component | Description |
| --- | --- |
| Component | Description |
| influxdb3_enterprise | Enterprise-specific features |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --log-filter | INFLUXDB3_LOG_FILTER  (preferred) LOG_FILTER  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --log-destination | INFLUXDB3_LOG_DESTINATION  (preferred) LOG_DESTINATION  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --log-format | INFLUXDB3_LOG_FORMAT  (preferred) LOG_FORMAT  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --query-log-max-entries --query-log-size  (pre-3.11 name) | INFLUXDB3_QUERY_LOG_MAX_ENTRIES INFLUXDB3_QUERY_LOG_SIZE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-exporter | INFLUXDB3_TRACES_EXPORTER  (preferred) TRACES_EXPORTER  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-exporter-jaeger-agent-host | INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_HOST  (preferred) TRACES_EXPORTER_JAEGER_AGENT_HOST  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-exporter-jaeger-agent-port | INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_PORT  (preferred) TRACES_EXPORTER_JAEGER_AGENT_PORT  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-exporter-jaeger-service-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_SERVICE_NAME  (preferred) TRACES_EXPORTER_JAEGER_SERVICE_NAME  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-exporter-jaeger-trace-context-header-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME  (preferred) TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-jaeger-debug-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_DEBUG_NAME  (preferred) TRACES_EXPORTER_JAEGER_DEBUG_NAME  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-jaeger-tags | INFLUXDB3_TRACES_EXPORTER_JAEGER_TAGS  (preferred) TRACES_EXPORTER_JAEGER_TAGS  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --traces-jaeger-max-msgs-per-second | INFLUXDB3_TRACES_JAEGER_MAX_MSGS_PER_SECOND  (preferred) TRACES_JAEGER_MAX_MSGS_PER_SECOND  (deprecated; supported for backward compatibility) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --datafusion-num-threads | INFLUXDB3_DATAFUSION_NUM_THREADS |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --datafusion-max-parquet-fanout | INFLUXDB3_DATAFUSION_MAX_PARQUET_FANOUT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --datafusion-use-cached-parquet-loader | INFLUXDB3_DATAFUSION_USE_CACHED_PARQUET_LOADER |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --datafusion-config | INFLUXDB3_DATAFUSION_CONFIG |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --max-http-request-size | INFLUXDB3_MAX_HTTP_REQUEST_SIZE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --http-bind | INFLUXDB3_HTTP_BIND_ADDR |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --exec-mem-pool-size --exec-mem-pool-bytes  (pre-3.11 name) | INFLUXDB3_EXEC_MEM_POOL_SIZE INFLUXDB3_EXEC_MEM_POOL_BYTES  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --force-snapshot-mem-size --force-snapshot-mem-threshold  (pre-3.11 name) | INFLUXDB3_FORCE_SNAPSHOT_MEM_SIZE INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --force-snapshot-max-age | INFLUXDB3_FORCE_SNAPSHOT_MAX_AGE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --checkpoint-interval | INFLUXDB3_CHECKPOINT_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --wal-flush-interval | INFLUXDB3_WAL_FLUSH_INTERVAL |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --wal-files-per-snapshot --wal-snapshot-size  (pre-3.11 name) | INFLUXDB3_WAL_FILES_PER_SNAPSHOT INFLUXDB3_WAL_SNAPSHOT_SIZE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --wal-max-buffered-writes --wal-max-write-buffer-size  (pre-3.11 name) | INFLUXDB3_WAL_MAX_BUFFERED_WRITES INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --snapshotted-wal-files-to-keep | INFLUXDB3_SNAPSHOTTED_WAL_FILES_TO_KEEP INFLUXDB3_NUM_WAL_FILES_TO_KEEP  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --wal-replay-fail-on-error | INFLUXDB3_WAL_REPLAY_FAIL_ON_ERROR |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --wal-replay-concurrency-limit | INFLUXDB3_WAL_REPLAY_CONCURRENCY_LIMIT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --write-timestamp-max-past | INFLUXDB3_WRITE_TIMESTAMP_MAX_PAST |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --write-timestamp-max-future | INFLUXDB3_WRITE_TIMESTAMP_MAX_FUTURE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-row-limit | INFLUXDB3_COMPACTION_ROW_LIMIT INFLUXDB3_ENTERPRISE_COMPACTION_ROW_LIMIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-max-num-files-per-plan | INFLUXDB3_COMPACTION_MAX_NUM_FILES_PER_PLAN INFLUXDB3_ENTERPRISE_COMPACTION_MAX_NUM_FILES_PER_PLAN  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-gen2-duration | INFLUXDB3_COMPACTION_GEN2_DURATION INFLUXDB3_ENTERPRISE_COMPACTION_GEN2_DURATION  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-multipliers | INFLUXDB3_COMPACTION_MULTIPLIERS INFLUXDB3_ENTERPRISE_COMPACTION_MULTIPLIERS  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-cleanup-wait | INFLUXDB3_COMPACTION_CLEANUP_WAIT INFLUXDB3_ENTERPRISE_COMPACTION_CLEANUP_WAIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compaction-check-interval | INFLUXDB3_COMPACTION_CHECK_INTERVAL INFLUXDB3_ENTERPRISE_COMPACTION_CHECK_INTERVAL  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compacted-data-load-concurrency-limit | INFLUXDB3_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compacted-data-skip-file-index | INFLUXDB3_COMPACTED_DATA_SKIP_FILE_INDEX INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEX  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-dispatch-target | INFLUXDB3_COMPACTOR_DISPATCH_TARGET |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-dispatch-ack-timeout | INFLUXDB3_COMPACTOR_DISPATCH_ACK_TIMEOUT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-sweep-interval | INFLUXDB3_COMPACTOR_SWEEP_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-sweep-mode | INFLUXDB3_COMPACTOR_SWEEP_MODE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-sweep-grace | INFLUXDB3_COMPACTOR_SWEEP_GRACE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-sweep-auto-resume | INFLUXDB3_COMPACTOR_SWEEP_AUTO_RESUME |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --compactor-sweep-audit-retention | INFLUXDB3_COMPACTOR_SWEEP_AUDIT_RETENTION |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --gen1-duration | INFLUXDB3_GEN1_DURATION |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --preemptive-cache-age | INFLUXDB3_PREEMPTIVE_CACHE_AGE |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --file-cache-size --parquet-mem-cache-size  (pre-3.11 name) | INFLUXDB3_FILE_CACHE_SIZE INFLUXDB3_PARQUET_MEM_CACHE_SIZE  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --parquet-mem-cache-prune-percentage | INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_PERCENTAGE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --parquet-mem-cache-prune-interval | INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_INTERVAL |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --file-cache-recency --parquet-mem-cache-query-path-duration  (pre-3.11 name) | INFLUXDB3_FILE_CACHE_RECENCY INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --disable-file-cache --disable-parquet-mem-cache  (pre-3.11 name) --disable-data-file-cache  (pre-3.11 name) | INFLUXDB3_DISABLE_FILE_CACHE INFLUXDB3_DISABLE_PARQUET_MEM_CACHE ,  INFLUXDB3_DISABLE_DATA_FILE_CACHE  ( pre-3.11 names ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --table-index-cache-max-entries | INFLUXDB3_TABLE_INDEX_CACHE_MAX_ENTRIES |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --table-index-cache-concurrency-limit | INFLUXDB3_TABLE_INDEX_CACHE_CONCURRENCY_LIMIT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --last-value-cache-disable-from-history | INFLUXDB3_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY INFLUXDB3_ENTERPRISE_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --last-cache-eviction-interval | INFLUXDB3_LAST_CACHE_EVICTION_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --distinct-value-cache-disable-from-history | INFLUXDB3_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY INFLUXDB3_ENTERPRISE_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --distinct-cache-eviction-interval | INFLUXDB3_DISTINCT_CACHE_EVICTION_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --query-file-limit | INFLUXDB3_QUERY_FILE_LIMIT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --plugin-dir | INFLUXDB3_PLUGIN_DIR |

| Deployment | Default state | Configuration |
| --- | --- | --- |
| Deployment | Default state | Configuration |
| Docker images | Enabled | INFLUXDB3_PLUGIN_DIR=/plugins |
| DEB/RPM packages | Enabled | plugin-dir="/var/lib/influxdb3/plugins" |
| Binary/source | Disabled | No  plugin-dir  configured |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --plugin-repo | INFLUXDB3_PLUGIN_REPO |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --virtual-env-location | VIRTUAL_ENV |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --package-manager | INFLUXDB3_PACKAGE_MANAGER |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --restrict-plugin-triggers-to | INFLUXDB3_RESTRICT_PLUGIN_TRIGGERS_TO |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --trigger-retry-max-attempts | INFLUXDB3_TRIGGER_RETRY_MAX_ATTEMPTS |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --trigger-work-silence-timeout | INFLUXDB3_TRIGGER_WORK_SILENCE_TIMEOUT |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --processing-engine-restart-state-snapshot-interval | INFLUXDB3_PROCESSING_ENGINE_RESTART_STATE_SNAPSHOT_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --plugin-dir-only | INFLUXDB3_PLUGIN_DIR_ONLY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --import-attempt-server-side-copy | INFLUXDB3_IMPORT_ATTEMPT_SERVER_SIDE_COPY |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --replication-interval | INFLUXDB3_REPLICATION_INTERVAL INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --catalog-sync-interval | INFLUXDB3_CATALOG_SYNC_INTERVAL INFLUXDB3_ENTERPRISE_CATALOG_SYNC_INTERVAL  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --wait-for-running-ingester --wait-for-running-ingestor  (pre-3.11 name) | INFLUXDB3_WAIT_FOR_RUNNING_INGESTER INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR ,  INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTER ,  INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTOR  ( pre-3.11 names ) |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --conn-info | INFLUXDB3_CONN_INFO INFLUXDB3_ENTERPRISE_CONN_INFO  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --webui-session-secret | INFLUXDB3_WEBUI_SESSION_SECRET |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --webui-public-uri | INFLUXDB3_WEBUI_PUBLIC_URI |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --webui-cookie-secure | INFLUXDB3_WEBUI_COOKIE_SECURE |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --webui-openai-base-url | INFLUXDB3_WEBUI_OPENAI_BASE_URL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --num-cores | INFLUXDB3_NUM_CORES INFLUXDB3_ENTERPRISE_NUM_CORES  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --max-concurrent-queries | INFLUXDB3_MAX_CONCURRENT_QUERIES |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --datafusion-num-threads | INFLUXDB3_DATAFUSION_NUM_THREADS |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --num-database-limit | INFLUXDB3_NUM_DATABASE_LIMIT INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --num-table-limit | INFLUXDB3_NUM_TABLE_LIMIT INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --num-total-columns-per-table-limit | INFLUXDB3_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --gen1-lookback-duration | INFLUXDB3_GEN1_LOOKBACK_DURATION |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --retention-check-interval | INFLUXDB3_RETENTION_CHECK_INTERVAL |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --delete-grace-period | INFLUXDB3_DELETE_GRACE_PERIOD |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --hard-delete-default-duration | INFLUXDB3_HARD_DELETE_DEFAULT_DURATION |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --disable-telemetry-upload | INFLUXDB3_DISABLE_TELEMETRY_UPLOAD INFLUXDB3_TELEMETRY_DISABLE_UPLOAD  ( pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --telemetry-endpoint | INFLUXDB3_TELEMETRY_ENDPOINT |

| influxdb3 serve option | Environment variables |
| --- | --- |
| influxdb3 serve option | Environment variables |
| --tcp-listener-file-path | INFLUXDB3_TCP_LISTENER_FILE_PATH INFLUXDB3_TCP_LISTINER_FILE_PATH  ( misspelled pre-3.11 name ) |

| influxdb3 serve option | Environment variable |
| --- | --- |
| influxdb3 serve option | Environment variable |
| --admin-token-recovery-tcp-listener-file-path | INFLUXDB3_ADMIN_TOKEN_RECOVERY_TCP_LISTENER_FILE_PATH |

| Legacy name | New name |
| --- | --- |
| Legacy name | New name |
| --disable-parquet-mem-cache INFLUXDB3_DISABLE_PARQUET_MEM_CACHE --disable-data-file-cache INFLUXDB3_DISABLE_DATA_FILE_CACHE | --disable-file-cache INFLUXDB3_DISABLE_FILE_CACHE |
| --exec-mem-pool-bytes INFLUXDB3_EXEC_MEM_POOL_BYTES | --exec-mem-pool-size INFLUXDB3_EXEC_MEM_POOL_SIZE |
| --force-snapshot-mem-threshold INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD | --force-snapshot-mem-size INFLUXDB3_FORCE_SNAPSHOT_MEM_SIZE |
| --parquet-mem-cache-query-path-duration INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION | --file-cache-recency INFLUXDB3_FILE_CACHE_RECENCY |
| --parquet-mem-cache-size INFLUXDB3_PARQUET_MEM_CACHE_SIZE | --file-cache-size INFLUXDB3_FILE_CACHE_SIZE |
| --query-log-size INFLUXDB3_QUERY_LOG_SIZE | --query-log-max-entries INFLUXDB3_QUERY_LOG_MAX_ENTRIES |
| --wal-max-write-buffer-size INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE | --wal-max-buffered-writes INFLUXDB3_WAL_MAX_BUFFERED_WRITES |
| --wal-snapshot-size INFLUXDB3_WAL_SNAPSHOT_SIZE | --wal-files-per-snapshot INFLUXDB3_WAL_FILES_PER_SNAPSHOT |
| --wait-for-running-ingestor INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR | --wait-for-running-ingester INFLUXDB3_WAIT_FOR_RUNNING_INGESTER |

| Legacy name | New name |
| --- | --- |
| Legacy name | New name |
| INFLUXDB3_DB_DIR | INFLUXDB3_DATA_DIR |
| INFLUXDB3_NODE_IDENTIFIER_FROM_ENV | INFLUXDB3_NODE_ID_FROM_ENV |
| INFLUXDB3_NODE_IDENTIFIER_PREFIX | INFLUXDB3_NODE_ID |
| INFLUXDB3_NUM_WAL_FILES_TO_KEEP | INFLUXDB3_SNAPSHOTTED_WAL_FILES_TO_KEEP |
| INFLUXDB3_START_WITHOUT_AUTH | INFLUXDB3_WITHOUT_AUTH |
| INFLUXDB3_TCP_LISTINER_FILE_PATH | INFLUXDB3_TCP_LISTENER_FILE_PATH |
| INFLUXDB3_TELEMETRY_DISABLE_UPLOAD | INFLUXDB3_DISABLE_TELEMETRY_UPLOAD |

| Legacy name | New name |
| --- | --- |
| Legacy name | New name |
| INFLUXDB3_ENTERPRISE_API_UPLOAD_CHECK_INTERVAL | INFLUXDB3_API_UPLOAD_CHECK_INTERVAL |
| INFLUXDB3_ENTERPRISE_API_UPLOAD_CONCURRENT_STATUS_READS | INFLUXDB3_API_UPLOAD_CONCURRENT_STATUS_READS |
| INFLUXDB3_ENTERPRISE_CATALOG_SYNC_INTERVAL | INFLUXDB3_CATALOG_SYNC_INTERVAL |
| INFLUXDB3_ENTERPRISE_CLUSTER_ID | INFLUXDB3_CLUSTER_ID |
| INFLUXDB3_ENTERPRISE_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT | INFLUXDB3_COMPACTED_DATA_LOAD_CONCURRENCY_LIMIT |
| INFLUXDB3_ENTERPRISE_COMPACTED_DATA_SKIP_FILE_INDEX | INFLUXDB3_COMPACTED_DATA_SKIP_FILE_INDEX |
| INFLUXDB3_ENTERPRISE_COMPACTION_CHECK_INTERVAL | INFLUXDB3_COMPACTION_CHECK_INTERVAL |
| INFLUXDB3_ENTERPRISE_COMPACTION_CLEANUP_WAIT | INFLUXDB3_COMPACTION_CLEANUP_WAIT |
| INFLUXDB3_ENTERPRISE_COMPACTION_GEN2_DURATION | INFLUXDB3_COMPACTION_GEN2_DURATION |
| INFLUXDB3_ENTERPRISE_COMPACTION_MAX_NUM_FILES_PER_PLAN | INFLUXDB3_COMPACTION_MAX_NUM_FILES_PER_PLAN |
| INFLUXDB3_ENTERPRISE_COMPACTION_MULTIPLIERS | INFLUXDB3_COMPACTION_MULTIPLIERS |
| INFLUXDB3_ENTERPRISE_COMPACTION_ROW_LIMIT | INFLUXDB3_COMPACTION_ROW_LIMIT |
| INFLUXDB3_ENTERPRISE_COMPACTION_SNAPSHOTS_LIMIT | INFLUXDB3_COMPACTION_SNAPSHOTS_LIMIT |
| INFLUXDB3_ENTERPRISE_CONN_INFO | INFLUXDB3_CONN_INFO |
| INFLUXDB3_ENTERPRISE_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY | INFLUXDB3_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY |
| INFLUXDB3_ENTERPRISE_INTERNODE_BIND_ADDR | INFLUXDB3_INTERNODE_BIND_ADDR |
| INFLUXDB3_ENTERPRISE_INTERNODE_JWT_PRIMARY | INFLUXDB3_INTERNODE_JWT_PRIMARY |
| INFLUXDB3_ENTERPRISE_INTERNODE_JWT_SECONDARY | INFLUXDB3_INTERNODE_JWT_SECONDARY |
| INFLUXDB3_ENTERPRISE_INTERNODE_TLS_CA | INFLUXDB3_INTERNODE_TLS_CA |
| INFLUXDB3_ENTERPRISE_INTERNODE_TLS_CERT | INFLUXDB3_INTERNODE_TLS_CERT |
| INFLUXDB3_ENTERPRISE_INTERNODE_TLS_KEY | INFLUXDB3_INTERNODE_TLS_KEY |
| INFLUXDB3_ENTERPRISE_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY | INFLUXDB3_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY |
| INFLUXDB3_ENTERPRISE_LICENSE_EMAIL | INFLUXDB3_LICENSE_EMAIL |
| INFLUXDB3_ENTERPRISE_LICENSE_FILE | INFLUXDB3_LICENSE_FILE |
| INFLUXDB3_ENTERPRISE_LICENSE_TYPE | INFLUXDB3_LICENSE_TYPE |
| INFLUXDB3_ENTERPRISE_MODE | INFLUXDB3_MODE |
| INFLUXDB3_ENTERPRISE_NUM_CORES | INFLUXDB3_NUM_CORES |
| INFLUXDB3_ENTERPRISE_NUM_DATABASE_LIMIT | INFLUXDB3_NUM_DATABASE_LIMIT |
| INFLUXDB3_ENTERPRISE_NUM_TABLE_LIMIT | INFLUXDB3_NUM_TABLE_LIMIT |
| INFLUXDB3_ENTERPRISE_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT | INFLUXDB3_NUM_TOTAL_COLUMNS_PER_TABLE_LIMIT |
| INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL | INFLUXDB3_REPLICATION_INTERVAL |
| INFLUXDB3_ENTERPRISE_USE_PACHA_TREE | INFLUXDB3_USE_PACHA_TREE |
| INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_COMPACTOR | INFLUXDB3_WAIT_FOR_RUNNING_COMPACTOR |
| INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTER | INFLUXDB3_WAIT_FOR_RUNNING_INGESTER |
| INFLUXDB3_ENTERPRISE_WAIT_FOR_RUNNING_INGESTOR | INFLUXDB3_WAIT_FOR_RUNNING_INGESTOR |
