Skip to content

Configuration reference

Siglake rename

Product names, commands and links were normalized during the Siglake migration. Retained generation dates and commit IDs below identify the archived pre-rename source and binaries; they are not new build evidence.

CLI flags and SIGLAKE_* environment variables configure Siglake. If both set the same option, the CLI flag takes precedence. Siglake's own OTLP export is configured with the standard OTEL_* variables instead, under Observability.

Object-store credentials use the provider's standard environment variables. For example, S3-compatible stores use AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION and AWS_ENDPOINT_URL.

Core addressing

Every role needs to know where the warehouse and catalog are.

Variable Default Meaning
SIGLAKE_WAREHOUSE_URL (local dir) s3://bucket/prefix, gs://…, file://….
SIGLAKE_CATALOG_URI SQLite under the warehouse postgres://user:pass@host/db or sqlite://path?mode=rwc.
SIGLAKE_DATA_DIR ./data Local root for siglake-query-server. The siglake binary uses the global --data-dir flag instead. Consulted only when no warehouse URL is set.

Authentication

Variable Applies to Default Meaning
SIGLAKE_AUTH_TOKENS ingester None (open) Comma-separated bearer tokens.
SIGLAKE_QUERY_TOKENS query None (open) Comma-separated bearer tokens.
SIGLAKE_OIDC_ISSUER both None (disabled) OpenID Connect (OIDC) issuer URL. Takes precedence over tokens.
SIGLAKE_OIDC_AUDIENCE both None Expected aud claim. Required with an issuer.
SIGLAKE_OIDC_TENANT_CLAIM both None JSON Web Token (JWT) claim carrying the tenant ID. Setting it makes the claim mandatory on both boundaries. Siglake refuses a missing, blank, non-string, overlength or invalid claim with 403 before routing. Ingest also refuses a conflicting X-Scope-OrgID. See Multi-tenancy.
SIGLAKE_ALLOWED_TENANTS ingester None (any tenant) Comma-separated tenant allowlist. Set when the tenant set is known.
SIGLAKE_QUERY_ALLOWED_TENANTS query None (any routed tenant) Comma-separated exact allow-list for verified tenant claims. A non-empty value requires SIGLAKE_OIDC_TENANT_CLAIM and stays independent from SIGLAKE_ALLOWED_TENANTS.
SIGLAKE_MAX_TENANTS ingester 0 (unbounded) Distinct tenants to create before refusing new ones.
SIGLAKE_INGEST_MAX_LANES ingester 0 (unbounded) Distinct (tenant, index) backpressure lanes to create before refusing new ones.
SIGLAKE_QUERY_TLS_CERT query None (HTTP only) PEM certificate-chain path. Pair with SIGLAKE_QUERY_TLS_KEY to enable HTTPS.
SIGLAKE_QUERY_TLS_KEY query None (HTTP only) PEM file containing the private key for SIGLAKE_QUERY_TLS_CERT.

Ingest

Variable Default Meaning
SIGLAKE_INGESTER_ID (generated) Identifies this ingester in segment file names.
SIGLAKE_INGEST_MAX_BODY_BYTES 16777216 Request body cap. Axum's 2 MB default rejects normal shipper batches.
SIGLAKE_INGEST_BACKPRESSURE_CAPACITY 1024 Per-tenant lane depth. 0 reverts to the mutex-serialized path.
SIGLAKE_INGEST_BACKPRESSURE_SHARDS 1 Writer tasks per tenant.
SIGLAKE_INGEST_GROUP_COMMIT_MS 0 Group-commit accumulation window. Trades ack latency for fsync amortization.
SIGLAKE_INGEST_RATE_PER_SEC 0 (off) Steady-state token-bucket rate.
SIGLAKE_INGEST_RATE_BURST 0 Bucket capacity.
SIGLAKE_INGEST_RATE_REDIS_URL None Share the budget across replicas.
SIGLAKE_INGEST_RATE_REDIS_PREFIX siglake:rb Redis prefix. Use a unique one per deployment.
SIGLAKE_INGEST_MEM_LIMIT_MIB 0 (off) RSS ceiling for the shed-load breaker.
SIGLAKE_INGEST_MEM_SAMPLE_SECS 60 RSS sampling interval.
SIGLAKE_OTLP_GRPC_LISTEN 0.0.0.0:4317 OTLP/gRPC logs and traces listener. Use --disable-otlp-grpc to turn it off.
SIGLAKE_ES_COMPAT_VERSION 7.10.2 Version advertised by the Elasticsearch-compatible root response.

WAL

Variable Default Meaning
SIGLAKE_WAL_MIRROR_PREFIX wal-mirror with a warehouse URL; otherwise off Mirror WAL segments under this prefix. Set an empty value to turn mirroring off.
SIGLAKE_WAL_ACTIVE_MIRROR_INTERVAL_SECS 0 Also mirror the open segment every N seconds. Successful uploads target N-second PVC-loss exposure only for filesystem-drain recovery; acknowledgements do not wait, so upload delays or failures extend it. Catalog-claim recovery reconciles sealed objects only and gains no active-snapshot target. See monitoring.
SIGLAKE_WAL_IDENTITY_REFRESH_SECS 30 Seconds between table-UUID checks for each ingest lane. 0 disables refresh after the lane opens. A shorter interval costs one catalog metadata read per lane per interval. See index management for the acknowledgement window during index recreation.
SIGLAKE_MIRROR_SYNC_INTERVAL_SECS None Mirror sweep cadence.
SIGLAKE_MIRROR_LEDGER_RECLAIM / compactor.mirrorLedgerReclaim off Let a filesystem drain mark each segment it commits in the wal_segments ledger, so committed retention deletes that segment's mirror object and then its row. 1, true, yes or on turn it on; any other value, including an unset variable, leaves it off. Marking needs a catalog URI, a warehouse URL and a non-empty mirror prefix: without all three the compactor warns and keeps draining while the prefix grows. A catalog-claim drain reclaims without this knob. The operator has no field for it; set it through spec.extraEnv. See Committed retention purges drained mirror objects.

Segment roll thresholds are flags, not env vars: --wal-max-events (4096) and --wal-max-age-secs (5). The age bound is the freshness floor.

Drain and commit

Variable Default Meaning
SIGLAKE_DRAIN_CONCURRENCY Commits kept in flight continuously.
SIGLAKE_DRAIN_FETCH_CONCURRENCY Parallel segment fetches.
SIGLAKE_DRAIN_CYCLE_BUDGET_SECS Per-pass budget, so maintenance keeps its cadence.
SIGLAKE_DRAIN_INFLIGHT_BUDGET_MB Byte budget for in-flight commits.
SIGLAKE_DRAIN_WATCHDOG_SECS Wedge detection.
SIGLAKE_COMMIT_BATCH_TARGET_MB 32 to 64 Commit-accumulation target. 0 opts out to commit-per-segment.
SIGLAKE_COMMIT_BATCH_MAX_AGE_SECS 10 Age floor forcing a commit.
SIGLAKE_SIDE_AGG_WRITE_BEHIND 0 Move the side-aggregate read-modify-write off the commit path.
SIGLAKE_DELETE_TASKS on Run queued predicate-delete sweeps during idle compactor cycles. 0, off, false, or no disables execution.
SIGLAKE_SNAPSHOT_EXPIRE_INTERVAL_SECS 60 Snapshot-expiry cadence. 0 disables automatic expiry.
SIGLAKE_SNAPSHOT_RETAIN_LAST 100 Number of recent snapshots retained by automatic expiry.

Compaction

Variable Default Meaning
SIGLAKE_COMPACTOR_LEVELED (unset = on) LSM leveled compaction is the default. 0, off, or false selects the legacy flat whole-partition pass.
SIGLAKE_COMPACTOR_LEVEL_CEILINGS_MB 128,1024,8192 Ascending level ceilings.
SIGLAKE_COMPACTOR_LEVEL_TRIGGER_FILES 8 Files at a level before it's eligible.
SIGLAKE_COMPACTOR_LEVEL_MAX_FANIN 64 Max files merged per pass.
SIGLAKE_COMPACTOR_LEVEL_MAX_GEN 4 Write-amplification cap. 0 disables.
SIGLAKE_COMPACTOR_LEVEL_INTERVALS_SECS 10,60,3600 Per-level pass cadence.
SIGLAKE_COMPACTOR_MAX_OVERLAP_DEPTH 12 Depth trigger. 0 disables.
SIGLAKE_COMPACTOR_MAX_SEALED_FOR_RECLUSTER 256 Backlog gate above which maintenance yields.
SIGLAKE_COMPACTOR_BACKPRESSURE_COMPACT_EVERY 4 Run one throttled merge every N backlogged cycles.
SIGLAKE_COMPACTOR_CATALOG_CLAIM off Use the wal_segments SQL claim table instead of local sealed/. Required for multi-pod compactors.
SIGLAKE_COMPACTOR_ID (generated) Identifies this compactor in claims.
SIGLAKE_MERGE_CHUNK_ROWS Row-chunk size for the page-bounded merge.
SIGLAKE_PARQUET_TARGET_ROW_GROUP_BYTES 268435456 (256 MiB) Target uncompressed decoded bytes per Parquet row group. The writer divides this value by a row size measured on the first batch it writes, then clamps the result to 128 Ki through 4 Mi rows, so the target sets a row count rather than a byte cap. 0 and unparseable values fall back to the default. Since 0.2.0, it sizes leveled-compaction, re-cluster, and streaming delete-rewrite output as well as ingest flush output, and those paths measure row size differently from ingest flush: see Two estimators read one row-group target. The open row group is held decoded in whole Arrow buffers, so resident bytes run over the target; on the merge-side fixture they reach about twice it. No chart value renders it; set it for compactor writers through compactor.extraEnv.
SIGLAKE_AGG_SHORT_SCAN_INTERVAL_SECS 900 How often the maintenance pass censuses each maintained table for a group-count aggregate short of total-records. 0, off, disabled, or never switch the census off.
SIGLAKE_AGG_SHORT_REPAIR off Let the census rebuild a short aggregate. 1, true, yes, or on enable it; any other value leaves the census reporting only. Each table incarnation gets at most four automatic scans: the first retry waits 15 minutes, then later retries wait one hour and four hours. A successful manual rebuild clears applicable attempt history after publication. See Rebuild a short group-count aggregate with durable backoff.
SIGLAKE_AGG_SHORT_REPAIR_MAX_TABLES 1 Tables one census pass may rebuild when repair is on. A value below 1 or an unparseable value falls back to 1.
SIGLAKE_INLINE_COVERAGE_SCAN_INTERVAL_SECS 900 How often the maintenance pass censuses each maintained table for an inline aggregate object that cannot prove coverage of the current snapshot. 0, off, disabled, or never switch the census off. The census reads only; it reports on siglake_inline_coverage_unproven and SiglakeInlineCoverageUnproven, and the repair stays siglake rebuild-time-aggregates. No chart value renders it; set it through compactor.extraEnv.

Catalog claim

The catalog claim mechanism protects a write-ahead log (WAL) segment from being drained by two compactor pods. Two settings control stale catalog claims. Catalog claims have no renewable lease or claim time to live (TTL). SIGLAKE_CLAIM_RECLAIM_MAX_AGE_SECS controls when recovery considers a processing claim abandoned. SIGLAKE_CLAIM_RECLAIM_INTERVAL_SECS controls how often recovery checks.

Catalog claim settings

These settings control recovery and retention for catalog-claim drains.

Variable Default Meaning
SIGLAKE_CLAIM_RECLAIM_MAX_AGE_SECS 900 Age of a processing claim before another drain may reclaim it. 0 and unparseable values resolve to 900, and the compactor warns once per process; positive values below 900 are honored. Size this from observed append latency, not claim latency.
SIGLAKE_CLAIM_RECLAIM_INTERVAL_SECS 60 Reclaim-sweep cadence. 0 means every drain cycle, not off; recovery from a dead worker cannot be disabled. Unparseable values resolve to 60.
SIGLAKE_COMMITTED_RETENTION_SECS / compactor.committedRetentionSecs 86400 Purge successfully drained mirror objects and catalog rows after 24 hours. 0 disables purging; non-zero values are floored at 901 seconds. See Mirror reconciliation and retention before changing retention.

Indexing and promotion

Variable Default Meaning
SIGLAKE_INDEX_AT_FLUSH inline 0 defers raw-text index build to compaction.
SIGLAKE_INVERTED_INDEX on 0 turns off per-file inverted indexes. Any other value, including an unset variable, leaves them on.
SIGLAKE_INDEX_REBUILD off 1 turns on the pass that registers Puffin inverted indexes for rewritten files after a compaction or delete-task rewrite. Any other value, including an unset variable, leaves it off. Queries read the indexes a file already has either way.
SIGLAKE_INDEX_FOOTER_MAX_BYTES 1048576 (1 MiB) Threshold above which an index goes to a Puffin sidecar.
SIGLAKE_INDEX_LOAD_CONCURRENCY 4 Cold per-file inverted-index loads a process runs at once, counted across every warehouse it reads. The permit covers the Puffin blob fetch and decode and the footer-KV decode; a warm parsed-index cache hit takes no permit. 0 and unparseable values fall back to 4.
SIGLAKE_SEGMENTED_INDEX_WRITES off Siglake 0.2.0 and later. 1 makes the compactor's streaming re-cluster write segmented (seg2) text indexes. See Segmented text indexes: the seg2 write and read switches.
SIGLAKE_SEGMENTED_INDEX_READS off Siglake 0.2.0 and later. 1, true, yes or on let a query answer a text predicate from a seg2 sidecar.
SIGLAKE_SEGMENTED_INDEX_DIRECTORY_CACHE_MAX_BYTES 67108864 (64 MiB) Process-wide byte budget for seg2 directories held between queries. 0 keeps nothing. Unparseable values fall back to the default.
SIGLAKE_SEGMENTED_INDEX_RANGE_CONCURRENCY <!-- BEGIN GENERATED SEGMENTED RANGE CONCURRENCY DEFAULT -->10<!-- END GENERATED SEGMENTED RANGE CONCURRENCY DEFAULT --> Siglake 0.2.0 and later. Maximum number of concurrent range fetches within one seg2 lookup stage, rather than a process-wide request budget. It leaves seg2 reads disabled unless SIGLAKE_SEGMENTED_INDEX_READS is on. Unset, 0, and unparseable values fall back to 10.
SIGLAKE_AUTO_PROMOTE_MIN_PCT 0 (off) Percent of sampled rows an attribute must appear in before automatic promotion.
SIGLAKE_AUTO_PROMOTE_MAX_COLUMNS 16 Total promoted-column cap.
SIGLAKE_AUTO_PROMOTE_SAMPLE_FILES 4 Live files one sampling pass reads, newest first. Clamped to 1 through 64: 0 resolves to one file, and an unparseable value falls back to 4.
SIGLAKE_AUTO_PROMOTE_SAMPLE_ROWS 4096 Rows the pass reads from each of those files. Clamped to 256 through 65,536; unparseable values fall back to 4096.

SIGLAKE_INDEX_FOOTER_MAX_BYTES is the per-column threshold. A serialized index within it rides in the Parquet footer's metadata. A column whose index exceeds it goes to a Puffin sidecar instead, and the rewrite commit does not register that sidecar.

A streamed rewrite writes no footer inverted index at all, so every merge past the in-memory caps leaves its output unindexed until something registers a sidecar. That something is the post-rewrite pass SIGLAKE_INDEX_REBUILD turns on. The pass skips a file and column whose Parquet footer already carries the index or whose table metadata already registers a blob for the pair. Reads do not depend on the switch: a query uses whatever index a file carries and scans a file with none. Post-compaction index rebuilding gives the cost behind that default.

Segmented text indexes: the seg2 write and read switches

SIGLAKE_SEGMENTED_INDEX_WRITES and SIGLAKE_SEGMENTED_INDEX_READS move independently, and both are off by default. Writing a seg2 sidecar does not make a query read one, and reading is safe on a table no writer has touched.

Set writes to 1 and the compactor's streaming re-cluster builds a segmented (seg2) text index one Parquet row group at a time and registers it with the rewrite commit. Any other value, including an unset variable, leaves it off. The in-memory merge arm, ingest flush and delete-task rewrites write v1 indexes either way.

Set reads to 1, true, yes or on and a query answers a text predicate from a seg2 sidecar with partial reads. Any other value leaves reads off, and a file whose only text index is seg2 is scanned. The value is read once per process, and nothing consults the seg2 directory cache while reads are off. That cache budget, SIGLAKE_SEGMENTED_INDEX_DIRECTORY_CACHE_MAX_BYTES, is counted across every warehouse the process reads; at 0 every lookup rereads the trailer and the directory.

Neither switch has a chart value or an operator field; set them through compactor.extraEnv and query.extraEnv. Segmented text indexes (seg2) has the format and the metadata names.

Auto-promotion sampling bounds

SIGLAKE_AUTO_PROMOTE_SAMPLE_FILES and SIGLAKE_AUTO_PROMOTE_SAMPLE_ROWS decide what a promotion is inferred from and what the sampling pass costs. Their product is the number of residual JSON documents one pass parses, every 300 seconds, on a compactor whose SIGLAKE_AUTO_PROMOTE_MIN_PCT is above zero. At the defaults that is 4 files x 4,096 rows. Sample more rows when a wanted attribute sits below the threshold only because the sample is small; raise the file count when recent files differ in shape. Neither bound turns promotion off: SIGLAKE_AUTO_PROMOTE_MIN_PCT=0 does, and SIGLAKE_AUTO_PROMOTE_MAX_COLUMNS=0 leaves the pass inert with the threshold in place. Neither has a chart value; set them through compactor.extraEnv.

Query

Variable Default Meaning
SIGLAKE_QUERY_BIND 0.0.0.0:8089 API bind address.
SIGLAKE_QUERY_METRICS_BIND 0.0.0.0:9105 Metrics bind address.
SIGLAKE_QUERY_MAX_ROWS 1000000 Server-side cap on rows returned. It can only tighten the per-tier limits below. See Row caps.
SIGLAKE_QUERY_EXEC_THREADS max(2, CPUs - 2) Worker count for the dedicated plan-execution runtime. 0 disables offload.
SIGLAKE_QUERY_PEERS None Comma-separated worker base URLs. Enables distributed coordination.
SIGLAKE_QUERY_COORDINATOR_TOKEN None Bearer token the coordinator presents to peers.
SIGLAKE_JOBS_POSTGRES_URI None (in-memory) Postgres URI for batch-job state that survives query-pod restarts.
SIGLAKE_QUERY_WAL_BUFFER_DIR None (disabled) WAL root whose sealed and processing segments are unioned into events and each managed index the query references.
SIGLAKE_QUERY_AUDIT_DISABLED false Disable writes to the query_audit table. Intended for smoke environments.
SIGLAKE_QUERY_SCAN_PARTITIONS (DataFusion default) Source partitions from the custom scan.
SIGLAKE_QUERY_SCAN_READER_BUDGET (derived) Aggregate object-store reader budget per query.
SIGLAKE_QUERY_SCAN_FILE_CONCURRENCY (derived) Per-partition read concurrency.
SIGLAKE_QUERY_SCAN_BATCH_SIZE (reader default) Target Arrow batch size.
SIGLAKE_REVERSED_CHUNK_ROWS 32768 Chunk size for reversed (non-declared-direction) decode.
SIGLAKE_ORDERED_MERGE_MAX_FANIN 4 × CPUs, clamped to 16 through 64 Open streams per partition in the k-way ordered merge. The default scales with the node. An explicit value is not clamped; Siglake ignores values below 2.
SIGLAKE_ORDERED_MERGE_GLOBAL_FANIN 8 × CPUs, clamped to 32 through 128 Whole-scan budget for all per-partition merge streams. A scan that needs more reports global_fan_in instead of early stopping. See Ordered browses are slow. An explicit value follows the same rules as the per-partition cap.
SIGLAKE_BUFFER_DELTA_MAX_BYTES Cap on WAL-buffer data folded into fast paths.
SIGLAKE_GROUP_COUNT_FAST_PATH on Toggle the group-count fast path.
SIGLAKE_TYPED_GROUP_COUNT_CARDINALITY 1024 Whole-table distinct-count cap for exact group counts on typed measurement columns admitted by inference or rebuild-group-counts --admit-typed-columns. Declared dimensions use SIGLAKE_TABLE_GROUP_COUNT_CARDINALITY instead. Raising this cap increases per-commit delta size and counting work.

Row caps

SIGLAKE_QUERY_MAX_ROWS is not the only bound on rows returned. Each priority tier carries its own default and its own ceiling, and the variable is folded into the ceiling only:

Tier Rows returned when the request asks for none Tier ceiling
interactive (the priority a request gets if it sets none) 10,000,000 10,000,000
batch 100,000 1,000,000,000

The cap a request actually runs under is

effective_ceiling = min(tier ceiling, SIGLAKE_QUERY_MAX_ROWS)
resolved_cap      = min(limits.max_rows_returned or the tier default, effective_ceiling)

so the variable can only tighten those numbers, never loosen them. Two consequences an operator raising it should expect:

  • Raising it above 10000000 changes nothing on the interactive tier, and above 1000000000 nothing on the batch tier: the tier ceiling wins. At the shipped default of 1000000 the variable is the binding interactive cap, so it is the one to raise for a records response that came back truncated up to 10,000,000. Above that ceiling, the request needs a smaller result rather than a larger cap. It is also one possible binding ceiling on a Jaeger read refused with 413; the Jaeger-specific trace, span-row, Arrow-byte, and name ceilings instead follow the admission reservation, which moves with SIGLAKE_QUERY_ADMISSION_BUDGET_BYTES, the share divisor, and pod memory.
  • A batch request that sets no limits.max_rows_returned resolves to 100,000 rows however high the variable is set, because the binding number there is the tier default and the variable does not touch defaults. A batch caller who wants more has to ask per request; that ask is then clamped by the batch ceiling and by this variable.

Clipped-limit admission ramp

An unordered LIMIT scan starts one partition and widens the admitted set each time the admitted partitions have emitted their own number of batches or one of them ends. SIGLAKE_SCAN_CLIPPED_ADMISSION_WAVE is the factor it widens by, 2 by default, so the admitted count doubles per step and the scan reaches full fan-out in log2(partitions) steps. 0 turns the ramp off and starts every partition at once. 1 resolves to 2, and an unparseable value falls back to 2. The ramp is scheduling only: a partition that waits still reads every row it would have read, and the limit still applies above the residual filter, so no qualifying row is lost. It has no chart value or operator field; set it through query.extraEnv. Pruning names the two metrics that report it.

Guardrails

Variable Default Meaning
SIGLAKE_QUERY_CEILING_ROWS_SCANNED 100000000 Interactive-query row-scan ceiling enforced by the mid-flight breaker.
SIGLAKE_QUERY_CEILING_BYTES_SCANNED_GB 100 (GiB) Interactive-query estimated-byte ceiling enforced before execution.
SIGLAKE_QUERY_ADMISSION_BUDGET_BYTES Query memory-pool limit (4 GiB fallback) Per-process memory-admission budget for interactive queries.
SIGLAKE_QUERY_ADMISSION_DECOMPRESSION_FACTOR 4 Multiplier from estimated compressed scan bytes to admission reservation.
SIGLAKE_QUERY_ADMISSION_MAX_SHARE_DIVISOR 4 (minimum 1) The largest share of the admission budget one query may reserve is the budget divided by this value. Values below 1 are ignored and use the default. An admitted batch job holds exactly one share until it finishes or is cancelled. The default is four rather than two because the memory pool bounds memory; admission prevents a thundering herd of heavy scans.
SIGLAKE_QUERY_ADMISSION_WAIT_MS 2000 Time to wait for admission budget before returning HTTP 429.
SIGLAKE_QUERY_MEMORY_POOL_TRACK_CONSUMERS on Wrap the pool in DataFusion's TrackConsumersPool so GET /debug/memory-pool can name the ten largest live consumers and the idle-residual warning can name its holder. 0, off, false, or no disable tracking. Tracking adds a second mutex operation per grow or shrink; leave it on unless measuring that cost.

Spill

Sorts and aggregates that reach the shared memory pool spill to local disk instead of growing until the kernel intervenes; see Execution tiers. The parsing rules differ from the Helm chart's packaged values, which are described under Query spill and ephemeral storage.

Variable Default Meaning
SIGLAKE_QUERY_SPILL_DIR (OS temp dir) Directory DataFusion writes spill files to. Empty or unset leaves DataFusion's default, the process temp directory (TMPDIR, else /tmp). The chart sets /var/lib/siglake/spill and mounts a size-limited emptyDir there.
SIGLAKE_QUERY_SPILL_MAX_BYTES (DataFusion default) Byte cap on the spill directory. Missing, 0, and unparseable values keep DataFusion's own default cap, 100 GiB at the DataFusion 53.1 release Siglake pins. A query whose spill would cross the cap returns 503 with Retry-After: 5, the same answer as a memory-pool refusal. The chart sets 8589934592 (8 GiB) so the cap sits below the emptyDir size limit and the pod's ephemeral-storage limit.

Caches

Variable Meaning
SIGLAKE_FOOTER_CACHE_CAP Per-file footer cache capacity.
SIGLAKE_AGG_RESULT_CACHE_CAP Aggregate result cache capacity.
SIGLAKE_DATA_FILE_LIST_CACHE_CAP File-list cache capacity.
SIGLAKE_OBJECT_CACHE_BYTES Byte-range object cache budget. 0 disables.
SIGLAKE_ICEBERG_FOOTER_CACHE_MAX_ENTRIES Iceberg-layer footer cache.
SIGLAKE_ICEBERG_METADATA_CACHE_TTL_SECS Table-metadata cache TTL.

SIGLAKE_QUERY_RESULT_CACHE=off is a measurement knob

It disables result-level memoization process-wide. Use it when benchmarking. With result caches on, repeated queries measure cached reads. Do not set it as a tuning parameter in production.

Result caches are snapshot-keyed and never TTL-expired, by standing invariant.

Observability

Variable Meaning
RUST_LOG Log filter, e.g. info,siglake=debug; filtered output is written to stderr.
SIGLAKE_LOG_EXEC_PLANS Log physical plans. Verbose; for debugging.

OTLP export of Siglake's own logs and traces

Since 0.2.0, every Siglake process can export its own log records and spans over OTLP/HTTP. Export is off until OTEL_EXPORTER_OTLP_ENDPOINT is set, and metrics are not part of it: they stay on /metrics for Prometheus. Each variable is read once, at startup. Export Siglake's own logs and traces has the deployment steps and the collector configuration an OTLP-only backend needs.

Variable Default Meaning
OTEL_EXPORTER_OTLP_ENDPOINT None (export off) OTLP/HTTP base endpoint, for example http://otel-collector:4318. Unset or empty builds no exporter.
SIGLAKE_OTEL_DISABLED unset (export follows the endpoint) 1 or true turns export off with the endpoint left in place.
OTEL_TRACES_EXPORTER unset (spans export) none or off drops spans. Log records keep exporting.
OTEL_LOGS_EXPORTER unset (log records export) none or off drops log records. Spans keep exporting.
OTEL_SERVICE_NAME siglake-<component> service.name. The component is ingest, compactor, query, operator or cli, taken from the binary and its subcommand.
OTEL_SERVICE_NAMESPACE None service.namespace.
OTEL_RESOURCE_ATTRIBUTES None Further resource attributes as k=v,k=v.
OTEL_EXPORTER_OTLP_HEADERS None Exporter headers as k=v,k=v, such as the credential a hosted backend requires.
HOSTNAME, HOST None host.name. HOSTNAME wins when both are set.
POD_NAME None service.instance.id.

RUST_LOG selects which log records export, the same filter it applies to the console. HOSTNAME, HOST and POD_NAME are not Siglake variables: a Kubernetes pod already carries HOSTNAME, and POD_NAME is one you inject yourself with the downward API.


Full inventory

Every SIGLAKE_* variable referenced anywhere in the public source tree, plus the OTEL_* variables the telemetry initializer reads, with the crates that read each one. A crate is named by itself; the vendored Iceberg forks are named by their third_party/<fork> path. Variables not documented above are internal tuning knobs or test hooks. Treat them as unstable.

The generator takes an OTEL_* name only from a quoted lookup in the source, so the table holds the standard OpenTelemetry environment and not the unrelated constants the load generator names OTEL_*. HOSTNAME, HOST and POD_NAME are read too and carry no prefix the generator can match, so they appear in OTLP export of Siglake's own logs and traces above and not here.

This section is generated

Regenerate with ./scripts/gen-reference.sh /path/to/siglake. Generated from Siglake commit 8a517387 on 2026-10-02.

Variable Referenced in
SIGLAKE_AGG_FOLD_BUSY_BACKLOG siglake-compactor
SIGLAKE_AGG_FOLD_INTERVAL_SECS siglake-compactor
SIGLAKE_AGG_RESULT_CACHE_CAP siglake-storage
SIGLAKE_AGG_SHORT_REPAIR siglake-compactor
SIGLAKE_AGG_SHORT_REPAIR_MAX_TABLES siglake-compactor
SIGLAKE_AGG_SHORT_SCAN_INTERVAL_SECS siglake-compactor
SIGLAKE_ALLOWED_TENANTS siglake-cli, siglake-operator
SIGLAKE_APPROXIMATE_GROUP_COUNTS siglake-query-server
SIGLAKE_AUTH_TOKENS siglake-cli, siglake-operator
SIGLAKE_AUTO_PROMOTE_MAX_COLUMNS siglake-compactor
SIGLAKE_AUTO_PROMOTE_MIN_PCT siglake-compactor, siglake-operator
SIGLAKE_AUTO_PROMOTE_SAMPLE_FILES siglake-compactor
SIGLAKE_AUTO_PROMOTE_SAMPLE_ROWS siglake-compactor
SIGLAKE_BUFFER_DELTA_MAX_BYTES siglake-query-server
SIGLAKE_BUFFER_DELTA_MAX_SEGMENTS siglake-query-server
SIGLAKE_BUILD_VERSION siglake-core
SIGLAKE_CATALOG_URI siglake-cli, siglake-operator, siglake-query-server, siglake-storage
SIGLAKE_CLAIM_RECLAIM_INTERVAL_SECS siglake-compactor
SIGLAKE_CLAIM_RECLAIM_MAX_AGE_SECS siglake-compactor
SIGLAKE_COMMITTED_RETENTION_SECS siglake-compactor
SIGLAKE_COMMIT_BATCH_MAX_AGE_SECS siglake-cli
SIGLAKE_COMMIT_BATCH_TARGET_MB siglake-cli
SIGLAKE_COMMIT_CONCURRENCY siglake-storage
SIGLAKE_COMMIT_FORCE_TIMEOUT_SECS siglake-cli, siglake-ingest
SIGLAKE_COMPACTOR_BACKPRESSURE_COMPACT_EVERY siglake-compactor
SIGLAKE_COMPACTOR_BACKPRESSURE_MAX_BINS siglake-compactor
SIGLAKE_COMPACTOR_BIN_CONCURRENCY siglake-compactor, siglake-operator, siglake-storage
SIGLAKE_COMPACTOR_CATALOG_CLAIM siglake-cli
SIGLAKE_COMPACTOR_CATALOG_CLAIM_BATCH siglake-cli
SIGLAKE_COMPACTOR_CONCURRENT_RECLUSTER siglake-compactor
SIGLAKE_COMPACTOR_FS_CLAIM_MAX_BYTES siglake-cli, siglake-compactor
SIGLAKE_COMPACTOR_FS_CLAIM_MAX_SEGMENTS siglake-cli, siglake-compactor
SIGLAKE_COMPACTOR_ID siglake-cli
SIGLAKE_COMPACTOR_LEVELED siglake-cli
SIGLAKE_COMPACTOR_LEVEL_CEILINGS_MB siglake-cli
SIGLAKE_COMPACTOR_LEVEL_INTERVALS_SECS siglake-cli
SIGLAKE_COMPACTOR_LEVEL_MAX_FANIN siglake-cli
SIGLAKE_COMPACTOR_LEVEL_MAX_GEN siglake-cli
SIGLAKE_COMPACTOR_LEVEL_TRIGGER_FILES siglake-cli
SIGLAKE_COMPACTOR_MAX_OVERLAP_DEPTH siglake-cli
SIGLAKE_COMPACTOR_MAX_SEALED_FOR_RECLUSTER siglake-compactor
SIGLAKE_COMPACTOR_POISON_ATTEMPTS siglake-cli, siglake-compactor
SIGLAKE_COMPACTOR_PREEMPT_SEALED_MIN siglake-compactor
SIGLAKE_COMPACTOR_ROLE siglake-cli
SIGLAKE_DATA_DIR siglake-query-server
SIGLAKE_DATA_FILE_LIST_CACHE_CAP siglake-storage
SIGLAKE_DELETE_REWRITE_INRAM_MAX_MB siglake-storage
SIGLAKE_DELETE_REWRITE_INRAM_MAX_ROWS siglake-storage
SIGLAKE_DELETE_TASKS siglake-cli, siglake-operator, siglake-query-server
SIGLAKE_DIST_BROWSE_MIN_SCAN_ROWS siglake-query-server
SIGLAKE_DIST_SCAN_LOCAL_MAX_LIMIT siglake-query-server
SIGLAKE_DRAIN_CONCURRENCY siglake-compactor, siglake-storage
SIGLAKE_DRAIN_CYCLE_BUDGET_SECS siglake-compactor
SIGLAKE_DRAIN_FETCH_CONCURRENCY siglake-compactor
SIGLAKE_DRAIN_IDLE_BACKOFF_MS siglake-compactor
SIGLAKE_DRAIN_INFLIGHT_BUDGET_MB siglake-compactor
SIGLAKE_DRAIN_SHARD_COUNT siglake-compactor
SIGLAKE_DRAIN_SHARD_INDEX siglake-compactor
SIGLAKE_DRAIN_WATCHDOG_SECS siglake-compactor
SIGLAKE_ENDPOINT siglake-cli
SIGLAKE_ES_COMPAT_VERSION siglake-ingest
SIGLAKE_EXTRA siglake-operator
SIGLAKE_FOOTER_CACHE_CAP siglake-storage
SIGLAKE_GAUGE_TABLE_TIMEOUT_SECS siglake-storage
SIGLAKE_GIT_SHA siglake-core
SIGLAKE_GROUP_COUNT_FAST_PATH siglake-query-server
SIGLAKE_GROUP_COUNT_SKETCH_COUNTERS siglake-storage
SIGLAKE_ICEBERG_FOOTER_CACHE_MAX_ENTRIES third_party/iceberg
SIGLAKE_ICEBERG_METADATA_CACHE_TTL_SECS siglake-query-server, siglake-storage
SIGLAKE_INDEX_AT_FLUSH siglake-core, siglake-storage
SIGLAKE_INDEX_FOOTER_MAX_BYTES siglake-storage
SIGLAKE_INDEX_LOAD_CONCURRENCY siglake-storage, third_party/iceberg
SIGLAKE_INDEX_REBUILD siglake-operator, siglake-storage
SIGLAKE_INGESTER_ID siglake-cli
SIGLAKE_INGEST_BACKPRESSURE_CAPACITY siglake-cli
SIGLAKE_INGEST_BACKPRESSURE_SHARDS siglake-cli
SIGLAKE_INGEST_GROUP_COMMIT_MS siglake-cli
SIGLAKE_INGEST_MAX_BODY_BYTES siglake-ingest
SIGLAKE_INGEST_MAX_LANES siglake-cli, siglake-operator
SIGLAKE_INGEST_MEM_LIMIT_MIB siglake-cli
SIGLAKE_INGEST_MEM_SAMPLE_SECS siglake-cli
SIGLAKE_INGEST_RATE_BURST siglake-cli
SIGLAKE_INGEST_RATE_PER_SEC siglake-cli
SIGLAKE_INGEST_RATE_REDIS_PREFIX siglake-cli
SIGLAKE_INGEST_RATE_REDIS_URL siglake-cli
SIGLAKE_INLINE_COVERAGE_SCAN_INTERVAL_SECS siglake-compactor
SIGLAKE_INVERTED_INDEX siglake-operator, siglake-storage
SIGLAKE_JOBS_CANCEL_POLL_SECS siglake-query-server
SIGLAKE_JOBS_OWNERLESS_GRACE_SECS siglake-query-server
SIGLAKE_JOBS_OWNER_LEASE_SECS siglake-query-server
SIGLAKE_JOBS_POSTGRES_URI siglake-operator, siglake-query-server
SIGLAKE_LEADING_EDGE_WINDOW_SECS siglake-storage
SIGLAKE_LOG_EXEC_PLANS siglake-query-server
SIGLAKE_MAINTENANCE_LEASE_SECS siglake-compactor
SIGLAKE_MAX_TENANTS siglake-cli, siglake-ingest, siglake-operator
SIGLAKE_MEMORY_GAUGE_INTERVAL_SECS siglake-query-server
SIGLAKE_MERGE_CHUNK_PREFETCH siglake-storage
SIGLAKE_MERGE_CHUNK_ROWS siglake-storage
SIGLAKE_MERGE_FETCH_CONCURRENCY siglake-storage
SIGLAKE_METADATA_CACHE_BYTES siglake-storage
SIGLAKE_METRICS_BIND siglake-operator
SIGLAKE_METRIC_LABEL_CARDINALITY_CAP siglake-ingest
SIGLAKE_MIRROR_LEDGER_RECLAIM siglake-cli, siglake-compactor, siglake-operator
SIGLAKE_MIRROR_SYNC_INTERVAL_SECS siglake-compactor, siglake-operator
SIGLAKE_OBJECT_CACHE_BYTES siglake-cli, siglake-query-server, siglake-storage, third_party/iceberg
SIGLAKE_OBJECT_STORE siglake-compactor
SIGLAKE_OBJECT_STORE_WRITE_CHUNK_MB third_party/iceberg-storage-opendal
SIGLAKE_OBJECT_STORE_WRITE_CONCURRENCY third_party/iceberg-storage-opendal
SIGLAKE_OIDC_AUDIENCE siglake-cli, siglake-operator, siglake-query-server
SIGLAKE_OIDC_ISSUER siglake-cli, siglake-operator, siglake-query-server
SIGLAKE_OIDC_TENANT_CLAIM siglake-cli, siglake-operator, siglake-query-server
SIGLAKE_OPERATOR_REQUIRE_CLUSTER siglake-operator
SIGLAKE_OPERATOR_REQUIRE_PROMTOOL siglake-operator
SIGLAKE_ORDERED_DRAIN_BUFFER_BYTES siglake-storage, third_party/iceberg
SIGLAKE_ORDERED_MERGE_GLOBAL_FANIN siglake-storage
SIGLAKE_ORDERED_MERGE_MAX_FANIN siglake-storage
SIGLAKE_ORDERED_RESIDUAL_MIN_FRAC siglake-query-server
SIGLAKE_ORDERED_SINGLE_PARTITION_MAX_LIMIT siglake-storage
SIGLAKE_ORDERED_SORT_CLUSTER_MAX_ROWS siglake-storage
SIGLAKE_OTEL_DISABLED siglake-cli, siglake-core
SIGLAKE_OTLP_GRPC_LISTEN siglake-cli
SIGLAKE_PARQUET_ATTRIBUTES_COMPRESSION siglake-storage
SIGLAKE_PARQUET_NATIVE_BLOOMS siglake-compactor, siglake-storage
SIGLAKE_PARQUET_RAW_COMPRESSION siglake-storage
SIGLAKE_PARQUET_RAW_TOKEN_BLOOM siglake-storage
SIGLAKE_PARQUET_TARGET_ROW_GROUP_BYTES siglake-operator, siglake-storage
SIGLAKE_PARSED_INDEX_CACHE_MAX_BYTES siglake-cli, siglake-query-server, siglake-storage, third_party/iceberg
SIGLAKE_PPROF_ENABLED siglake-core
SIGLAKE_PROMETHEUS_URL siglake-operator
SIGLAKE_PUFFIN_BLOB_CACHE_MAX_BYTES siglake-cli, siglake-query-server, third_party/iceberg
SIGLAKE_PUFFIN_BLOB_CACHE_MAX_ENTRIES third_party/iceberg
SIGLAKE_PUFFIN_FOOTER_CACHE_MAX_ENTRIES third_party/iceberg
SIGLAKE_PUFFIN_INVERTED_BLOB_TYPE siglake-storage
SIGLAKE_PUFFIN_INVERTED_CODEC siglake-storage
SIGLAKE_QUERY_ADMISSION_BUDGET_BYTES siglake-query-server
SIGLAKE_QUERY_ADMISSION_DECOMPRESSION_FACTOR siglake-query-server
SIGLAKE_QUERY_ADMISSION_MAX_SHARE_DIVISOR siglake-query-server
SIGLAKE_QUERY_ADMISSION_WAIT_MS siglake-query-server
SIGLAKE_QUERY_ALLOWED_TENANTS siglake-query-server
SIGLAKE_QUERY_AUDIT_APPEND_DEADLINE_SECS siglake-query-server
SIGLAKE_QUERY_AUDIT_DISABLED siglake-query-server
SIGLAKE_QUERY_BIND siglake-query-server
SIGLAKE_QUERY_CEILING_BYTES_SCANNED_GB siglake-query-server
SIGLAKE_QUERY_CEILING_ROWS_SCANNED siglake-query-server
SIGLAKE_QUERY_COORDINATOR_TOKEN siglake-query-server
SIGLAKE_QUERY_EXEC_THREADS siglake-query-server
SIGLAKE_QUERY_HOT_CACHES siglake-query-server
SIGLAKE_QUERY_INLINE_EXEC_MAX_BYTES siglake-query-server
SIGLAKE_QUERY_INLINE_EXEC_MAX_ROWS siglake-query-server
SIGLAKE_QUERY_MAX_ROWS siglake-query-server
SIGLAKE_QUERY_MEMORY_FRACTION siglake-operator, siglake-storage
SIGLAKE_QUERY_MEMORY_POOL_BYTES siglake-query-server, siglake-storage
SIGLAKE_QUERY_MEMORY_POOL_TRACK_CONSUMERS siglake-storage
SIGLAKE_QUERY_METRICS_BIND siglake-query-server
SIGLAKE_QUERY_PEERS siglake-query-server
SIGLAKE_QUERY_PEER_DISCOVERY_INTERVAL_SECS siglake-query-server
SIGLAKE_QUERY_PEER_DISCOVERY_SRV siglake-query-server
SIGLAKE_QUERY_PEER_SCHEME siglake-query-server
SIGLAKE_QUERY_PEER_SELF_NAME siglake-operator, siglake-query-server
SIGLAKE_QUERY_PREWARM siglake-query-server, siglake-storage
SIGLAKE_QUERY_RESULT_CACHE siglake-query-server, siglake-storage
SIGLAKE_QUERY_SCAN_ADAPTIVE_PARTITION_MIN_BYTES siglake-query-server
SIGLAKE_QUERY_SCAN_ADAPTIVE_PARTITION_MIN_FILES siglake-query-server
SIGLAKE_QUERY_SCAN_BATCH_SIZE siglake-query-server
SIGLAKE_QUERY_SCAN_FILE_CACHE_MAX_BYTES siglake-operator, siglake-query-server, siglake-storage
SIGLAKE_QUERY_SCAN_FILE_CACHE_MAX_ENTRIES siglake-operator, siglake-query-server, siglake-storage
SIGLAKE_QUERY_SCAN_FILE_CONCURRENCY siglake-query-server
SIGLAKE_QUERY_SCAN_PARTITIONS siglake-query-server
SIGLAKE_QUERY_SCAN_RANGE_ADAPTIVE_MIN_BYTES siglake-query-server
SIGLAKE_QUERY_SCAN_RANGE_ADAPTIVE_MIN_FILES siglake-query-server
SIGLAKE_QUERY_SCAN_RANGE_COALESCE_BYTES siglake-query-server
SIGLAKE_QUERY_SCAN_RANGE_FETCH_CONCURRENCY siglake-query-server
SIGLAKE_QUERY_SCAN_READER_BUDGET siglake-query-server
SIGLAKE_QUERY_SPILL_DIR siglake-operator, siglake-storage
SIGLAKE_QUERY_SPILL_MAX_BYTES siglake-operator, siglake-storage
SIGLAKE_QUERY_TLS_CERT siglake-query-server
SIGLAKE_QUERY_TLS_KEY siglake-query-server
SIGLAKE_QUERY_TOKENS siglake-operator, siglake-query-server
SIGLAKE_QUERY_WAL_BUFFER_DIR siglake-query-server
SIGLAKE_QUERY_WARM_GROUP_COUNTS siglake-query-server
SIGLAKE_QUERY_WARM_INTERVAL_SECS siglake-query-server
SIGLAKE_QUERY_WARM_ORDERED siglake-query-server
SIGLAKE_QUERY_WARM_PROBE_TIMEOUT_SECS siglake-query-server
SIGLAKE_REBUILD_AB_BLOB_BYTES siglake-storage
SIGLAKE_REBUILD_AB_FILES siglake-storage
SIGLAKE_REBUILD_AB_PARSED_BYTES siglake-storage
SIGLAKE_REBUILD_AB_PASSES siglake-storage
SIGLAKE_REBUILD_AB_RARE_EVERY siglake-storage
SIGLAKE_REBUILD_AB_REUSE_DIR siglake-storage
SIGLAKE_REBUILD_AB_ROWS_PER_FILE siglake-storage
SIGLAKE_REBUILD_AB_RUNS siglake-storage
SIGLAKE_RECLUSTER_COLD_AGE_SECS siglake-cli
SIGLAKE_RECLUSTER_COLD_TARGET_MB siglake-cli
SIGLAKE_RECLUSTER_INRAM_MAX_MB siglake-storage
SIGLAKE_RECLUSTER_INRAM_MAX_ROWS siglake-storage
SIGLAKE_RECLUSTER_INTERVAL_SECS siglake-cli, siglake-compactor
SIGLAKE_RECLUSTER_MAX_BINS siglake-cli
SIGLAKE_RECLUSTER_MAX_FILES siglake-cli
SIGLAKE_RECLUSTER_MAX_PASS_MB siglake-cli
SIGLAKE_RECLUSTER_MAX_PASS_ROWS siglake-cli
SIGLAKE_RECLUSTER_MAX_WINDOW_SECS siglake-cli
SIGLAKE_RECLUSTER_MERGE_FANIN siglake-storage
SIGLAKE_RECLUSTER_STREAMING siglake-storage
SIGLAKE_RECLUSTER_TARGET_MB siglake-cli
SIGLAKE_RECLUSTER_TIERED_MERGE siglake-storage
SIGLAKE_RECLUSTER_WATCHDOG_SECS siglake-compactor
SIGLAKE_REMOTE_WAL_DRAIN siglake-cli, siglake-operator
SIGLAKE_REUSE_ROWS_PER_FILE siglake-storage
SIGLAKE_REVERSED_CHUNK_CACHE_MB third_party/iceberg
SIGLAKE_REVERSED_CHUNK_ROWS third_party/iceberg
SIGLAKE_S3_WRITE_PERMITS_COMPACTION third_party/iceberg-storage-opendal
SIGLAKE_S3_WRITE_PERMITS_DRAIN third_party/iceberg-storage-opendal
SIGLAKE_SCAN_CLIPPED_ADMISSION_WAVE siglake-storage
SIGLAKE_SCAN_COST_CACHE_CAP siglake-storage
SIGLAKE_SCAN_DECODED_BUDGET_BYTES siglake-storage
SIGLAKE_SCAN_DECOMPRESSION_FACTOR siglake-operator, siglake-storage
SIGLAKE_SEGMENTED_INDEX_BLOCK_BYTES siglake-storage
SIGLAKE_SEGMENTED_INDEX_DIRECTORY_CACHE_MAX_BYTES siglake-storage, third_party/iceberg
SIGLAKE_SEGMENTED_INDEX_RANGE_CONCURRENCY third_party/iceberg
SIGLAKE_SEGMENTED_INDEX_READS siglake-storage, third_party/iceberg
SIGLAKE_SEGMENTED_INDEX_WRITES siglake-core, siglake-storage
SIGLAKE_SEG_BLOCK_BYTES siglake-index
SIGLAKE_SEG_CORRUPT_ROWS siglake-index
SIGLAKE_SEG_FILES siglake-index
SIGLAKE_SEG_GROUP_ROWS siglake-index
SIGLAKE_SEG_PARSED_BYTES siglake-index
SIGLAKE_SEG_PLAN_RUNS siglake-index
SIGLAKE_SEG_RARE_EVERY siglake-index
SIGLAKE_SEG_READER_GROUPS third_party/iceberg
SIGLAKE_SEG_READER_ROWS third_party/iceberg
SIGLAKE_SEG_ROLL_COLUMNS siglake-storage
SIGLAKE_SEG_ROLL_FILE_BYTES siglake-storage
SIGLAKE_SEG_ROLL_RARE_EVERY siglake-storage
SIGLAKE_SEG_ROLL_ROWS siglake-storage
SIGLAKE_SEG_ROWS siglake-index
SIGLAKE_SEG_ROWS_PER_FILE siglake-index
SIGLAKE_SEG_RUNS siglake-index
SIGLAKE_SEG_WRITER_FILES siglake-storage
SIGLAKE_SEG_WRITER_RARE_EVERY siglake-storage
SIGLAKE_SEG_WRITER_ROWS_PER_FILE siglake-storage
SIGLAKE_SIDE_AGG_WRITE_BEHIND siglake-storage
SIGLAKE_SNAPSHOT_AGG_CACHE_CAP siglake-storage
SIGLAKE_SNAPSHOT_EXPIRE_INTERVAL_SECS siglake-cli
SIGLAKE_SNAPSHOT_RETAIN_LAST siglake-cli, siglake-storage
SIGLAKE_TABLE_GROUP_COUNT_CARDINALITY siglake-storage
SIGLAKE_TENANT_NAMESPACE siglake-cli, siglake-core, siglake-query-server
SIGLAKE_TEST_JOBS_POSTGRES_URI siglake-query-server, siglake-storage
SIGLAKE_TEST_S3_ACCESS_KEY siglake-compactor, siglake-storage
SIGLAKE_TEST_S3_ENDPOINT siglake-compactor, siglake-storage
SIGLAKE_TEST_S3_SECRET_KEY siglake-compactor, siglake-storage
SIGLAKE_TEST_SRV_NAME siglake-query-server
SIGLAKE_TIME_GROUP_TOTAL_CAP siglake-storage
SIGLAKE_TIME_GROUP_VALUE_CAP siglake-storage
SIGLAKE_TOKEN siglake-cli
SIGLAKE_TRUST_SCOPE_HEADER siglake-cli, siglake-operator
SIGLAKE_TYPED_GROUP_COUNT_CARDINALITY siglake-cli, siglake-storage
SIGLAKE_V1_INTEGRITY_ROWS siglake-index
SIGLAKE_V1_INTEGRITY_RUNS siglake-index
SIGLAKE_V1_INTEGRITY_SAMPLE siglake-index
SIGLAKE_WAL_ACTIVE_MIRROR_INTERVAL_SECS siglake-cli
SIGLAKE_WAL_ADOPT_PARTIAL_AFTER_SECS siglake-wal
SIGLAKE_WAL_IDENTITY_REFRESH_SECS siglake-cli, siglake-ingest, siglake-query-server
SIGLAKE_WAL_LOCAL_SWEEP_SECS siglake-cli, siglake-compactor
SIGLAKE_WAL_LOCAL_SWEEP_SETTLE_SECS siglake-cli, siglake-compactor
SIGLAKE_WAL_MIRROR_PREFIX siglake-cli, siglake-operator
SIGLAKE_WAL_MIRROR_SWEEP_SECS siglake-cli
SIGLAKE_WAL_MIRROR_URL siglake-cli
SIGLAKE_WAL_SEALED_PUBLISH_SECS siglake-cli
SIGLAKE_WAREHOUSE_URL siglake-cli, siglake-operator, siglake-query-server, siglake-storage
SIGLAKE_WINDOWED_GROUP_AGG siglake-storage
OTEL_EXPORTER_OTLP_ENDPOINT siglake-cli, siglake-core, siglake-operator, siglake-query-server
OTEL_EXPORTER_OTLP_HEADERS siglake-core
OTEL_LOGS_EXPORTER siglake-core
OTEL_RESOURCE_ATTRIBUTES siglake-core
OTEL_SERVICE_NAME siglake-core
OTEL_SERVICE_NAMESPACE siglake-core
OTEL_TRACES_EXPORTER siglake-core