System Stats
Get live runtime metrics - CPU, memory, traffic, and request history.
| Endpoint | Method | Admin Required |
|---|---|---|
/api/v1/admin/systemStats | GET | Yes |
Returns live runtime metrics: CPU and memory usage, load average, uptime, HTTP traffic counters, a per-minute history of the last hour, and resource counts. This powers the charts on the admin dashboard.
Unlike Storage Stats, this endpoint never walks the storage tree - it is cheap to call and safe to poll every few seconds.
All metrics are held in memory and reset when the server restarts. Traffic totals are "since last restart", and the history covers at most the last 60 minutes.
In cluster mode,
metrics and multipartUploadCount describe only the node that answered this request - each node tracks its own process/traffic history, and an in-progress multipart upload's state only ever exists on the one node coordinating it. accessKeyCount, sharedLinkCount, and oidcProviderCount are backed by the shared control-plane database, so those are identical no matter which node answers. Use clusterNode to tell which node's data you're looking at.Response
{
"metrics": {
"uptimeSeconds": 86400.5,
"totalBytesIn": 3145935,
"totalBytesOut": 3146901,
"totalRequests": 1024,
"totalErrors": 3,
"processCPUPercent": 5.8,
"systemCPUPercent": 12.4,
"processMemoryBytes": 27623424,
"systemMemoryTotalBytes": 25769803776,
"systemMemoryAvailableBytes": 10094985216,
"loadAverage1": 1.42,
"loadAverage5": 1.87,
"loadAverage15": 2.05,
"coreCount": 12,
"history": [
{
"timestamp": "2026-07-01T21:09:00Z",
"bytesIn": 41,
"bytesOut": 400,
"requests": 2,
"errors": 1,
"cpuPercent": 4.2,
"memoryBytes": 27623424
}
]
},
"accessKeyCount": 4,
"sharedLinkCount": 2,
"oidcProviderCount": 1,
"multipartUploadCount": 0,
"clusterNode": {
"nodeId": "B1C2D3E4-F5G6-7890-HIJK-LM1234567890",
"address": "http://10.0.1.5:8080"
}
}
Response Fields
metrics
uptimeSeconds
number
Seconds since the server process started.
totalBytesIn
integer
Total HTTP request bytes received since the last restart.
totalBytesOut
integer
Total HTTP response bytes sent since the last restart.
totalRequests
integer
Total HTTP requests handled since the last restart.
totalErrors
integer
Requests that ended in a 4xx or 5xx response.
processCPUPercent
number (optional)
CPU usage of the Alarik process, as a percentage of one core (can exceed 100 on multicore machines). Absent until the first sampling interval has passed.
systemCPUPercent
number (optional)
System-wide CPU usage in percent. Linux only - absent on other platforms.
processMemoryBytes
integer (optional)
Resident memory (RSS) of the Alarik process in bytes.
systemMemoryTotalBytes
integer (optional)
Total system memory in bytes. Container-aware: inside Docker with a memory limit, this is the container's limit rather than the host total.
systemMemoryAvailableBytes
integer (optional)
Available system (or container) memory in bytes.
loadAverage1
number (optional)
1-minute load average.
loadAverage5 and loadAverage15 follow the same pattern.coreCount
integer
Number of active CPU cores.
history
array
Per-minute buckets covering up to the last 60 minutes, oldest first; the last entry is the currently accumulating minute. Each bucket has
timestamp, bytesIn, bytesOut, requests, errors, and (once sampled) cpuPercent and memoryBytes averages for that minute.Resource counts
accessKeyCount
integer
Total number of S3 access keys across all users.
sharedLinkCount
integer
Number of currently active shared file links.
oidcProviderCount
integer
Number of configured OIDC SSO providers (enabled or not).
multipartUploadCount
integer
Number of multipart uploads currently in progress and coordinated by this node. In cluster mode, other nodes may be coordinating uploads of their own that this count doesn't include.
clusterNode
nodeId
string
This node's id, from List Nodes.
address
string
This node's own
CLUSTER_NODE_ADDRESS.null when this node isn't part of a cluster - in that case every field above already describes the whole deployment, so there's nothing to disambiguate.
Example Usage
curl -X GET "{API_BASE_URL}/api/v1/admin/systemStats" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY"