Skip to content
WarpStream Documentation
Start Free

Agent Configuration Reference

Reference documentation for WarpStream Agent flags.

Required Command Line Flags and Environment Variables

Section titled “Required Command Line Flags and Environment Variables”

All WarpStream Agent configurations can be set via command-line flags or environment variables. Command-line flags take precedence over environment variables.

FlagEnvironment VariableDescription
bucketURLWARPSTREAM_BUCKET_URLSee the dedicated documentation section
agentKeyWARPSTREAM_AGENT_KEYWarpStream Agent Key obtained from the WarpStream admin console.
defaultVirtualClusterIDWARPSTREAM_DEFAULT_VIRTUAL_CLUSTER_IDWarpStream Virtual Cluster ID obtained from the WarpStream admin console.
regionWARPSTREAM_REGIONWarpStream virtual cluster’s control plane region. Can be obtained from the WarpStream admin console.

Optional Command Line Flags and Environment Variables

Section titled “Optional Command Line Flags and Environment Variables”

All WarpStream Agent configuration can be set either via command line flags, or environment variables. Command line flags take precedence over environment variables.

To connect eligible self-managed Confluent Platform components, enable enableConfluentComponents or set WARPSTREAM_ENABLE_CONFLUENT_COMPONENTS=true. See Connect Confluent Platform Components Licensed for Confluent Cloud for prerequisites, licensing considerations, and client configuration.

FlagEnvironment VariableDescription
apiKeyWARPSTREAM_API_KEYBackward-compatible alias of agentKey
agentGroupWARPSTREAM_AGENT_GROUPName of the ‘group’ that the Agent belongs to. This feature is used to isolate groups of Agents that belong to the same logical cluster, but should not communicate with each other because they’re deployed in separate cloud accounts, vpcs, or regions. Leave blank to indicate the Agent belongs to the default group.
heartbeatEveryWARPSTREAM_HEARTBEAT_EVERYHow often the agent should heartbeat the WarpStream backend. Recommended to not modify this.
httpPortWARPSTREAM_HTTP_PORTThe port the Agent will use for serving HTTP requests (Kinesis API requests, distributed file cache requests, exposing Prometheus metrics, etc) (default 8080).
enableKafkaWARPSTREAM_ENABLE_KAFKAEnable kafka server (default true).
kafkaPortWARPSTREAM_KAFKA_PORTThe port the Agent will listen on for Kafka client TCP connections (default 9092).
kafkaFetchCompressionWARPSTREAM_KAFKA_FETCH_COMPRESSIONCompression type to use for Fetch responses: none, gzip, snappy, lz4 (by default), zstd. This is only used if no compression is set explicitly, or if ‘agent’ type compress.
kafkaMetadataRefreshIntervalWARPSTREAM_KAFKA_METADATA_REFRESH_INTERVALPeriod of time at which topic metadata is refreshed. Unlike Kafka, this metadata cache refresh also affects the timestamp type associated with a stream (default 1m0s).
kafkaHandleConsumerGroupsInBackendWARPSTREAM_KAFKA_HANDLE_CONSUMER_GROUPS_IN_BACKENDHandle consumer group ‘JoinGroup’ and ‘SyncGroup’ requests in the backend instead of in the agent. When handled in the backend, the ‘Rebalance Timeout’ is always set to 10 seconds, whereas in the agent, it will be determined by client specifications. Enabling this option offers the advantage of reduced error potential and seamless integration of backend improvements and bug fixes. However, exercise caution when enabling it for large consumer groups, as a 10-second rebalance timeout may lead to extended rebalancing times and consequently, prolonged consumption pauses. Warning: Ensure uniformity within your agent pool regarding this setting. Having a mix of enabled and disabled settings may lead to rebalancing issues and potential disruptions.
kafkaHighCardinalityMetricsWARPSTREAM_KAFKA_HIGH_CARDINALITY_METRICSWhether to emit metrics with high cardinality tags. When set to true, it enables detailed tracking at a granular level, such as metrics for individual fetch and produce operations on a per-topic basis. Use with caution as high cardinality can significantly increase the amount of data collected, potentially impacting performance.
kafkaCloseIdeConnAfterWARPSTREAM_KAFKA_CLOSE_IDLE_CONN_AFTERClose idle connections after the number of duration specified by this config (default 10m0s).
kafkaMaxFetchRequestBytesUncompressedOverrideWARPSTREAM_KAFKA_MAX_FETCH_REQUEST_BYTES_UNCOMPRESSED_OVERRIDEMaximum number of uncompressed bytes that can be fetched in a single fetch request (default 128MiB).
kafkaMaxFetchPartitionBytesUncompressedOverrideWARPSTREAM_KAFKA_MAX_FETCH_PARTITION_BYTES_UNCOMPRESSED_OVERRIDEMaximum number of uncompressed bytes that can be fetched in a single fetch request for a single topic-partition (default 128MiB).
fileCacheSizeBytesWARPSTREAM_FILE_CACHE_SIZE_BYTESSize of the Agent file cache size in bytes. This cache is used to reduce the number of object storage GET requests that required to serve consumers.

Defaults to 0.5GiB/vCPU if omitted.
fileCacheExtraReplicasWARPSTREAM_FILE_CACHE_EXTRA_REPLICASNumber of extra replicas for the distributed file cache. Helps improve availability and reduce errors when Agents shutdown ungracefully. You can override this to 0, but do not increase this value above 1 unless you know what you’re doing.
gracefulShutdownDurationWARPSTREAM_GRACEFUL_SHUTDOWN_DURATIONAmount of time to wait after receiving SIGTERM before exiting to allow graceful removal from service discovery (default 1m0s).
maxConcurrentRequestPerCPUWARPSTREAM_MAX_CONCURRENT_REQUEST_PER_CPUMaximum number of concurrent requests (per CPU) allowed by the Kafka server.
enableClusterWideEnvironmentWARPSTREAM_ENABLE_CLUSTER_WIDE_ENVIRONMENTWhether the cluster wide environment should be enabled.
clusterWideEnvironmentPortWARPSTREAM_CLUSTER_WIDE_ENVIRONMENT_PORTThe default port to use for the cluster wide environment (default 9999).
ingestionBucketURLWARPSTREAM_INGESTION_BUCKET_URLObject storage URL to use for data ingestion (produce requests).
compactionBucketURLWARPSTREAM_COMPACTION_BUCKET_URLObject storage URL to use for files created by compactions.
batchTimeoutWARPSTREAM_BATCH_TIMEOUTControls the maximum amount of time the WarpStream Agents will allow a produced record to remain buffered in batch before flushing it to object storage. Increasing this value reduces object storage API costs, but increases latency, and vice versa.

Note the WarpStream agents never acknowledge data until it has been flushed to object storage so this value has no impact on correctness or durability guarantees, only latency.

Defaults to 250ms, minimum is 50ms.
batchMaxSizeBytesWARPSTREAM_BATCH_MAX_SIZE_BYTESControls the maximum number of bytes that will be buffered by the WarpStream Agents before flushing it to object storage. Increasing this value reduces object storage API costs for workloads that write more than uncompressed 16MiB/s/Agent, but increases latency, and vice versa.

Note the WarpStream agents never acknowledge data until it has been flushed to object storage so this value has no impact on correctness or durability guarantees, only latency.

Defaults to 4MiB, minimum is 1MiB, maximum is 64MiB.
batcherMaxInflightBytesPerCPUWARPSTREAM_BATCHER_MAX_INFLIGHT_BYTES_PER_CPUMaximum number of inflight bytes per CPU from Produce requests that have not yet been flushed to object storage that can be in memory at once before the Agent will begin backpressuring.
batcherMaxInflightFilesPerCPUWARPSTREAM_BATCHER_MAX_INFLIGHT_FILES_PER_CPUMaximum number of inflight files per CPU from Produce requests that have not yet been flushed to object storage that can be in memory at once before the Agent will begin backpressuring.
metadataURLWARPSTREAM_METADATA_URLAddress for WarpStream metadata backend (favor using the -regionflag instead).
schemaRegistryURLWARPSTREAM_SCHEMA_REGISTRY_URLAddress for WarpStream schema registry backend.
schemaRegistryPortWARPSTREAM_SCHEMA_REGISTRY_PORTPort to run the schema registry server on (default 9094).
regionWARPSTREAM_REGIONRegion that the WarpStream control plane is running in. Value for your cluster can be obtained from the WarpStream console. Optional if your control plane is in us-east-1, otherwise must be provided.
kafkaLoadBalancingIntervalWARPSTREAM_KAFKA_LOAD_BALANCING_INTERVALTime after which the Kafka connection will be closed. This mechanism helps load balance the clients by forcing them to query the magic URL again. By resetting the connection periodically, clients are evenly distributed across available Kafka connections. (default 8760h0m0s).
kafkaInterzoneLoadBalancingIntervalWARPSTREAM_KAFKA_INTERZONE_LOAD_BALANCING_INTERVALInterval at which the Kafka connection assesses if the client-agent connection resides in the same Availability Zone (AZ). If they are not in the same AZ and there are agents available within the client’s AZ, the connection is terminated. This approach encourages load balancing by prompting clients to re-query the magic URL and, consequently, connect to agents within their respective AZ. For this mechanism to function, clients should include ‘waprstream_az=X’ and ‘warpstream_interzone_lb=true’ in their clientID. (default 1m0s).
kafkaLoadBalancingDrainingTimeWARPSTREAM_KAFKA_LOAD_BALANCING_DRAINING_TIMETime given to gracefully close the Kafka connection after the reconnect interval is reached.
advertiseHostnameStrategyWARPSTREAM_ADVERTISE_HOSTNAME_STRATEGY

Which hostname strategy should be used the agent should advertise itself on. Accepted values: auto-ip4/auto-ip6/local/custom.

auto-ip4 means that it will try to automatically find an IP v4 that makes sense

auto-ip6 will do the same with an IPv6.

local will use localhost

If you select custom them you have to also define advertiseHostnameCustom.

advertiseHostnameCustomWARPSTREAM_ADVERTISE_HOSTNAME_CUSTOMCustom hostname value to advertise to service discovery for clustering purposes if the custom advertise strategy is selected.
requireSASLAuthenticationWARPSTREAM_REQUIRE_SASL_AUTHENTICATIONIf set to true, the Agents will require that all Kafka clients authenticate themselves with proper SASL credentials.
enabledSASLMechanismsWARPSTREAM_SASL_ENABLED_MECHANISMSIf you provide it with a comma-separated list of SASL mechanisms, only those will be enabled. Valid values are “PLAIN” and “SCRAM-SHA-512”. For example, if you set WARPSTREAM_SASL_ENABLED_MECHANISMS=“SCRAM-SHA-512”, you will not be able to use the PLAIN mechanism to connect, only SCRAM-SHA-512.
logIntervalWARPSTREAM_LOG_INTERVALInterval for logging service status (default 15s).
enableDatadogProfilingWARPSTREAM_ENABLE_DATADOG_PROFILINGEnable datadog profiling (default false).
enableDatadogTracingWARPSTREAM_ENABLE_DATADOG_TRACINGEnable datadog tracing (default false).
enablePrometheusMetricsWARPSTREAM_ENABLE_PROMETHEUS_METRICSEnable prometheus metrics (default true).
enableDatadogMetricsWARPSTREAM_ENABLE_DATADOG_METRICSEnable datadog metrics (default false).
disableConsumerGroupMetricsWARPSTREAM_DISABLE_CONSUMER_GROUP_METRICSDisable the consumer group offset metrics automatically published by default (warpstream_consumer_group_lag and warpstream_consumer_group_max_offset).
disableConsumerGroupsMetricsTagsWARPSTREAM_DISABLE_CONSUMER_GROUP_METRICS_TAGSComma-separated list of the tags to not expose in the consumer group offset metrics (warpstream_consumer_group_lag and warpstream_consumer_group_max_offset).
disableLogsCollectionWARPSTREAM_DISABLE_LOGS_COLLECTIONDisable the logs collection sent to warpstream backend (default false).
rolesWARPSTREAM_AGENT_ROLESRoles that the agent should start (comma-separated) (default “proxy, jobs”).
bentoBucketURLWARPSTREAM_BENTO_BUCKET_URLBucket URL to use when fetching the bento configuration.
bentoConfigPathWARPSTREAM_BENTO_CONFIG_PATHPath in the bucket to fetch the bento configuration.
enableManagedPipelinesWARPSTREAM_ENABLE_MANAGED_PIPELINESWhether data pipelines can be managed by the control plane.
availabilityZoneRequiredWARPSTREAM_AVAILABILITY_ZONE_REQUIREDWhen enabled, the agent will synchronously try to resolve its az during startup for 1min, and will not start serving its /v1/status health check until it succeeds. The process will exit early if it did not manage to resolve the availability zone. Only used in agent mode.
kafkaTLSWARPSTREAM_TLS_ENABLEDEnable TLS for Kafka client/Agent connections. Must also specify tlsServerCertFile and tlsServerPrivateKeyFile.
schemaRegistryTLSWARPSTREAM_SCHEMA_REGISTRY_TLS_ENABLEDEnable TLS encryption over the schema registry port.
tlsServerCertFileWARPSTREAM_TLS_SERVER_CERT_FILEPath to the X.509 certificate file in PEM format for the server.
tlsServerPrivateKeyFileWARPSTREAM_TLS_SERVER_PRIVATE_KEY_FILEPath to the X.509 private key file in PEM format for the server.
tlsClientCACertFileWARPSTREAM_TLS_CLIENT_CA_CERT_FILEPath to the X.509 certificate file in PEM format for the client certificate authority. If not specified, the host’s root certificate pool will be used for client certificate verification.
requireMTLSAuthenticationWARPSTREAM_REQUIRE_MTLS_AUTHENTICATIONIf set to true, the Agents will require that all Kafka clients authenticate themselves with mTLS. enableTLS must be set to true.
tlsPrincipalMappingRuleWARPSTREAM_TLS_PRINCIPAL_MAPPING_RULERegular expression to extract the ACL principal from the client certificate distinguished name. requireMTLSAuthentication must be set to true.
storageCompressionWARPSTREAM_STORAGE_COMPRESSIONCompression used in object store, either zstd or lz4.
externalSchemaRegistryBasicAuthUsernameWARPSTREAM_EXTERNAL_SCHEMA_REGISTRY_BASIC_AUTH_USERNAMEUsername for the external schema registry.
externalSchemaRegistryBasicAuthPasswordWARPSTREAM_EXTERNAL_SCHEMA_REGISTRY_BASIC_AUTH_PASSWORDPassword for the external schema registry.
externalSchemaRegistryTlsServerCACertFileWARPSTREAM_EXTERNAL_SCHEMA_REGISTRY_TLS_SERVER_CA_CERT_FILEPath to the X.509 certificate file in PEM format for the schema registry server’s certificate authority. If not specified, the host’s root certificate pool will be used for client certificate verification.
externalSchemaRegistryTlsClientCertFileWARPSTREAM_EXTERNAL_SCHEMA_REGISTRY_TLS_CLIENT_CERT_FILEPath to the X.509 certificate file in PEM format for the schema registry client.
externalSchemaRegistryTlsClientPrivateKeyFileWARPSTREAM_EXTERNAL_SCHEMA_REGISTRY_TLS_CLIENT_PRIVATE_KEY_FILEPath to the X.509 private key file in PEM format for the schema registry client.
enableSetMutexProfileFractionWARPSTREAM_ENABLE_SET_MUTEX_PROFILE_FRACTIONEnable this flag to call runtime.SetMutexProfileFraction with the value passed along -mutexProfileFraction.
mutexProfileFractionWARPSTREAM_MUTEX_PROFILE_FRACTIONTune the value passed to call runtime.SetMutexProfileFraction (default 10).
enableSetBlockProfileRateWARPSTREAM_ENABLE_SET_BLOCK_PROFILE_RATEEnable this flag to call runtime.SetBlockProfileRate with the value passed along -blockProfileRate.
blockProfileRateWARPSTREAM_BLOCK_PROFILE_RATETune the value passed to call runtime.SetBlockProfileRate (default 100000000).
maxProduceRecordSizeBytesWARPSTREAM_MAX_PRODUCE_RECORD_SIZE_BYTESMaximum size of a record that can be produced. Value needs to be between 4MiB and 256 MiB (default 32 MB).
disableProfileForwardingWARPSTREAM_DISABLE_PROFILE_FORWARDINGDisable profile forwarding to warpstream backend. Note that if both Datadog profiling and profile forwarding are on, profile forwarding will automatically be turned off (default false).
maxProfileSizeWARPSTREAM_MAX_PROFILE_SIZEMaximum number of bytes for buffering profiles in memory. Value needs to be smaller than 1 MiB (default 500 KiB). This is only used if -disableProfileForwarding is false.
zonedCIDRBlocksWARPSTREAM_ZONED_CIDR_BLOCKSA mapping of availability zones to Kafka client IPs. The mapping should be a <> delimited list of AZ to CIDR range pairs, where each pair starts with an AZ, a @, and a comma separated list of CIDR blocks for that given AZ. For example, us-east-1a@10.0.0.0/19,10.0.32.0/19<>us-east-1b@10.0.64.0/19<>us-east-1c@10.0.96.0/19.
autoTuneFetchLimitsWARPSTREAM_AUTO_TUNE_FETCH_LIMITSAllow consumer fetch limits to be auto-adjusted (default true).
N/AWARPSTREAM_AVAILABILITY_ZONE

Override the Availability Zone name which is discovered by the WarpStream Agent automatically using Cloud Instance Metadata (see section below).

We do not recommend overriding this in the general case.

N/AWARPSTREAM_LOG_LEVEL

Override the log level of the WarpStream Agent from the default value of info. Acceptable values are debug, info, warn, and error.

Defaults to info.

N/AWARPSTREAM_DISCOVERY_KAFKA_HOSTNAME_OVERRIDEOverrides the hostname that the WarpStream Agents will report to the WarpStream discovery system (instead of the default of reporting their private IP4 address).

This is useful when running the Agents behind a network load balancer which requires that the Agents report their hostname as the hostname of the network load balancer instead of their private IP.