Migliorare il monitoraggio dell'esperienza utente su Twitch: il viaggio QoUX
Informazioni sull’autore: sono Chirag Sachdeva, un ingegnere aerospaziale diventato ingegnere informatico nel team Memberships di Twitch. Sono stato un orgoglioso membro della famiglia Twitch negli ultimi quattro anni, lavorando su iniziative come abbonamenti, regali, Turbo e stemma del fondatore. Per me, l’esperienza utente è sempre tra le principali priorità ed è uno dei fattori trainanti del mio lavoro qui su Twitch.
Nel mondo frenetico dello streaming live, la qualità dell’esperienza utente influisce direttamente sulla fidelizzazione e soddisfazione degli spettatori. Sono entusiasta di condividere come Twitch ha trasformato le sue capacità di monitoraggio attraverso la Quality of User Experience (QoUX), un’iniziativa che ci ha permesso di comprendere il comportamento degli utenti, individuare più rapidamente e con meno sforzo i problemi che hanno effetto sugli utenti e rispondere prontamente.
La sfida
Nonostante un robusto monitoraggio del backend, ci siamo trovati di fronte a un punto cieco critico: comprendere esattamente come gli utenti vivono la nostra piattaforma in tempo reale. Lascia che ti accompagni attraverso un esempio specifico che illustra questo problema.
Immagina di essere uno spettatore di Twitch che desidera regalare un abbonamento plurimensile al tuo streamer preferito. Clicchi sul pulsante regala, selezioni il destinatario, ma quando provi a scegliere l’opzione di abbonamento di 3 mesi, il pulsante semplicemente non risponde. Dal tuo punto di vista, la funzionalità è rotta, ma dal nostro punto di vista del backend, tutto sembrava normale.
Questo esatto scenario si è verificato quando abbiamo lanciato un esperimento di regali che ha inavvertitamente disabilitato il pulsante di selezione multi-mese per un piccolo gruppo di utenti. I nostri sistemi di backend non hanno mostrato errori perché tecnicamente nessuna richiesta falliva: il pulsante semplicemente non inviava richieste. Il codice sul dispositivo dell’utente (il client) impediva all’interazione di raggiungere i nostri server.
Le tradizionali metriche lato server, sebbene preziose, non potevano dirci se un abbonato aveva difficoltà a completare un acquisto o se un flusso di regali stava fallendo in una regione specifica. Prima di QoUX, i nostri sistemi di monitoraggio e allerta si concentravano principalmente sui servizi e sull’infrastruttura di backend, lasciando lacune nel rilevamento di questo tipo di interruzioni lato client.
Potresti chiederti: perché non abbiamo semplicemente iniziato con il monitoraggio lato client fin dall’inizio? I compromessi sono significativi:
- Volume dei dati. Il monitoraggio lato client genera molti più dati rispetto al monitoraggio backend. Con milioni di utenti, ciascuno dei quali effettua dozzine di interazioni, la quantità di telemetria può rapidamente diventare opprimente.
- Considerazioni sulla privacy. Il monitoraggio lato client richiede un’attenta implementazione per rispettare la privacy degli utenti e conformarsi alle normative.
- Sfida di affidabilità. I sistemi di backend operano in ambienti controllati, mentre il monitoraggio dei client deve funzionare su innumerevoli tipi di dispositivi, browser, condizioni di rete ed estensioni che potrebbero interferire con il monitoraggio.
- Complessità dello sviluppo. Implementare un monitoraggio robusto lato client richiede codice aggiuntivo in ogni funzionalità, aumentando i tempi di sviluppo e il rischio di bug.
- Complessità del monitoraggio: trasformare eventi grezzi in informazioni utili non è semplice. Devono essere aggregati e trasformati con cura per evitare sia falsi positivi che falsi negativi.
QoUX è nato dall’esigenza di monitorare il software più vicino al punto in cui i clienti interagiscono con esso, sul lato client, affrontando queste sfide. Questa iniziativa è diventata una parte centrale delle capacità operative di Twitch, permettendoci di comprendere meglio il comportamento degli utenti, identificare più facilmente eventuali problemi che li riguardano e ridurre i tempi di risposta.
Cos’è QoUX?
La qualità dell’esperienza utente (QoUX) è un framework configurabile progettato per monitorare e analizzare le esperienze lato client. Si basa su tre principi fondamentali:
- Prima lato client. Monitora dove l’utente interagisce effettivamente con Twitch
- Visibilità in tempo reale. Approfondimenti istantanei sulle esperienze degli utenti
- Metriche azionabili. Dati che informano direttamente le decisioni sui prodotti
Come funzionano gli eventi lato client
Al cuore di QoUX ci sono gli eventi lato client: segnali di telemetria specializzati emessi direttamente dai dispositivi degli utenti. Questi eventi sono:
- Emesso dall’applicazione client. Che si tratti dell’app web di Twitch, dell’app mobile o dell’app per console, il codice client stesso genera questi eventi.
- Attivato durante le interazioni chiave con l’utente. Gli eventi si attivano quando gli utenti compiono azioni specifiche come cliccare sui pulsanti, tentare acquisti o navigare tra le pagine.
- Arricchito con dati contestuali. Ogni evento contiene dettagli sul dispositivo dell’utente, sulla regione e sul componente o sulla funzionalità specifica utilizzata.
- Progettato per avere un impatto minimo sulle prestazioni. Gli eventi vengono raggruppati e compressi per non influire sull’esperienza dell’utente.
Lascia che ti accompagni attraverso un esempio concreto di come funziona:
- Evento grezzo proveniente dal client: quando un utente clicca sul pulsante dell’abbonamento di più mesi, è generato un evento contenente:
- Tipo di pulsante: “multi_month_selection”
- ID funnel: “gift_subscription_flow”
- Tipo di evento: “click”
- Informazioni sul client: versione del browser/app mobile, tipo di dispositivo
- Regione: posizione geografica dell’utente
- Data e ora: quando si è verificata l’interazione
- Dopo la trasformazione e l’aggregazione: questi eventi grezzi sono:
- Trasmessi su Kinesis
- Elaborati dalle funzioni Lambda che filtrano, trasformano e aggregano i dati
- Raggruppati in intervalli di 5 minuti (l’intervallo varia in base al volume normale di quel tipo di evento)
- Arricchiti con ulteriore contesto dai nostri sistemi
- Cosa appare alla fine: i dati elaborati:
- Viene inviato alle dashboard di CloudWatch con impostazioni di allarme
- Per questo specifico evento del pulsante che dura più mesi, se 5 punti dati sono al di sotto di una soglia o non vengono ricevuti punti dati (quindi nessun clic su quel pulsante) negli ultimi 25 minuti, i nostri ingegneri di turno vengono avvisati
La tecnologia dietro QoUX
Al centro delle capacità di monitoraggio di QoUX c’è un framework che facilita la trasformazione, l’aggregazione e l’invio delle metriche degli eventi. Ma perché costruire un framework personalizzato invece di inviare solo eventi grezzi alle squadre?
Vantaggi del framework QoUX:
- Gestione del volume dei dati. Gli eventi client grezzi sovraccaricherebbero le squadre con petabyte di dati. QoUX aggrega e filtra in modo intelligente per fornire segnali significativi.
- Standardizzazione. Garantisce una struttura e un’elaborazione degli eventi coerenti in tutte le funzionalità di Twitch.
- Efficienza operativa. Le squadre quadre non devono costruire le proprie pipeline di elaborazione o sistemi di monitoraggio.
- Progettato attorno alla privacy. Gestisce le informazioni personali identificabili e i dati sensibili in modo appropriato a livello di framework.
Gli eventi vengono pubblicati su un flusso Kinesis, dove vengono trasformati, modellati, filtrati e aggregati dalle funzioni Lambda prima di essere pubblicati come metriche personalizzate su CloudWatch. Il framework combina i dati degli eventi in distribuzioni al minuto con dimensioni definite dalla squadra, comprime e scrive questi dati su CloudWatch Metrics direttamente o tramite l’Embedded Metrics Format (EMF) per i log ad alta cardinalità, consentendo analisi aggiuntive con Log Insights e riepiloghi top-N con Contributor Insights.
Monitoraggio e allerta in tempo reale
Gli allarmi di CloudWatch non sono impostati semplicemente con soglie statiche. Sono addestrati attraverso:
- Analisi storica dei normali schemi di utilizzo
- Soglie adattive che tengono conto delle variazioni dell’ora del giorno e del giorno della settimana
- Modelli di machine learning che rilevano anomalie oltre il semplice superamento delle soglie
- Analisi di correlazione per ridurre i falsi positivi
Queste metriche includono:
- Disponibilità del componente. Metriche per la disponibilità e le latenze a livello di componente, suddivise per regione.
- Azioni utente. Dati delle azioni degli utenti come i clic sui pulsanti, i tentativi di acquisto e le attività di regalo.
- Fallimenti. Avvisi attivati da guasti in questi flussi, inclusi i motivi specifici del guasto.
Impatto reale
Tornando al nostro esempio di regalo di più mesi: quando abbiamo lanciato un esperimento di regalo che ha disabilitato inavvertitamente il pulsante di selezione di più mesi per un sottoinsieme di utenti, QoUX ha rilevato il problema entro 25 minuti dal rilascio. Prima di QoUX, avremmo scoperto questo problema solo dopo che i clienti lo avessero segnalato, il che avrebbe potuto richiedere ore o addirittura giorni, soprattutto per le funzionalità utilizzate da segmenti più piccoli del nostro pubblico.
Gli allarmi personalizzati di CloudWatch monitorano i picchi nei tassi di errore, i fallimenti nelle azioni critiche e i problemi di latenza, assicurando di rilevare le interruzioni lato client o il degrado delle prestazioni più rapidamente che mai.
Casi d’uso di QoUX
Monitoraggio in tempo reale dell’esperienza del cliente
L’integrazione di QoUX con CloudWatch consente il monitoraggio in tempo reale di funzionalità chiave come abbonamenti, regalare abbonamenti e l’acquisto. Monitorando la disponibilità regionale, le latenze e gli eventi di guasto di questi componenti, possiamo identificare rapidamente le interruzioni e i guasti che influiscono direttamente sull’esperienza del cliente e sui ricavi. Questo approccio ha portato al rilevamento di diverse interruzioni critiche che in precedenza erano passate inosservate a causa della mancanza di monitoraggio lato client.
Monitoraggio del lancio delle funzionalità.
Una delle capacità distintive di QoUX è la sua abilità di monitorare le interazioni degli utenti in tempo reale durante i lanci delle funzionalità. Ad esempio, durante un recente lancio di una funzionalità che ha modificato un elemento chiave dell’interfaccia utente, abbiamo osservato un aumento inaspettato delle cancellazioni di abbonamenti tra gli utenti di lunga data. Grazie alle capacità di monitoraggio di QoUX, abbiamo identificato questo problema entro 10 minuti dal rilascio. Siamo riusciti a regolare rapidamente l’esperienza utente alterando la visibilità dell’elemento problematico dell’interfaccia utente, riducendo significativamente l’impatto negativo sulla fidelizzazione degli utenti. Questa capacità di insight e risposta rapida esemplifica la potenza del nostro sistema QoUX nel mantenere un’esperienza utente positiva, anche durante il lancio di funzionalità principali.
Rilevamento avanzato delle anomalie tramite CloudWatch Anomaly Detection
Il nostro rilevamento delle anomalie utilizza CloudWatch Anomaly Detection, che impiega l’apprendimento automatico per stabilire linee di base dinamiche per i modelli di interazione degli utenti. Ecco come l’abbiamo implementata:
- Creazione della linea di base. Configuriamo CloudWatch per analizzare 2-4 settimane di dati storici per ciascun parametro, al fine di stabilire schemi normali
- Soglie adattive. Oltre alle soglie statiche, utilizziamo le bande di rilevamento delle anomalie di CloudWatch che si regolano automaticamente in base all’ora del giorno e al giorno della settimana
- Avvisi contestuali. Quando vengono rilevate anomalie, i nostri avvisi includono contesti specifici come i motivi dell’errore, le regioni interessate e i dettagli dei componenti
Questo approccio si è dimostrato particolarmente efficace per le metriche con schemi ciclici o tendenze graduali che attiverebbero falsi allarmi con le soglie statiche tradizionali.
Monitoraggio e allerta unificati tra le squadre
QoUX ha trasformato le nostre capacità di monitoraggio organizzativo abbattendo i tradizionali silos e consentendo una visibilità senza interruzioni tra le squadre. Grazie all’osservabilità cross-account di CloudWatch, abbiamo creato un ecosistema in cui le squadre possono accedere, analizzare e impostare avvisi sui parametri condivisi in modo indipendente, mantenendo chiari i confini di proprietà.
Ad esempio, quando si verifica un problema rivolto al cliente nel flusso di abbonamento, sia la squadra degli Abbonamenti che la squadra degli Acquisti ha accesso immediato alla stessa fonte di verità. Questa visibilità condivisa consente un coordinamento più rapido e una risposta più efficace agli incidenti, poiché le squadre possono vedere esattamente quali componenti sono interessati e collaborare alle soluzioni senza perdere tempo a conciliare i diversi sistemi di monitoraggio.
L’approccio unificato ha ridotto il nostro tempo medio di rilevamento di circa il 40% e ha migliorato la collaborazione tra le squadre durante gli incidenti, poiché tutti lavorano sugli stessi dati in tempo reale.
Lezioni apprese e passi successivi
L’implementazione del monitoraggio lato client tramite QoUX ha dimostrato quanto possa essere potente la visibilità in tempo reale delle esperienze utente. Monitorando dove gli utenti interagiscono effettivamente con la tua applicazione, si ottengono immediatamente informazioni sui problemi che il monitoraggio tradizionale del backend potrebbe ignorare completamente.
Punti chiave
- Inizia con calma, per poi espanderti. Inizia strumentando i flussi utente più critici - quelli direttamente legati ai ricavi o alle funzionalità principali. Nel nostro caso, i flussi di abbonamento e di acquisto erano punti di partenza naturali.
- Scegli le metriche giuste. Concentrati sulle metriche che indicano direttamente il successo o il fallimento dell’utente, non solo le prestazioni tecniche. I clic sui pulsanti, i tassi di completamento e le frequenze degli errori spesso raccontano una storia più completa rispetto ai tempi di risposta del server.
- Sfrutta i servizi AWS in modo efficace. CloudWatch Anomaly Detection offre una solida base per avvisi dinamici senza richiedere complesse competenze di machine learning. La combinazione di Kinesis per lo streaming, Lambda per l’elaborazione e CloudWatch per il monitoraggio crea un’architettura flessibile e scalabile.
- Bilancia il volume dei dati con l’agibilità. Il monitoraggio lato client genera significativamente più dati rispetto al monitoraggio lato server. Sii strategico su cosa raccogli e come lo aggreghi per evitare di sovraccaricare i tuoi sistemi e squadre.
Primi passi con la tua implementazione di QoUX
- Controlla il tuo monitoraggio attuale. Individua le lacune nella strategia di monitoraggio esistente, specialmente per quanto riguarda i componenti e le interazioni rivolte agli utenti.
- Strumenti chiave per i percorsi utente. Aggiungi l’emissione di eventi lato client ai percorsi critici della tua applicazione, concentrandoti su:
- Funnel di conversione
- Flussi di autenticazione
- Processi di pagamento
- Interazioni delle funzionalità principali
- Crea la tua pipeline di elaborazione. Usa i servizi AWS come Kinesis, Lambda e CloudWatch per raccogliere, elaborare e visualizzare gli eventi lato client.
- Stabilisci le basi e imposta gli avvisi. Raccogli dati per 2-4 settimane per stabilire schemi normali prima di configurare gli avvisi di rilevamento delle anomalie.
- Crea visibilità tra le squadre. Assicurati che tutti gli stakeholder abbiano accesso agli stessi dati di monitoraggio per migliorare la collaborazione durante gli incidenti.
Implementando la tua versione di QoUX, trasformi il modo in cui comprendi e rispondi alle esperienze degli utenti, individuando i problemi prima che abbiano un impatto sulla tua attività e creando una piattaforma più affidabile per i tuoi utenti.