Admin  /  Overview

Overview

Live · refreshes every 30s
Loading overview…
{{ error }}
Server needs attention. Memory or disk is running high (see the cards below). New anonymizations may fail until it drops.
Live repositories
{{ humanNum((data?.repos?.statusBreakdown || []).filter(s => s._id !== 'removed' && s._id !== 'expired').reduce((a, s) => a + (s.count || 0), 0)) }}
{{ humanNum(((data?.repos?.statusBreakdown || []).find(s => s._id === 'removed') || {}).count || 0) }} removed · {{ humanNum(data?.repos?.total) }} total
CPU
{{ data?.system?.cpuPercent }}%
{{ data?.system?.cpuCount }} cores · load {{ data?.system?.loadAvg?.[0]?.toFixed(1) }}
Memory
{{ data?.system?.memPercent }}%
{{ data?.system?.memPercent > 90 ? 'Critical' : 'High' }} · {{ humanBytes(data?.system?.memUsed).replace(/\s*GB$/, '') }} / {{ humanBytes(data?.system?.memTotal) }}
Disk
{{ data?.system?.diskPercent }}%
{{ data?.system?.diskPercent > 90 ? 'Critical' : 'High' }} · {{ humanBytes(data?.system?.diskUsed).replace(/\s*GB$/, '') }} / {{ humanBytes(data?.system?.diskTotal) }}
Uptime
{{ humanDuration(data?.system?.uptime) }}
{{ data?.system?.nodeVersion }} · {{ data?.system?.platform }}
New repos today
{{ fmt?.number(data?.daily?.today?.repositories || 0) }}
so far today
New users today
{{ fmt?.number(data?.daily?.today?.users || 0) }}
{{ fmt?.number(data?.users?.total) }} total users
Page views today
{{ fmt?.number(data?.daily?.today?.pageViews || 0) }}
so far today
Daily page views · 30d views/day · peak {{ fmt?.number(historyMax('dailyPageViews')) }}
{{ 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 · peak {{ fmt?.number(historyMax('dailyRepositories')) }}
{{ historyLabel(data?.history[0]) }} {{ historyLabel(data?.history[Math?.floor(data?.history?.length/2)]) }} {{ historyLabel(data?.history[data?.history?.length - 1]) }}
Users · 30d total users · {{ fmt?.number(historyRange('nbUsers').min) }}–{{ fmt?.number(historyRange('nbUsers').max) }}
{{ 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 · peak {{ fmt?.number(historyMax('dailyUsers')) }}
{{ 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

Cache

Shared storage, repeated reads and anonymization work · refreshes every 30 seconds

Loading cache monitoring…

Request performance

Request latency and process health · refreshes every 30 seconds

Loading performance monitoring…

Route latency for the selected time range
RouteRequestsAverageFirst byte p95p95p99Interrupted5xxSlow
{{ row.route }}{{ row.service }} · {{ row.method }} {{ fmt.number(row.count) }}{{ formatMs(row.avgMs) }} {{ firstByteBound(row) }}{{ latencyBound(row, 'p95UpperMs') }}{{ latencyBound(row, 'p99UpperMs') }} {{ fmt.number(row.aborted) }}{{ fmt.number(row.errors) }}{{ fmt.number(row.slow) }}

No recorded requests in this time range yet.

API and streamer processes · latest sample per instance

No recent process samples. Monitoring coverage is incomplete.
API and streamer process resource usage
ProcessRSS / limitCPUEvent loop p95Active requestsSockets / CLOSE_WAITWorkers / waitingSample ageDropped batches / metrics
{{ sample.instance }} Needs attention {{ humanBytes(sample.memory.rss) }} / {{ humanBytes(sample.memoryLimitBytes) }}Peak {{ humanBytes(peakRss(sample)) }} {{ sample.cpuPercent == null ? 'Unavailable' : sample.cpuPercent.toFixed(1) + '%' }}{{ sample.eventLoop?.p95Ms == null ? 'Not applicable' : 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
Work stageSamplesAveragep95
{{ row.metric }}{{ row.service }}{{ fmt.number(row.count) }}{{ formatMs(row.avgMs) }}{{ latencyBound(row, 'p95UpperMs') }}

No recorded work stages or cache results in this time range yet.

How to read these metrics

Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked “Needs attention” have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.