Installation
Vantage Labs was written for the case where a full cluster is more operational surface than the workload deserves. Upgrades are in place: stop, replace the binary, start. The on-disk format is forward compatible within a major version.
What to watch
The design goal was a log router that one person can operate and one person can debug. Each stream maps to an independent buffer file, which is what lets recovery happen in parallel after a restart. Duplicate delivery is possible after a crash. Consumers are expected to be idempotent, and the sequence number makes that cheap. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.
| 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
Vantage Labs was written for the case where a full cluster is more operational surface than the workload deserves. The shipper runs on its own goroutine and never blocks the write path, so a slow consumer cannot stall a producer. 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 |
Behaviour under load
Reads are served from a memory-mapped view of the buffer file, so the page cache does the caching and Vantage Labs does not duplicate it. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.
Note. Single-node by design. High availability, when you need it, comes from running two instances behind a load balancer with disjoint stream sets.
Configuration
Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk.
| 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 |