Eventum Logo

Eventum

$ eventum generate

Run a single generator from the command line — all options, verbosity levels, signal handling, and exit codes.

Runs a single generator without the application server. This is the quickest way to test a generator or produce events in a script or CI pipeline. All execution parameters that would normally come from eventum.yml and startup.yml are passed as CLI flags instead.

eventum generate [OPTIONS]

Options

Generator

OptionTypeDefaultRequiredDescription
--idstringYesUnique identifier for the generator. Used in log messages.
--pathpathYesPath to the generator config file (generator.yml).
--live-modebooleantrueNotrue — generate events at their scheduled timestamps in real time. false — generate all events as fast as possible (sample mode).
--skip-pastbooleantrueNoIn live mode, skip timestamps that have already passed when the generator starts. When false, past timestamps are generated immediately before catching up to real time.
--paramsJSON{}NoJSON object of parameters to substitute into the generator config. Example: --params '{"host": "localhost", "port": 9200}'.

Generation parameters

These correspond to the generation section of eventum.yml:

OptionTypeDefaultDescription
--timezonestring"UTC"IANA timezone for timestamp generation (e.g. UTC, America/New_York, Europe/London).
--batch.sizeinteger10000Maximum number of events per batch. At least one of --batch.size or --batch.delay must be set.
--batch.delayfloat1.0Maximum seconds to wait before flushing a partial batch. At least one of --batch.size or --batch.delay must be set.
--queue.max-timestamp-batchesinteger10Maximum timestamp batches in the input→event queue.
--queue.max-event-batchesinteger10Maximum event batches in the event→output queue.
--keep-orderbooleanfalseProcess output batches sequentially to preserve chronological order. Disables concurrent writes.
--max-concurrencyinteger100Maximum concurrent write operations across all output plugins.
--write-timeoutinteger10Timeout in seconds for a single write operation.

Logging and security

OptionTypeDefaultDescription
-v, --verbosecount0Verbosity level for log output. Repeat the flag to increase (up to 5 times). Logs are written to stderr.
--cryptfilepathPath to the keyring cryptfile for secret retrieval. If omitted, uses the system default location.

Verbosity levels

FlagLevelWhat gets logged
(none)DisabledNo log output
-vCRITICALOnly critical errors
-vvERRORErrors and critical
-vvvWARNINGWarnings, errors, and critical
-vvvvINFOInformational messages and above (recommended for debugging)
-vvvvvDEBUGEverything, including internal details

Signal handling

SignalBehavior
SIGINT (Ctrl+C)Stops the generator gracefully and exits.
SIGTERMStops the generator gracefully and exits.

Exit codes

CodeMeaning
0Generator completed successfully.
1Generator failed to start (invalid config, missing secrets, plugin error).
130Terminated by SIGINT (128 + 2).
143Terminated by SIGTERM (128 + 15).

Examples

Minimal invocation — generate events in real time with console output:

eventum generate --id my-gen --path ./my-generator/generator.yml

Sample mode with verbose logging — generate all events at once:

eventum generate \
  --id test-gen \
  --path ./generators/access-logs/generator.yml \
  --live-mode false \
  -vvvv

Custom timezone and batch size:

eventum generate \
  --id web-logs \
  --path ./generators/web/generator.yml \
  --timezone America/New_York \
  --batch.size 50000 \
  --batch.delay 2.0

With secrets from a keyring cryptfile:

eventum generate \
  --id prod-gen \
  --path ./generators/prod/generator.yml \
  --cryptfile ./cryptfile.cfg \
  -vvvv

With parameters to inject values into the generator config:

eventum generate \
  --id web-logs \
  --path ./generators/web/generator.yml \
  --params '{"opensearch_host": "https://localhost:9200", "index_name": "dev-logs"}'

Ordered output for deterministic results:

eventum generate \
  --id ordered-gen \
  --path ./generator.yml \
  --keep-order true \
  --max-concurrency 10 \
  --write-timeout 30

Pipe output to another tool:

eventum generate \
  --id pipe-gen \
  --path ./generator.yml \
  --live-mode false | jq '.'

When piping output, make sure the generator uses the stdout output plugin. Logs go to stderr (when enabled with -v), so they won't interfere with piped event data.

On this page