Admin · System Health
Loading overview…
{{ error }}
Request performance
{{ performanceError }}
Loading performance monitoring…
Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds. Samples refresh every 30 seconds.
| Service | Route | Requests | Average | First byte p95 | p95 | p99 | Interrupted | 5xx | Slow |
| {{ row.service }} | {{ row.method }} {{ row.route }} | {{ row.count }} | {{ row.avgMs }} ms |
{{ firstByteBound(row) }} | {{ latencyBound(row, 'p95UpperMs') }} | {{ latencyBound(row, 'p99UpperMs') }} |
{{ row.aborted }} | {{ row.errors }} | {{ row.slow }} |
No recorded requests in this window yet.
API and streamer processes
No recent process samples. Monitoring coverage is incomplete.
| Process | RSS / limit | Peak RSS in window | CPU | Event loop p95 | Active requests | Sockets / CLOSE_WAIT | Workers / waiting | Sample age | Dropped batches / metrics |
| {{ sample.instance }} | {{ humanBytes(sample.memory.rss) }} / {{ humanBytes(sample.memoryLimitBytes) }} |
{{ humanBytes(peakRss(sample)) }} | {{ sample.cpuPercent.toFixed(1) }}% | {{ sample.eventLoop.p95Ms.toFixed(1) }} ms |
{{ sample.activeRequests }} | {{ sample.sockets?.descriptors ?? 'Unavailable' }} / {{ sample.sockets?.closeWait ?? 'Unavailable' }} |
{{ sample.workers?.running ?? 0 }} / {{ sample.workers?.waiting ?? 0 }} | {{ sampleAge(sample) }} s |
{{ sample.droppedBatches }} / {{ sample.droppedMetrics }} |
Work stages and cache results
| Service | Stage | Samples | Average | p95 |
| {{ row.service }} | {{ row.metric }} | {{ row.count }} | {{ row.avgMs }} ms | {{ latencyBound(row, 'p95UpperMs') }} |
Repositories
{{ humanNum(data?.repos?.total) }}
+{{ data?.repos?.newRepos24h }} · last 24h
CPU
{{ data?.system?.cpuPercent }}%
{{ data?.system?.cpuCount }} cores · load {{ data?.system?.loadAvg?.[0]?.toFixed(1) }}
Memory
{{ data?.system?.memPercent }}%
{{ humanBytes(data?.system?.memUsed) }} / {{ humanBytes(data?.system?.memTotal) }}
Disk
{{ data?.system?.diskPercent }}%
{{ humanBytes(data?.system?.diskUsed) }} / {{ humanBytes(data?.system?.diskTotal) }} · {{ data?.system?.diskMount }}
Uptime
{{ humanDuration(data?.system?.uptime) }}
{{ data?.system?.nodeVersion }} · {{ data?.system?.platform }}
New repos today
+{{ fmt?.number(data?.daily?.today?.repositories) }}
since yesterday
New users today
+{{ fmt?.number(data?.daily?.today?.users) }}
{{ fmt?.number(data?.users?.total) }} total users
Page views today
+{{ fmt?.number(data?.daily?.today?.pageViews) }}
since yesterday
Daily page views · 30d
views/day
{{ historyLabel(data?.history[0]) }}
{{ historyLabel(data?.history[Math?.floor(data?.history?.length/2)]) }}
{{ historyLabel(data?.history[data?.history?.length - 1]) }}
New repos · 30d
repos/day
{{ historyLabel(data?.history[0]) }}
{{ historyLabel(data?.history[Math?.floor(data?.history?.length/2)]) }}
{{ historyLabel(data?.history[data?.history?.length - 1]) }}
Users · 30d
total users
{{ historyLabel(data?.history[0]) }}
{{ historyLabel(data?.history[Math?.floor(data?.history?.length/2)]) }}
{{ historyLabel(data?.history[data?.history?.length - 1]) }}
New users · 30d
users/day
{{ historyLabel(data?.history[0]) }}
{{ historyLabel(data?.history[Math?.floor(data?.history?.length/2)]) }}
{{ historyLabel(data?.history[data?.history?.length - 1]) }}
Repo status
{{ fmt?.number(data?.repos?.total) }} total
Errors · 24h
{{ data?.errors?.last24h }} total
5xx
{{ data?.errors?.severity?.error }}
4xx
{{ data?.errors?.severity?.warn }}
Info
{{ data?.errors?.severity?.info }}
Services
{{ fmt?.number(data?.users?.total) }} users · {{ data?.conferences?.total }} conferences
web
{{ data?.system?.nodeVersion }}
uptime {{ humanDuration(data?.system?.uptime) }}
download
{{ queueTotal(data?.queues?.download) }} jobs
idle
cache
{{ queueTotal(data?.queues?.cache) }} jobs
idle
remove
{{ queueTotal(data?.queues?.remove) }} jobs
idle
errors
{{ data?.errors?.last24h }} / 24h