Docs / Configuration

Configuration reference

All keys are optional unless marked otherwise. Durations accept s, m, h; sizes accept KB, MB, GB.

source

KeyDefaultNotes
source.paths— (required)Glob patterns, evaluated at start and every source.rescan.
source.formatjsonOne of json, logfmt, regex.
source.regex—Named capture groups become event fields. Required for format: regex.
source.rescan60sHow often the glob is re-evaluated for rotated files.
source.max_line64KBLonger lines are truncated and counted in meridian_dropped_lines_total.

backend

KeyDefaultNotes
backend.url— (required)HTTPS only; plain HTTP is refused unless backend.allow_insecure: true.
backend.token_envMERIDIAN_TOKENName of the environment variable holding the bearer token.
backend.timeout15sPer-request timeout, including the response body.
backend.tls_verifytrueNever disable outside a test environment.

batch and retry

KeyDefaultNotes
batch.size500Events per request. Larger batches increase memory use linearly.
batch.interval2sA partial batch is sent when the interval expires.
retry.max10Attempts before the batch is written to spool.dir/failed.
retry.backoff1sDoubles per attempt, capped at retry.max_backoff (5m).
retry.honour_429trueUses the backend's Retry-After header when present.

spool

KeyDefaultNotes
spool.dir/var/lib/meridian/spoolMust be writable by the service account.
spool.max_size512MBWhen full, the oldest acknowledged segments are removed first.
spool.fsync1sDurability window; 0 disables explicit fsync.

Logging

KeyDefaultNotes
log.levelinfodebug logs every batch and should be temporary.
log.formattextjson for machine parsing.
listennoneOptional address for /metrics and /health, e.g. 127.0.0.1:9191.

Example with overrides

source:
  paths: ["/var/log/nginx/*.log"]
  format: logfmt
batch:
  size: 200
  interval: 5s
listen: 127.0.0.1:9191

Environment variables use the prefix MERIDIAN_ and override the file: MERIDIAN_BATCH_SIZE=200.