Add autoscaling outcomes to Metrics (Refs #140)

This commit is contained in:
2026-10-10 17:51:31 -04:00
parent 0bfda267ec
commit 528ed7f37a
15 changed files with 612 additions and 6 deletions
+34 -2
View File
@@ -26,10 +26,35 @@ history or the original installation date.
Background refresh keeps the last successful report visible on failure and offers
Retry. Returning to a visible tab refreshes immediately. Game and map filters apply
to the whole report, including comparisons, signals, and the heatmap. Map choices
preserve the exact recorded game/map pair and include retained occupancy and match
history. Range and scope are shareable through the URL; refreshes preserve table
preserve the exact recorded game/map pair and include retained occupancy, match,
and autoscaling Provisioning history. Range and scope are shareable through the URL; refreshes preserve table
controls and chart selection.
## Autoscaling operations
The **Autoscaling** section follows the selected period, game, and map and links
to the policies. **Lobbies added** and **Lobbies removed** count successful create
and remove operations, including completions with warnings. Failed and cancelled
operations appear separately. Counts come from retained Provisioning records
linked to autoscaling, independently of occupancy samples; manual operations and
changes in sampled lobby counts do not contribute.
An operation belongs to the period containing its finish time, including both
endpoints. A request made before the period still counts if it finishes within it;
pending operations and finishes outside the period do not count. **Request to
ready** shows the average and maximum request-to-finish duration of successful
creates with valid timestamps, including queue time. Each create has equal weight.
Without valid completed creates, these timings are unavailable, not zero. Verified
readiness does not establish browser visibility or successful external joins.
Scope uses the operation's recorded server name, which encodes its game and map
variant. Game-wide policies do not combine different variants when filtering by
map. Friendly map names, slugs, and unambiguous canonical map names are supported;
an ambiguous engine label such as `zm_transit` is not assigned to a variant.
History survives server removal and policy deletion, subject to Provisioning
retention. Missing or purged operations are not estimated. The policy card's
31-day spare-deficit measurements remain separate from this section.
## Matches and groups
**Matches started** counts retained matches whose recorded start falls within the
@@ -199,3 +224,10 @@ map durations and coverage. `autoscalingPaused` reports the current global pause
separately from each policy's own `pausedReason`. Policy edits and global pause changes invalidate
cached metrics reports, as do changes to the match and player participation data
used by the report.
`autoscaling` contains `added`, `removed`, `failed`, `cancelled`, `readinessSamples`,
`readinessMeanSeconds`, and `readinessMaxSeconds`. Counts use `finished_at` in the
selected window; readiness uses `finished_at - started_at` for successful creates
with nonnegative, valid durations. Both timing values are `null` when there are
no readiness samples. Changes to Provisioning outcomes or autoscaling source
links invalidate cached reports, including when no new occupancy is collected.