Eventum Logo

Eventum

eventum.yml

Full schema reference for the main application configuration file — server, logging, paths, and default generation parameters.

The main application config controls how Eventum runs as a service with eventum run. It defines four sections: server settings, file paths, logging, and default generation parameters that all generators inherit.

eventum.yml
server:
  host: "0.0.0.0"
  port: 9474

path:
  startup: /etc/eventum/startup.yml
  generators_dir: /etc/eventum/generators
  logs: /var/log/eventum
  keyring_cryptfile: /etc/eventum/cryptfile.cfg

log:
  level: info
  format: plain

generation:
  timezone: UTC
  batch:
    size: 10000

The config supports both nested YAML and dot notation. For example, server.host: "0.0.0.0" is equivalent to the nested server: { host: "0.0.0.0" }. Both formats can be mixed in the same file.

Extra fields are forbidden — any unrecognized key will cause a validation error at load time.


server

Controls the built-in web server that exposes the UI and REST API.

ParameterTypeDefaultConstraintsDescription
server.ui_enabledbooleantrueEnable the web-based management UI.
server.api_enabledbooleantrueEnable the REST API endpoints.
server.hoststring"0.0.0.0"Non-empty.Address the server binds to.
server.portinteger9474>= 1Port the server binds to.

server.ssl

TLS/SSL settings for the server.

ParameterTypeDefaultConstraintsDescription
server.ssl.enabledbooleanfalseEnable HTTPS. When true, cert and cert_key are required.
server.ssl.verify_modestring or nullnull"none", "optional", or "required"Client certificate verification mode. "none" — no client certificate required. "optional" — request but don't require. "required" — reject connections without a valid client certificate.
server.ssl.ca_certpath or nullnullMust be an absolute path.CA certificate for verifying client certificates.
server.ssl.certpath or nullnullMust be an absolute path. Required when SSL is enabled. Must be provided together with cert_key.Server certificate file.
server.ssl.cert_keypath or nullnullMust be an absolute path. Required when SSL is enabled. Must be provided together with cert.Server certificate private key file.

All SSL paths must be absolute.

server:
  ssl:
    enabled: true
    cert: /etc/eventum/server.crt
    cert_key: /etc/eventum/server.key
    verify_mode: optional
    ca_cert: /etc/eventum/ca.crt

server.auth

HTTP basic authentication credentials for the UI and API.

ParameterTypeDefaultConstraintsDescription
server.auth.userstring"eventum"Non-empty.Username.
server.auth.passwordstring"eventum"Non-empty.Password.

Change the default credentials before exposing Eventum on a network.


path

File system paths used by the application. All paths must be absolute.

ParameterTypeDefaultConstraintsDescription
path.logspathRequired. Must be an absolute path.Directory for application log files. Created automatically if it doesn't exist.
path.startuppathRequired. Must be an absolute path.Path to the startup.yml file.
path.generators_dirpathRequired. Must be an absolute path.Directory containing generator subdirectories. Generator paths in startup.yml are resolved relative to this directory.
path.keyring_cryptfilepathRequired. Must be an absolute path.Path to the encrypted keyring file used for secrets.
path.generator_config_filenamepath"generator.yml"Single filename. Must end with .yml or .yaml.The expected config filename inside each generator directory. Used by the API to auto-detect valid generator directories.
path:
  startup: /etc/eventum/startup.yml
  generators_dir: /etc/eventum/generators
  logs: /var/log/eventum
  keyring_cryptfile: /etc/eventum/cryptfile.cfg
  generator_config_filename: generator.yml

log

Controls application logging — separate from the events that generators produce.

ParameterTypeDefaultConstraintsDescription
log.levelstring"info""debug", "info", "warning", "error", or "critical"Minimum severity level for log messages.
log.formatstring"plain""plain" or "json"Log output format. "plain" is human-readable, "json" is structured.
log.max_bytesinteger10485760 (10 MiB)>= 1024Maximum size per log file before rotation.
log.backupsinteger5>= 1Number of rotated log files to keep.
log:
  level: info
  format: json
  max_bytes: 52428800    # 50 MiB
  backups: 10

generation

Default generation parameters inherited by all generators. Individual generators can override any of these in startup.yml.

ParameterTypeDefaultConstraintsDescription
generation.timezonestring"UTC"Valid IANA timezone. Min length: 3.Default timezone for generating timestamps.

generation.batch

Controls how events are grouped before being passed to output plugins:

ParameterTypeDefaultConstraintsDescription
generation.batch.sizeinteger or null10000*>= 1Maximum number of events per batch.
generation.batch.delayfloat or null1.0*>= 0.1Maximum seconds to wait before flushing a partial batch.

*The defaults of 10000 and 1.0 apply as a pair when neither field is specified. If you set only one, the other defaults to null. At least one of size or delay must be set. When both are set, the batch is flushed when either limit is reached — whichever comes first.

generation.queue

Controls the internal queues between pipeline stages. These act as backpressure buffers — when a downstream stage is slower, the upstream stage will block once the queue is full.

ParameterTypeDefaultConstraintsDescription
generation.queue.max_timestamp_batchesinteger10>= 1Maximum timestamp batches in the input→event queue.
generation.queue.max_event_batchesinteger10>= 1Maximum event batches in the event→output queue.

Concurrency and ordering

ParameterTypeDefaultConstraintsDescription
generation.keep_orderbooleanfalseWhen true, output plugins process batches sequentially to preserve chronological order.
generation.max_concurrencyinteger100>= 1Maximum number of concurrent write operations across all output plugins.
generation.write_timeoutinteger10>= 1Timeout in seconds for a single write operation.
generation:
  timezone: America/New_York
  batch:
    size: 20000
    delay: 2.0
  queue:
    max_timestamp_batches: 20
    max_event_batches: 20
  keep_order: false
  max_concurrency: 200
  write_timeout: 30

Complete example

eventum.yml
# Server
server:
  ui_enabled: true
  api_enabled: true
  host: "0.0.0.0"
  port: 9474
  ssl:
    enabled: true
    cert: /etc/eventum/server.crt
    cert_key: /etc/eventum/server.key
    verify_mode: none
  auth:
    user: admin
    password: s3cret

# Paths
path:
  startup: /etc/eventum/startup.yml
  generators_dir: /etc/eventum/generators
  logs: /var/log/eventum
  keyring_cryptfile: /etc/eventum/cryptfile.cfg

# Logging
log:
  level: info
  format: json
  max_bytes: 52428800
  backups: 10

# Default generation parameters
generation:
  timezone: UTC
  batch:
    size: 10000
    delay: 1.0
  queue:
    max_timestamp_batches: 10
    max_event_batches: 10
  keep_order: false
  max_concurrency: 100
  write_timeout: 10

What's next

On this page