Show match demand in metrics (Refs #138)
CI / checks (push) Successful in 4m44s

This commit is contained in:
2026-10-10 16:26:32 -04:00
parent ea932ec563
commit 616b1937ed
15 changed files with 775 additions and 42 deletions
+16 -3
View File
@@ -255,7 +255,7 @@
</div>
{/if}
<p class="range">{scopeLabel} · {format.period(report.since)} – {format.period(report.now)}</p>
{#if captured > 0}<MetricsSummary {report} />{/if}
<MetricsSummary {report} />
{#if captured === 0}
<Card>
<EmptyState
@@ -312,6 +312,8 @@
disabled={scopeNavigating}
onTimeZoneChange={(value) => changeScope({ timeZone: value })}
/>
{/if}
{#if captured > 0 || report.matches.started > 0}
<Tabs
tabs={[
{ id: 'maps', label: 'Maps' },
@@ -379,6 +381,16 @@
including unknown status. Empty spares are expected when an autoscaling policy keeps
lobbies ready.
</p>
<p>
Matches started counts retained matches whose start time falls within this report’s
window, including both endpoints and all match statuses. If a match did not report a
start time, its first observation is used. Average group is the mean number of distinct
recorded players across each match’s lifetime, including later arrivals. Solo means
exactly one recorded player. Both average group and solo share exclude matches with no
recorded players; those matches still count as started. Ongoing matches can change as
players join. Match records are independent of sampled lobby occupancy, and missing or
purged records are not estimated.
</p>
<p>
No empty lobby measures map time when at least one lobby has known occupancy and no
tracked lobby reports zero players. If every lobby is unknown, map availability is
@@ -389,8 +401,9 @@
</p>
<p>
Each periodic observation covers at most {ONLINE_MAX_MS / 1000} seconds. Longer collection
gaps are excluded. History is retained for 31 days. Player-hours include all players reported
by the server and are estimates, not individual session records.
gaps are excluded. Occupancy history defaults to 31 days; saved match retention is configured
separately. Player-hours include all players reported by the server and are estimates, not
individual session records.
</p>
<p>
Timeline buckets are aligned to UTC, with labels shown in {report.scope.timeZone.replaceAll(