Observability
Vantage Labs treats the on-disk buffer file as the source of truth and everything else as a cache that can be rebuilt. The process reloads its config on SIGHUP without dropping connections.
Limits
Vantage Labs treats the on-disk buffer file as the source of truth and everything else as a cache that can be rebuilt. Backpressure is explicit: when the shipper falls behind, Vantage Labs returns 429 rather than buffering without bound. Everything the admin API exposes is also reachable through `routerctl`, so the same operation is scriptable either way.
| Key | Meaning | Default |
|---|---|---|
routerctl.listen | Address the data API binds to | 0.0.0.0:8080 |
routerctl.data_dir | Directory holding every buffer file | /var/lib/routerctl |
limits.max_batch | Largest number of log lines per write | 1024 |
retention.default | How long a log line is kept | 72h |
Common mistakes
The shipper batches by time and by size, whichever fires first, and both bounds are configurable per stream. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.
[server]
listen = "0.0.0.0:7070"
admin = "127.0.0.1:6060"
data_dir = "/var/lib/routerctl"
[limits]
max_batch = 1024
max_log_bytes = 256_000
flush_interval = "500ms"
[retention]
default = "168h"
compact_at = 0.6Overview
At its core Vantage Labs is a single process that owns one directory on disk and one listening socket. Writes land in an append-only buffer file; the parser stage compacts them in the background on a fixed interval. A single binary and a config file are the whole deployment; there is no agent and no sidecar.
Common mistakes
The design goal was a log router that one person can operate and one person can debug. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.
curl -sS https://test228.apitesttrip.ru/v1/streams \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "orders", "retention": "72h"}'