Admin · System Health

Overview

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.

ServiceRouteRequestsAverageFirst byte p95p95p99Interrupted5xxSlow
{{ 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.

ProcessRSS / limitPeak RSS in windowCPUEvent loop p95Active requestsSockets / CLOSE_WAITWorkers / waitingSample ageDropped 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

ServiceStageSamplesAveragep95
{{ 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]) }}
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