Troubleshooting per i tester
Questo runbook è rivolto ai tester che devono rispondere alle domande dei giocatori su ore registrate e file caricati.
Domande principali
I tester devono essere in grado di rispondere a:
- Questo giocatore ha registrato delle sessioni?
- Quante ore di registrazione validate ha il giocatore?
- Quali sessioni sono uploadable, blocked, failed o uploaded?
- Per ogni sessione caricata, MP4, CSV e JSON sono presenti?
- Quali sono gli URL S3 di download per ciascun artifact caricato?
- Se una sessione è fallita o è stata bloccata, qual è il motivo specifico?
Chiave di lookup
La chiave di lookup umana preferita è steam_name. Le dashboard dei tester possono mappare da steam_name all'identità utente Playroll e poi a sessioni/upload.
L'identità tecnica stabile resta lo user ID memorizzato dal prodotto. steam_name è utile per il supporto, ma può cambiare e non va trattata come unica identità.
Riepilogo atteso per il tester
Per un dato giocatore, mostra:
| Campo | Descrizione |
|---|---|
| Steam name | Chiave di lookup umana. |
| Playroll user ID | Identità utente stabile lato prodotto. |
| Total sessions | Conteggio delle sessioni di registrazione note. |
| Uploadable sessions | Sessioni che hanno passato la validazione. |
| Uploaded sessions | Sessioni con la tripletta di artifact completa caricata. |
| Blocked sessions | Sessioni che hanno fallito la validazione locale. |
| Failed sessions | Sessioni che non si sono concluse normalmente. |
| Valid recorded hours | Somma delle durate di sessione validate. |
| Uploaded hours | Somma delle sessioni con artifact completi caricati. |
| Latest activity | Timestamp della sessione o dell'upload più recente. |
Dettaglio sessione
Ogni riga di sessione dovrebbe mostrare:
| Campo | Descrizione |
|---|---|
| Session ID | Identificatore stabile della sessione. |
| Started at | Timestamp di inizio registrazione. |
| Ended at | Timestamp terminale. |
| Duration | Durata validata, quando disponibile. |
| Final status | uploadable, blocked, failed o uploaded. |
| Failure reason | Motivo granulare in caso di blocked o failed. |
| MP4 | Presente/mancante più URL S3 se caricato. |
| CSV | Presente/mancante più URL S3 se caricato. |
| JSON | Presente/mancante più URL S3 se caricato. |
Checklist di escalation
Escalare a engineering quando:
- Un giocatore ha sessioni completate con successo in locale ma nessun record sul server.
- I conteggi degli artifact caricati non corrispondono alla tripletta attesa.
- Le ore validate differiscono in modo significativo dalla durata dell'MP4.
- Una sessione non ha uno stato terminale.
- Il failure reason è generico e non spiega il problema.
Segnali da raccogliere prima dell'escalation
Quando un giocatore segnala che la registrazione è fallita, che le ore caricate sembrano sbagliate o che un video appare difettoso, raccogli:
| Segnale | Perché è importante |
|---|---|
| Codice errore visibile all'utente | Codice stabile dal core, ad esempio WINDOW_NOT_16_9 o ENCODER_FAILURE_MIDSESSION. |
| Final status della sessione | Distingue uploadable, blocked, failed e uploaded. |
| Motivo del blocco in validazione | Spiega perché MP4/CSV/JSON non sono diventati uploadable. |
capture.v2.fps_profiler.event | Indica se il core ha rilevato FPS bassi e il motivo probabile. |
| Eventi di upload | Indica se i file hanno raggiunto S3 o sono falliti prima dell'upload. |
| Eventi window/settings | Spiega arresti dovuti a perdita finestra, auto-pause o policy delle impostazioni. |
Il catalogo completo dei segnali è mantenuto in Core Signals.