Tail
Log collection
Watches your log files. Every new line becomes a structured LogLine with source, timestamp, and message.
uplog is a single binary that tails your log files, collects system metrics, and ships structured JSON to any backend over HTTP. Configure it in five lines of TOML.
Tail
Watches your log files. Every new line becomes a structured LogLine with source, timestamp, and message.
Collect
Snapshots CPU usage, memory, disk, and network counters on your configured interval.
Ship
Batches everything into a single JSON payload and POSTs it to your endpoint. Works with any backend.
[agent]
id = "prod-api-01"
[logs]
paths = ["/var/log/app.log", "/var/log/nginx/access.log"]
[metrics]
interval_secs = 30
[shipper]
endpoint = "https://your-backend.com/ingest"
ship_interval_seconds = 60Drop it in the same directory as the binary, or pass --config /path/to/uplog.toml
{
"agent_id": "prod-api-01",
"timestamp": "2025-06-07T10:00:00Z",
"metrics": {
"collected_at": "2025-06-07T09:59:30Z",
"cpu_usage_percent": 12.4,
"memory_used_mb": 1024,
"memory_total_mb": 8192,
"disk_used_gb": 45.2,
"disk_total_gb": 200.0,
"network_bytes_sent": 104857600,
"network_bytes_recv": 52428800
},
"logs": [
{
"source": "file:/var/log/app.log",
"timestamp": "2025-06-07T10:00:00Z",
"message": "GET /api/health 200 14ms"
}
]
}Every payload is self-describing. No schema registration. No agents to configure on the receiving end.
# Linux / macOS
curl -fsSL https://uplog.in/install | sh
# Windows (PowerShell)
irm https://uplog.in/install | iex
# Run
uplog --config uplog.tomlSource available on GitHub. Build from source with cargo build --release