Oxla Configuration File
1. Overview
The configuration of Oxla is managed through a configuration file. The configuration file defining various aspects of Oxla’s behavior and its usage is helpful for both development and deployment.
When Oxla is run as a docker container, the config file is generated automatically inside a container in /oxla/startup_config
based on environment variables passed and default values.
2. Mounting Config Directory
The /oxla/startup_config
config directory can be mounted using -v /path/to/mount:/oxla/startup_config
to access the config file directly:
2.1. Config File Handling
3. Configuration Variables
The yaml below is the default configuration file in Oxla:
Below is a list of key configuration variables:
Variable | Description |
---|---|
network.port | Port on which Oxla listens for connections from nodes in the cluster. |
network.postgresql_port | Port on which the node listens for TCP connections to the Postgres client. |
network.prometheus_port | Port on which the process listens for HTTP connections for Prometheus metrics. |
network.nodes | List of IP addresses or DNS addresses to which Oxla connects. |
network.cluster_name | Common cluster name used for node connection validation. |
network.host_name | Unique name of a single node in the cluster. |
metrics.no_prometheus_exposer | Disable the Prometheus exposer. |
insertion.buffer_size_limit | Threshold for data or time before dumping data from memory to the filesystem. |
Possible units: | |
- G | |
- M | |
- K | |
Default value: interpreted as bytes. | |
insertion.buffer_timeout | Timeout for dumping data from memory to the filesystem. |
Possible units: | |
- h | |
- min | |
- s | |
- ms | |
Default value: value in ms unit. | |
logging.info | Logging level. |
Possible values: | |
- VERBOSE | |
- DEBUG | |
- INFO | |
- WARNING | |
- ERROR | |
- FATAL | |
- NONE | |
storage.oxla_home | Directory for data. Either on local disk (path inside the container), or on S3. |
storage.s3.enable_discovery | By default, regional or overridden endpoints are used. To enable endpoint discovery, set the variable to true . |
storage.s3.use_dual_stack | Enable or disable dual-stack IPv4 and IPv6 endpoints. |
Note: not all AWS services support IPv6 in all Regions. | |
storage.s3.endpoint | Endpoint for the S3 protocol. If not provided, the default AWS endpoint is used. |
3.1. Environment Variables
Values in the configuration file take precedence over environment variables and default values.
Naming conventions for environment variables are derived from the configuration variable names, with __
(double underscores) replacing YAML hierarchy levels. For example:
NETWORK__PORT
environment variable.Environment variables can be passed using the -e
parameter in the docker run
command, as illustrated below: