Skip to main content
Use Install and run for startup.

Server settings

vexlo serve and vexlo check accept the same server configuration. check validates that configuration and estimates capacity without opening execution storage. The data directory is VEXLO_DATA_DIR, falling back to ~/.vexlo/data. Token commands use that directory through -data-dir or VEXLO_DATA_DIR; the server also accepts independent database and value paths. Keep token administration pointed at the server’s actual database. See Authentication for credentials and transport security, and Retention for stored-data lifetimes.

Relay settings

The relay and SDK must use the same queue directory. The endpoint is the server’s base URL; the credential must have the ingest role. The optional environment label is sent as X-Vexlo-Environment. It accepts 1–64 printable ASCII characters excluding commas. It does not select the team: the ingest token supplies that boundary. relay status accepts -spool-dir and -spool-budget-bytes. It reads queue status without requiring a running relay. /healthz and /metrics use the relay’s health listener, separate from the server API.

Environment resolution

For relay and server boolean environment settings, empty, 0 and false mean false; false is case-insensitive. Other nonempty values mean true. A true environment value is still applied when the corresponding flag is false, so set the environment variable to 0 to turn that setting off. For paths and credentials, a nonempty explicit flag takes precedence over its environment fallback. Unset storage paths then resolve to the defaults listed above.

Reload the relay destination or token

Configure -destination-file, -token-file, or both at startup to enable reload. Each file contains one destination URL or token. Send SIGHUP to the relay after updating the file. The relay trims surrounding whitespace, validates the new configuration and retains the old configuration if validation fails. These files do not supply startup values. Provide -destination / VEXLO_ENDPOINT and -token / VEXLO_INGEST_TOKEN at startup as well. Changing another shell’s environment does not update a running relay. A SIGHUP without either file setting is refused.

Capture policy

vexlo policy set writes a whole policy through the server. It uses an ingest token and the server URL from VEXLO_INGEST_TOKEN and VEXLO_ENDPOINT, or their explicit command flags. Add -service to target one service; omit it for the team’s default. Team scope comes from the token, not another command argument. Supply all four flags, using =false for a false boolean. The Python SDK does not enforce policy max_value_bytes; its value bound remains 16 KiB. Do not use this field to enforce a smaller data boundary. The Python SDK also recognizes policy restrictions for capture_values and capture_error_message. The current server/relay administrative interface does not expose those fields. Configure them locally through init() when you need that restriction.

Policy freshness and fallback

The relay receives service policy through heartbeats and writes it for the SDK. The Python SDK checks its policy cache on a one-second cadence. A missing, unreadable or malformed policy, a missing or invalid updated_at, or a timestamp older than 300 seconds causes fallback to the configuration supplied to init(). A remote restriction therefore does not remain enforced indefinitely during a delivery outage. Put required data restrictions in local SDK configuration; a service policy can lower that ceiling while it remains usable, but cannot replace it. policy show reads the server’s resolved policy through a heartbeat. It shows the configured policy, not a measurement that each application process has received or enforced it. See Capture controls for local data-handling decisions.

Capacity check

-expected-write-rate affects check, not serve. The check estimates value retention using fixed bytes per trace rather than measuring application traffic. Values expiring before call records are reported without failing the check. Both commands reject a value budget greater than the total capacity of its volume unless -allow-overcommit is set. A budget greater than current free space only produces a warning. See Retention for capacity planning.