We use cookies

We use cookies to ensure you get the best experience on our website. For more information on how we use cookies, please see our cookie policy.

By clicking "Accept", you agree to our use of cookies.
Learn more.

Self-HostingEngine Configuration Options

Configuration Options

The Hatchet server and engine are configured through environment variables, grouped by prefix. This page documents the available options by component.

Environment Variable Prefixes

Hatchet uses the following environment variable prefixes:

  • SERVER_ - main server configuration: runtime, authentication, encryption, monitoring, and integrations
  • DATABASE_ - PostgreSQL connection and connection pooling
  • READ_REPLICA_ - read replica database configuration
  • ADMIN_ - administrator user for initial seeding
  • DEFAULT_ - default tenant configuration
  • SCHEDULER_ - scheduler concurrency and polling intervals
  • CACHE_ - cache duration for repository lookups

Required Environment Variables

The following variables are absolutely required for Hatchet to start successfully:

Encryption Keys

Option A: Local Encryption Keys

SERVER_ENCRYPTION_MASTER_KEYSET="<base64-encoded-keyset>"
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET="<base64-encoded-jwt-public>"
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET="<base64-encoded-jwt-private>"

Option B: File-based Keys

SERVER_ENCRYPTION_MASTER_KEYSET_FILE="/path/to/master.keyset"
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET_FILE="/path/to/jwt-public.keyset"
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET_FILE="/path/to/jwt-private.keyset"

Option C: Google Cloud KMS

SERVER_ENCRYPTION_CLOUDKMS_ENABLED=true
SERVER_ENCRYPTION_CLOUDKMS_KEY_URI="gcp-kms://your-key-uri"
SERVER_ENCRYPTION_CLOUDKMS_CREDENTIALS_JSON="<credentials-json>"

Authentication Secrets (Required)

SERVER_AUTH_COOKIE_SECRETS="<secret1> <secret2>"

Database Connection

Option A: Connection String

DATABASE_URL="postgresql://user:password@host:port/dbname"

Option B: Individual Parameters (each falls back to its default if not set)

DATABASE_POSTGRES_HOST=127.0.0.1
DATABASE_POSTGRES_PORT=5432
DATABASE_POSTGRES_USERNAME=hatchet
DATABASE_POSTGRES_PASSWORD=<your-password>
DATABASE_POSTGRES_DB_NAME=hatchet
DATABASE_POSTGRES_SSL_MODE=disable

Minimal Configuration Example

⚠️

This example is for local development when Hatchet connects to PostgreSQL running on the same host. For Docker Compose deployments, use your database service name, such as postgres, instead of 127.0.0.1. See the Docker Compose deployment guide.

# Database
DATABASE_URL='postgresql://hatchet:hatchet@127.0.0.1:5431/hatchet'
 
# Encryption (using key files - recommended for development)
SERVER_ENCRYPTION_MASTER_KEYSET_FILE=./keys/master.key
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET_FILE=./keys/private_ec256.key
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET_FILE=./keys/public_ec256.key
 
# Authentication
SERVER_AUTH_COOKIE_SECRETS="your-secret-key-1 your-secret-key-2"
SERVER_AUTH_SET_EMAIL_VERIFIED=true
 
# Basic server config
SERVER_PORT=8080
SERVER_URL=http://localhost:8080
 
# Development settings (optional but recommended)
SERVER_GRPC_INSECURE=true
SERVER_INTERNAL_CLIENT_BASE_STRATEGY=none
SERVER_LOGGER_LEVEL=error
SERVER_LOGGER_FORMAT=console
DATABASE_LOGGER_LEVEL=error
DATABASE_LOGGER_FORMAT=console

Generate encryption keys with the hatchet-admin image. This writes master.key, private_ec256.key and public_ec256.key into ./keys:

docker run --rm -v "$(pwd)/keys:/keys" \
  ghcr.io/hatchet-dev/hatchet/hatchet-admin:latest \
  /hatchet/hatchet-admin keyset create-local-keys --key-dir /keys

Runtime Configuration

Variables marked with ⚠️ are conditionally required when specific features are enabled.

VariableDescriptionDefault Value
SERVER_PORTPort for the core server8080
SERVER_URLFull server URL, including protocolhttp://localhost:8080
SERVER_GRPC_PORTPort for the GRPC service7070
SERVER_GRPC_BIND_ADDRESSGRPC server bind address127.0.0.1
SERVER_GRPC_BROADCAST_ADDRESSGRPC server broadcast address127.0.0.1:7070
SERVER_GRPC_INSECUREControls if the GRPC server is insecurefalse
SERVER_ENFORCE_LIMITSEnforce tenant limitsfalse
SERVER_ALLOW_SIGNUPAllow new tenant signupstrue
SERVER_ALLOW_INVITESAllow new invitestrue
SERVER_ALLOW_CREATE_TENANTAllow tenant creationtrue
SERVER_ALLOW_CHANGE_PASSWORDAllow password changestrue
SERVER_HEALTHCHECKEnable healthcheck endpointtrue
SERVER_HEALTHCHECK_PORTHealthcheck port8733
SERVER_GRPC_MAX_MSG_SIZEgRPC max message size4194304
SERVER_GRPC_RATE_LIMITgRPC rate limit1000
SCHEDULER_CONCURRENCY_RATE_LIMITScheduler concurrency rate limit20
SCHEDULER_CONCURRENCY_POLLING_MIN_INTERVALMinimum concurrency polling interval500ms
SCHEDULER_CONCURRENCY_POLLING_MAX_INTERVALMaximum concurrency polling interval5s
SCHEDULER_ADVISORY_LOCK_TIMEOUTTimeout for in-memory advisory lock5s
SERVER_SERVICESServices to run["all"]
SERVER_PAUSED_CONTROLLERSPaused controllers
SERVER_ENABLE_DATA_RETENTIONEnable data retentiontrue
SERVER_ENABLE_WORKER_RETENTIONEnable worker retentionfalse
SERVER_MAX_PENDING_INVITESMax pending invites100
SERVER_DISABLE_TENANT_PUBSDisable tenant pubsub
SERVER_MAX_INTERNAL_RETRY_COUNTMax internal retry count10
SERVER_PREVENT_TENANT_VERSION_UPGRADEPrevent tenant version upgradesfalse
SERVER_REPLAY_ENABLEDEnable task replaytrue
SERVER_FRONTEND_URLFrontend URL used for links in emails and notifications (defaults to SERVER_URL)
SERVER_ALLOWED_ORIGINSSpace-separated CORS origin patterns (e.g. https://*.example.com); empty allows all origins*
SERVER_GRPC_WORKER_MAX_LOCK_ACQUISITION_TIMEMax time the dispatcher waits to send a message to a worker250ms
SERVER_GRPC_STATIC_STREAM_WINDOW_SIZEgRPC static stream window size, in bytes10485760
SERVER_GRPC_SHUTDOWN_TIMEOUTMax time to drain in-flight gRPC requests on graceful shutdown10s
SERVER_GRPC_TRIGGER_WRITES_ENABLEDPerform writes from the gRPC API, falling back to RabbitMQ when slots are exhaustedtrue
SERVER_GRPC_TRIGGER_WRITE_SLOTSNumber of slots for gRPC writes5
SERVER_OPTIMISTIC_SCHEDULING_ENABLEDEnable optimistic schedulingtrue
SERVER_OPTIMISTIC_SCHEDULING_SLOTSSlots to allocate for optimistic scheduling5
SERVER_CONCURRENCY_IN_MEMORY_INDEX_ENABLEDUse the in-memory index + outbox approach for concurrency strategiesfalse
SERVER_API_RATE_LIMITAPI rate limit per IP10
SERVER_API_RATE_LIMIT_WINDOWAPI rate limit window300s
SERVER_INCOMING_WEBHOOK_RATE_LIMITIncoming webhook rate limit per second, per webhook50
SERVER_INCOMING_WEBHOOK_RATE_LIMIT_BURSTIncoming webhook rate limit burst size100
SERVER_WORKFLOW_RUN_BUFFER_SIZEWorkflow run event batch size in the dispatcher1000
SERVER_STREAM_EVENT_BUFFER_TIMEOUTHow long the stream event buffer waits for out-of-order events before flushing5s
SCHEDULER_CHECK_ACTIVE_MIN_INTERVALMinimum interval for the scheduler check-active loop30s
SCHEDULER_CHECK_ACTIVE_MAX_INTERVALMaximum interval for the scheduler check-active loop60s

Database Configuration

In Docker Compose deployments, use the database service name in DATABASE_URL rather than 127.0.0.1. Inside a container, 127.0.0.1 refers to the container itself. The localhost defaults shown in this section are intended for local development on the same host.

VariableDescriptionDefault Value
DATABASE_URLPostgreSQL connection string constructed from database settings if unset
DATABASE_POSTGRES_HOSTPostgreSQL host127.0.0.1
DATABASE_POSTGRES_PORTPostgreSQL port5431
DATABASE_POSTGRES_USERNAMEPostgreSQL usernamehatchet
DATABASE_POSTGRES_PASSWORDPostgreSQL passwordhatchet
DATABASE_POSTGRES_DB_NAMEPostgreSQL database namehatchet
DATABASE_POSTGRES_SSL_MODEPostgreSQL SSL modedisable
DATABASE_MAX_CONNSMax database connections50
DATABASE_MIN_CONNSMin database connections1
DATABASE_MAX_CONN_LIFETIMEMax lifetime of a connection15m
DATABASE_MAX_CONN_IDLE_TIMEMax time a connection can be idle before being closed1m
DATABASE_LOG_QUERIESLog database queriesfalse
DATABASE_PGBOUNCER_URLOptional PgBouncer connection string. When set, most queries route through PgBouncer while DDL statements use the direct pool (DATABASE_URL). See Using PgBouncer.
DATABASE_DDL_POOL_MAX_CONNSMax connections for the direct (DDL) pool that bypasses PgBouncer5
DATABASE_DDL_POOL_MIN_CONNSMin connections for the direct (DDL) pool that bypasses PgBouncer1
DATABASE_ENFORCE_UTC_TIMEZONEPanic on startup if the database instance timezone is not UTCtrue
CACHE_DURATIONCache duration5s
ADMIN_EMAILAdmin email for seedingadmin@example.com
ADMIN_PASSWORDAdmin password for seedingAdmin123!!
ADMIN_NAMEAdmin name for seedingAdmin
DEFAULT_TENANT_NAMEDefault tenant nameDefault
DEFAULT_TENANT_SLUGDefault tenant slugdefault
DEFAULT_TENANT_IDDefault tenant ID707d0855-80ab-4e1f-a156-f1c4546cbf52
READ_REPLICA_ENABLEDEnable read replicafalse
READ_REPLICA_DATABASE_URLRead replica database URL
READ_REPLICA_MAX_CONNSRead replica max connections50
READ_REPLICA_MIN_CONNSRead replica min connections10
DATABASE_LOGGER_LEVELDatabase logger levelwarn
DATABASE_LOGGER_FORMATDatabase logger formatconsole
K8S_POD_NAMESPACEPrefix added to the Postgres application_name (e.g. <namespace>:<service>) so connections can be attributed in pg_stat_activity; also sets the k8s.namespace.name OpenTelemetry resource attribute. Typically populated from the pod namespace via the downward API

Security Check Configuration

VariableDescriptionDefault Value
SERVER_SECURITY_CHECK_ENABLEDEnable security checktrue
SERVER_SECURITY_CHECK_ENDPOINTSecurity check endpointhttps://security.hatchet.run

Limit Configuration

VariableDescriptionDefault Value
SERVER_LIMITS_DEFAULT_TENANT_RETENTION_PERIODDefault tenant retention period720h
SERVER_LIMITS_CORE_PARTITION_RETENTIONCore partition retention periodTenant default
SERVER_LIMITS_OLAP_PARTITION_RETENTIONOLAP partition retention periodTenant default
SERVER_LIMITS_DEFAULT_WORKER_LIMITDefault worker limit3
SERVER_LIMITS_DEFAULT_WORKER_ALARM_LIMITDefault worker alarm limit2
SERVER_LIMITS_DEFAULT_EVENT_LIMITDefault event limit1000
SERVER_LIMITS_DEFAULT_EVENT_ALARM_LIMITDefault event alarm limit800
SERVER_LIMITS_DEFAULT_EVENT_WINDOWDefault event window24h
SERVER_LIMITS_DEFAULT_TASK_RUN_LIMITDefault task run limit2000
SERVER_LIMITS_DEFAULT_TASK_RUN_ALARM_LIMITDefault task run alarm limit1600
SERVER_LIMITS_DEFAULT_TASK_RUN_WINDOWDefault task run window24h
SERVER_LIMITS_DEFAULT_WORKER_SLOT_LIMITDefault worker slot limit2000
SERVER_LIMITS_DEFAULT_WORKER_SLOT_ALARM_LIMITDefault worker slot alarm limit1600
SERVER_LIMITS_DEFAULT_INCOMING_WEBHOOK_LIMITDefault incoming webhook limit5

Alerting Configuration

VariableDescriptionDefault Value
SERVER_ALERTING_SENTRY_ENABLEDEnable Sentry for alerting
SERVER_ALERTING_SENTRY_DSNSentry DSN
SERVER_ALERTING_SENTRY_ENVIRONMENTSentry environmentdevelopment
SERVER_ALERTING_SENTRY_SAMPLE_RATESentry sample rate1.0
SERVER_ANALYTICS_POSTHOG_ENABLEDEnable PostHog analytics
SERVER_ANALYTICS_POSTHOG_API_KEYPostHog API key
SERVER_ANALYTICS_POSTHOG_ENDPOINTPostHog endpoint
SERVER_ANALYTICS_POSTHOG_FE_API_HOSTPostHog frontend API host
SERVER_ANALYTICS_POSTHOG_FE_API_KEYPostHog frontend API key
SERVER_ANALYTICS_AGGREGATE_ENABLEDAggregate analytics events before sendingfalse
SERVER_ANALYTICS_AGGREGATE_FLUSH_INTERVALInterval to flush aggregated analytics60m
SERVER_ANALYTICS_AGGREGATE_MAX_KEYSMax number of aggregation keys held in memory500
SERVER_PYLON_ENABLEDEnable Pylon
SERVER_PYLON_APP_ID ⚠️Pylon app ID (required if Pylon enabled)
SERVER_PYLON_SECRETPylon secret

Encryption Configuration

VariableDescriptionDefault Value
SERVER_ENCRYPTION_MASTER_KEYSETRaw master keyset, base64-encoded JSON string
SERVER_ENCRYPTION_MASTER_KEYSET_FILEPath to the master keyset file
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSETPublic JWT keyset, base64-encoded JSON string
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET_FILEPath to the public JWT keyset file
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSETPrivate JWT keyset, base64-encoded JSON string
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET_FILEPath to the private JWT keyset file
SERVER_ENCRYPTION_CLOUDKMS_ENABLEDWhether Google Cloud KMS is enabledfalse
SERVER_ENCRYPTION_CLOUDKMS_KEY_URIURI of the key in Google Cloud KMS
SERVER_ENCRYPTION_CLOUDKMS_CREDENTIALS_JSONJSON credentials for Google Cloud KMS

Authentication Configuration

VariableDescriptionDefault Value
SERVER_AUTH_RESTRICTED_EMAIL_DOMAINSRestricted email domains
SERVER_AUTH_BASIC_AUTH_ENABLEDWhether basic auth is enabledtrue
SERVER_AUTH_SET_EMAIL_VERIFIEDWhether the user’s email is set to verified automaticallyfalse
SERVER_AUTH_COOKIE_NAMEName of the cookiehatchet
SERVER_AUTH_COOKIE_DOMAINDomain for the cookie
SERVER_AUTH_COOKIE_SECRETSCookie secrets
SERVER_AUTH_COOKIE_INSECUREWhether the cookie is insecurefalse
SERVER_AUTH_GOOGLE_ENABLEDWhether Google auth is enabledfalse
SERVER_AUTH_GOOGLE_CLIENT_ID ⚠️Google auth client ID (required if Google auth enabled)
SERVER_AUTH_GOOGLE_CLIENT_SECRET ⚠️Google auth client secret (required if Google auth enabled)
SERVER_AUTH_GOOGLE_SCOPESGoogle auth scopes["openid", "profile", "email"]
SERVER_AUTH_GITHUB_ENABLEDWhether GitHub auth is enabledfalse
SERVER_AUTH_GITHUB_CLIENT_ID ⚠️GitHub auth client ID (required if GitHub auth enabled)
SERVER_AUTH_GITHUB_CLIENT_SECRET ⚠️GitHub auth client secret (required if GitHub auth enabled)
SERVER_AUTH_GITHUB_SCOPESGitHub auth scopes["read:user", "user:email"]

Task Queue Configuration

VariableDescriptionDefault Value
SERVER_MSGQUEUE_KINDMessage queue kind (rabbitmq or postgres)rabbitmq
SERVER_MSGQUEUE_RABBITMQ_URLRabbitMQ URL
SERVER_MSGQUEUE_RABBITMQ_QOSRabbitMQ QoS (prefetch count)100
SERVER_MSGQUEUE_RABBITMQ_MAX_PUB_CHANSMax RabbitMQ publish channels20
SERVER_MSGQUEUE_RABBITMQ_MAX_SUB_CHANSMax RabbitMQ subscribe channels100
SERVER_MSGQUEUE_RABBITMQ_COMPRESSION_ENABLEDEnable gzip compression of messagesfalse
SERVER_MSGQUEUE_RABBITMQ_COMPRESSION_THRESHOLDByte size above which messages are compressed5120
SERVER_MSGQUEUE_RABBITMQ_ENABLE_MESSAGE_REJECTIONReject (rather than requeue) messages past the max death countfalse
SERVER_MSGQUEUE_RABBITMQ_MAX_DEATH_COUNTMax redeliveries before a message is dead-lettered1000
SERVER_SINGLE_QUEUE_LIMITSingle queue limit100

Message Queue Buffers

Hatchet batches message-queue writes through per-(tenant, message) publish and subscribe buffers. These settings apply to both buffers; see Improving Performance for guidance.

VariableDescriptionDefault Value
SERVER_DEFAULT_BUFFER_SIZEMax messages a buffer accumulates before flushing early10
SERVER_DEFAULT_BUFFER_FLUSH_INTERVALHow long a buffer waits before flushing10ms
SERVER_DEFAULT_BUFFER_CONCURRENCYMax concurrent in-flight flushes1 (publish) / 10 (subscribe)

TLS Configuration

VariableDescriptionDefault Value
SERVER_TLS_STRATEGYTLS strategytls
SERVER_TLS_CERTTLS certificate
SERVER_TLS_CERT_FILEPath to the TLS certificate file
SERVER_TLS_KEYTLS key
SERVER_TLS_KEY_FILEPath to the TLS key file
SERVER_TLS_ROOT_CATLS root CA
SERVER_TLS_ROOT_CA_FILEPath to the TLS root CA file
SERVER_TLS_MIN_VERSIONMinimum TLS version (1.2, 1.3)1.3
SERVER_INTERNAL_CLIENT_BASE_STRATEGYInternal client TLS strategytls
SERVER_INTERNAL_CLIENT_BASE_INHERIT_BASEInherit base TLS configtrue
SERVER_INTERNAL_CLIENT_TLS_BASE_CERTInternal client TLS cert
SERVER_INTERNAL_CLIENT_TLS_BASE_CERT_FILEInternal client TLS cert file
SERVER_INTERNAL_CLIENT_TLS_BASE_KEYInternal client TLS key
SERVER_INTERNAL_CLIENT_TLS_BASE_KEY_FILEInternal client TLS key file
SERVER_INTERNAL_CLIENT_TLS_BASE_ROOT_CAInternal client TLS root CA
SERVER_INTERNAL_CLIENT_TLS_BASE_ROOT_CA_FILEInternal client TLS root CA file
SERVER_INTERNAL_CLIENT_TLS_SERVER_NAMEInternal client TLS server name
SERVER_INTERNAL_CLIENT_INTERNAL_GRPC_BROADCAST_ADDRESSInternal gRPC broadcast address

Logging Configuration

VariableDescriptionDefault Value
SERVER_LOGGER_LEVELLogger levelwarn
SERVER_LOGGER_FORMATLogger formatconsole
SERVER_LOG_INGESTION_ENABLEDEnable log ingestiontrue
SERVER_ADDITIONAL_LOGGERS_QUEUE_LEVELQueue logger levelwarn
SERVER_ADDITIONAL_LOGGERS_QUEUE_FORMATQueue logger formatconsole
SERVER_ADDITIONAL_LOGGERS_PGXSTATS_LEVELPGX stats logger levelwarn
SERVER_ADDITIONAL_LOGGERS_PGXSTATS_FORMATPGX stats logger formatconsole

OpenTelemetry Configuration

For how to enable and use internal trace export with these settings, see Internal OpenTelemetry traces.

VariableDescriptionDefault Value
SERVER_OTEL_SERVICE_NAMEService name for OpenTelemetryserver
SERVER_OTEL_COLLECTOR_URLCollector URL for OpenTelemetry
SERVER_OTEL_INSECUREWhether to use an insecure connection to the collector URLfalse
SERVER_OTEL_TRACE_ID_RATIOOpenTelemetry trace ID ratio1
SERVER_OTEL_COLLECTOR_AUTHOpenTelemetry Collector Authorization header value
SERVER_OTEL_METRICS_ENABLEDEnable OpenTelemetry metrics collectionfalse
SERVER_OBSERVABILITY_ENABLEDEnable the worker→engine OTel collector gRPC service and REST trace endpointsfalse
SERVER_OBSERVABILITY_MAX_BATCH_SIZEMax spans accepted per Export RPC call1000
K8S_POD_NAMESets the k8s.pod.name OpenTelemetry resource attribute; typically populated from the pod name via the downward API
SERVER_PROMETHEUS_ENABLEDEnable Prometheusfalse
SERVER_PROMETHEUS_ADDRESSPrometheus address:9090
SERVER_PROMETHEUS_PATHPrometheus metrics path/metrics
SERVER_PROMETHEUS_SERVER_URLPrometheus server URL
SERVER_PROMETHEUS_SERVER_USERNAMEPrometheus server username
SERVER_PROMETHEUS_SERVER_PASSWORDPrometheus server password
SERVER_PROMETHEUS_SERVER_TENANT_SCOPEDGate the per-tenant metrics endpoint on each tenant’s Prometheus metrics entitlement; when false, metrics are served for all tenantsfalse

Tenant Alerting Configuration

VariableDescriptionDefault Value
SERVER_TENANT_ALERTING_SLACK_ENABLEDEnable Slack for tenant alerting
SERVER_TENANT_ALERTING_SLACK_CLIENT_IDSlack client ID
SERVER_TENANT_ALERTING_SLACK_CLIENT_SECRETSlack client secret
SERVER_TENANT_ALERTING_SLACK_SCOPESSlack scopes["incoming-webhook"]
SERVER_EMAIL_KINDEmail integration kindpostmark
SERVER_EMAIL_POSTMARK_ENABLEDEnable Postmark
SERVER_EMAIL_POSTMARK_SERVER_KEYPostmark server key
SERVER_EMAIL_POSTMARK_FROM_EMAILPostmark from email
SERVER_EMAIL_POSTMARK_FROM_NAMEPostmark from nameHatchet Support
SERVER_EMAIL_POSTMARK_SUPPORT_EMAILPostmark support email
SERVER_EMAIL_SMTP_ENABLEDEnable SMTP
SERVER_EMAIL_SMTP_SERVER_ADDRSMTP server address
SERVER_EMAIL_SMTP_FROM_EMAILSMTP from email
SERVER_EMAIL_SMTP_FROM_NAMESMTP from nameHatchet Support
SERVER_EMAIL_SMTP_SUPPORT_EMAILSMTP support email
SERVER_EMAIL_SMTP_AUTH_USERNAMESMTP authentication username
SERVER_EMAIL_SMTP_AUTH_PASSWORDSMTP authentication password
SERVER_MONITORING_ENABLEDEnable monitoringtrue
SERVER_MONITORING_PERMITTED_TENANTSPermitted tenants for monitoring
SERVER_MONITORING_PROBE_TIMEOUTMonitoring probe timeout30s
SERVER_MONITORING_TLS_ROOT_CA_FILEMonitoring TLS root CA file
SERVER_SAMPLING_ENABLEDEnable samplingfalse
SERVER_SAMPLING_RATESampling rate1.0
SERVER_OPERATIONS_JITTEROperations jitter in milliseconds0
SERVER_OPERATIONS_POLL_INTERVALOperations poll interval in seconds2

Cron Operations Configuration

VariableDescriptionDefault Value
SERVER_CRON_OPERATIONS_TASK_ANALYZE_CRON_INTERVALInterval for running ANALYZE on task-related tables3h
SERVER_CRON_OPERATIONS_OLAP_ANALYZE_CRON_INTERVALInterval for running ANALYZE on OLAP/analytics tables3h

OLAP Database Configuration

VariableDescriptionDefault Value
SERVER_OLAP_STATUS_UPDATE_DAG_BATCH_SIZE_LIMITBatch size limit for running DAG status updates1000
SERVER_OLAP_STATUS_UPDATE_TASK_BATCH_SIZE_LIMITBatch size limit for running task status updates1000
SERVER_OLAP_MQ_QOSPrefetch count (QoS) for the OLAP controller’s message queue consumer100

Payload Store Configuration

Controls how task payloads are stored and offloaded to the external payload store.

VariableDescriptionDefault Value
SERVER_PAYLOAD_STORE_EXTERNAL_CUTOVER_PROCESS_INTERVALInterval between external-cutover offload passes15s
SERVER_PAYLOAD_STORE_EXTERNAL_CUTOVER_BATCH_SIZERows processed per external-cutover pass1000
SERVER_PAYLOAD_STORE_EXTERNAL_CUTOVER_NUM_CONCURRENT_OFFLOADSConcurrent offloads during external cutover10
SERVER_PAYLOAD_STORE_INLINE_STORE_TTL_DAYSDays to retain payloads in the inline store (must be > 0)2
SERVER_PAYLOAD_STORE_ENABLE_WINDOW_SIZE_OPTIMIZATIONEnable window-size optimization for payload readstrue