Oxla Configuration File
Overview
Oxla configuration is managed through a configuration file, which defines various aspects of Oxla’s usage and is helpful for both development and deployment. When Oxla is being run as a docker container, the config file is generated automatically inside a container in /oxla/startup_config
, based on environment variables and default values.
Mounting Config Directory
The /oxla/startup_config
config directory can be mounted using -v /path/to/mount:/oxla/startup_config
command to access the config file directly:
Configuring File Handling
Variables Configuration
The YAML file 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 PostgreSQL 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 | Option for disabling 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. |
access_control.mode | Mode of access control that Oxla sticks to during connection and execution of queries by connected users. |
For more details, check Access Control docs. | |
Possible values: | |
- DEFAULT - keeps the default behaviour of Oxla | |
- OFF - turns off the access control. There is no validation of users at all. Everyone can login and execute any query. | |
- ON - turns on the acces control, hence all the validations are executed. |
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 underscore) replacing YAML hierarchy levels. For example:
NETWORK__PORT
environment variableEnvironment variables can be passed using the -e
parameter in the docker run
command, as presented below: