Mejorando la monitorización de la experiencia del cliente en Twitch: QoUX
Sobre el autor: Soy Chirag Sachdeva, ingeniero aeroespacial convertido en ingeniero de software en el equipo de membresías de Twitch. Me enorgullece ser parte de Twitch hace cuatro años, en los que trabajé en iniciativas como suscripciones, regalos, Turbo y el emblema de fundador. Para mí, la experiencia del cliente siempre está entre las más importantes y es uno de los factores que impulsan mi trabajo aquí en Twitch.
En el dinámico mundo del streaming en vivo, la calidad de la experiencia del usuario afecta directamente la retención y satisfacción de los espectadores. Hoy vengo a compartir cómo Twitch transformó sus capacidades de monitoreo a través de la calidad de experiencia del usuario (QoUX), una iniciativa que nos permite comprender el comportamiento de los usuarios, detectar problemas los que afectan más rápido y fácil, y responder enseguida.
El desafío
A pesar de la sólida supervisión de backend, tenemos un punto ciego crítico: entender exactamente cómo los usuarios experimentan nuestra plataforma en tiempo real. Daré un ejemplo específico que ilustra este problema.
Imaginemos que eres un espectador de Twitch que quiere regalar una suscripción de varios meses a tu streamer favorito. Haces clic en el botón de regalo, seleccionas al destinatario, pero cuando intentas elegir la opción de suscripción de 3 meses, el botón no responde. Desde tu perspectiva, la función está rota, pero desde nuestra perspectiva de backend, todo se ve normal.
Este escenario exacto ocurrió cuando lanzamos un experimento de regalos que, sin querer, desactivó el botón de selección de varios meses para un pequeño grupo de usuarios. Nuestros sistemas de backend no mostraron errores porque, técnicamente, ninguna solicitud fallaba. El botón simplemente no enviaba la solicitud. El código en el dispositivo del usuario (el cliente) estaba impidiendo que la interacción siquiera llegara a nuestros servidores.
Las métricas tradicionales del lado del servidor, aunque valiosas, no podían decirnos si un suscriptor tenía problemas para completar una compra o si un flujo de regalos fallaba en una región específica. Antes de QoUX, nuestros sistemas de monitoreo y alertas se centraban principalmente en los servicios de backend y la infraestructura, lo que deja brechas en la detección de este tipo de errores del lado del cliente.
Quizás te preguntes: ¿por qué no hicimos la supervisión del lado del cliente desde el principio? Las implicancias son significativas:
- Volumen de datos. La monitorización del lado del cliente genera muchos más datos que la monitorización del backend. Con millones de usuarios, cada uno realizando docenas de interacciones, la cantidad de telemetría puede volverse rápidamente abrumadora.
- Consideraciones de privacidad. La supervisión del lado del cliente requiere una implementación cuidadosa para respetar la privacidad del usuario y cumplir con las regulaciones.
- Desafío de confiabilidad. Los sistemas de backend operan en entornos controlados, mientras que el monitoreo de clientes debe funcionar en innumerables tipos de dispositivos, navegadores, condiciones de red y extensiones que podrían interferir con el seguimiento.
- Complejidad del desarrollo. Implementar una supervisión robusta del lado del cliente requiere código adicional en cada característica, lo que incrementa el tiempo de desarrollo y la posibilidad de errores.
- Complejidad de la supervisión. Transformar eventos sin procesar en información procesable no es trivial. Se deben agregar y transformar cuidadosamente para evitar tanto falsos positivos como falsos negativos.
QoUX nació de la necesidad de monitorear el software más cerca de donde los clientes interactúan con él (en el lado del cliente) y, al mismo tiempo, abordar estos desafíos. Esta iniciativa se convirtió en una parte fundamental de las capacidades operativas de Twitch, lo que nos permite comprender mejor el comportamiento de los usuarios, identificar más fácil cualquier problema que los afecte y reducir los tiempos de respuesta.
¿Qué es QoUX?
La calidad de experiencia del usuario (QoUX) es un entorno configurable diseñado para monitorear y analizar las experiencias del lado del cliente. Se basa en tres principios fundamentales:
- Prioriza el lado del cliente. Monitorear allí donde el usuario interactúa realmente con Twitch.
- Visibilidad en tiempo real. Perspectivas instantáneas sobre las experiencias de los usuarios.
- Métricas accionables. Datos que permiten tomar decisiones informadas sobre el producto.
Cómo funcionan los eventos del lado del cliente
Los eventos del lado del cliente son el núcleo de QoUX. Se trata de señales de telemetría especializadas que se emiten directamente desde sus dispositivos. Estos eventos:
- Los emite la aplicación cliente. En la aplicación web de Twitch, la aplicación para dispositivos o para consola, el propio código del cliente genera estos eventos.
- Se activan durante interacciones clave del usuario. Los eventos se disparan cuando los usuarios realizan acciones específicas, como hacer clic en botones, intentar realizar compras o navegar entre páginas.
- Se enriquecen con datos contextuales. Cada evento contiene detalles sobre el dispositivo del usuario, la región y el componente o característica específica que se está utilizando.
- Están diseñados para tener un impacto mínimo en el rendimiento. Los eventos se agrupan y comprimen para evitar que afecten tu experiencia como usuario.
Daré un ejemplo real de cómo funciona.
- Evento sin procesar procedente del cliente. Cuando un usuario hace clic en el botón de suscripción de varios meses, se activa un evento que contiene:
- Tipo de botón: “multi_month_selection”.
- ID de Funnel: “gift_subscription_flow”.
- Tipo de evento: “click”.
- Información del cliente: versión del navegador/aplicación, tipo de dispositivo.
- Región: ubicación geográfica del usuario.
- Marca de tiempo: cuándo ocurrió la interacción.
- Después de la transformación y agregación, estos eventos se:
- Transmiten a Kinesis.
- Procesan por funciones Lambda que los filtran, transforman y agregan.
- Agrupan en intervalos de 5 minutos (el intervalo varía según el volumen normal de ese tipo de evento).
- Enriquecen con contexto adicional de nuestros sistemas.
- Lo que aparece al final, los datos procesados:
- Se transmiten a los paneles de control de CloudWatch con las alarmas establecidas.
- Para este evento específico de botón de suscripción de varios meses, si 5 puntos de datos están por debajo de un umbral o no se reciben puntos de datos (es decir, no se hace clic en ese botón) en los últimos 25 minutos, nuestros ingenieros de guardia reciben una alerta.
La tecnología detrás de QoUX
En el núcleo de las capacidades de monitoreo de QoUX se encuentra un marco que facilita la transformación, agregación y transmisión de métricas de eventos. Pero ¿por qué construir un marco personalizado en lugar de enviar eventos sin procesar a los equipos?
Ventajas del marco QoUX:
- Gestión del volumen de datos. Los eventos de clientes sin procesar abrumarían a los equipos con petabytes de datos. QoUX agrega y filtra de manera inteligente para ofrecer señales significativas.
- Estandarización. Garantiza una estructura y procesamiento de eventos coherentes en todas las funciones de Twitch.
- Eficiencia operativa. Los equipos no necesitan construir sus propios pipelines de procesamiento o sistemas de monitoreo.
- Diseño enfocado a la privacidad. Gestiona la información personal protegida y los datos confidenciales de forma adecuada al nivel de marco.
Los eventos se envían a Kinesis, donde las funciones Lambda los transforman, modelan, filtran y agregan antes de enviarlos como métricas personalizadas a CloudWatch. El marco combina los datos de eventos en distribuciones por minuto con las dimensiones definidas por el equipo, comprime y escribe estos datos en directamente en las métricas de CloudWatch o en un formato de métricas embebido (EMF) para obtener registros de alta cardinalidad, lo que permite un análisis adicional con Log Insights y resúmenes de los TOPN con Contributor Insights.
Monitoreo y alertas en tiempo real
Las alarmas de CloudWatch no usan umbrales estáticos. Están entrenadas con:
- Un análisis histórico de patrones normales de uso.
- Umbrales adaptativos que tienen en cuenta las variaciones de la hora del día y del día de la semana.
- Modelos de aprendizaje automático que detectan anomalías además de las simples superaciones de umbral.
- Un análisis de correlación para reducir los falsos positivos.
Estas métricas incluyen:
- Disponibilidad de componentes. Métricas de disponibilidad y latencias a nivel de componente, segmentadas por región.
- Acciones del usuario. Datos de acciones de usuario como clics en botones, intentos de compra y regalos.
- Fracasos. Alertas activadas por errores en estos flujos, que incluyen los motivos específicos de los errores.
Impacto real
Volviendo a nuestro ejemplo de regalo de suscripciones de varios meses: cuando lanzamos un experimento de regalos que, sin querer, desactivó el botón de selección de varios meses para un grupo de usuarios, QoUX detectó el problema a los 25 minutos de la implementación. Antes de QoUX, solo habríamos descubierto este problema después de que los clientes lo reportaran, lo que podría haber tomado horas o incluso días, en especial en el caso de funciones utilizadas por segmentos más pequeños de nuestra audiencia.
Las alarmas personalizadas de CloudWatch monitorean los picos en las tasas de error, los errores en acciones críticas y los problemas de latencia, asegurando que podamos detectar interrupciones del lado del cliente o problemas de rendimiento más rápido que nunca.
Casos de uso de QoUX
Monitoreo en tiempo real de la experiencia del cliente
La integración de QoUX con CloudWatch permite la supervisión en tiempo real de funciones clave, como suscripciones, regalar suscripciones y procesos de pago. Al monitorear la disponibilidad regional, las latencias y los eventos de errores de estos componentes, podemos identificar enseguida las interrupciones y fallas con impacto directo en la experiencia del cliente y los ingresos. Este enfoque llevó a la detección de múltiples interrupciones críticas que antes pasaban desapercibidas debido a la falta de monitoreo del lado del cliente.
Monitoreo de lanzamiento de funciones
Una de las capacidades más destacadas de QoUX es su habilidad para monitorear las interacciones de los usuarios en tiempo real durante los lanzamientos de funciones. Por ejemplo, durante el lanzamiento reciente de una función que modificó un elemento clave de la interfaz de usuario, observamos un aumento inesperado en las cancelaciones de suscripciones entre los usuarios más antiguos. Gracias a las capacidades de monitoreo de QoUX, identificamos este problema en menos de 10 minutos tras la implementación. Pudimos ajustar rápido la experiencia del usuario al modificar la visibilidad del elemento problemático de la interfaz de usuario, y redujimos significativamente el impacto negativo en la retención de usuarios. Esta capacidad de información y respuesta rápida ejemplifica el poder de nuestro sistema QoUX para mantener una experiencia de usuario positiva, incluso durante los lanzamientos de funciones importantes.
Detección avanzada de anomalías con CloudWatch Anomaly Detection
Nuestra detección de anomalías utiliza CloudWatch Anomaly Detection, que emplea aprendizaje automático para establecer estándares dinámicos para los patrones de interacción de los usuarios. Aquí mostramos cómo lo implementamos:
- Creación de estándares. Configuramos CloudWatch para analizar entre 2 y 4 semanas de historial de datos de cada métrica para establecer los patrones normales.
- Umbrales adaptativos. Además de los umbrales estáticos, utilizamos las bandas de detección de anomalías de CloudWatch que se ajustan automáticamente a los patrones de hora del día y del día de la semana.
- Alertas contextuales. Cuando se detectan anomalías, nuestras alertas incluyen un contexto específico, como las razones del error, las regiones afectadas y los detalles de los componentes.
Este enfoque demostró ser especialmente efectivo para métricas con patrones cíclicos o tendencias graduales que activarían falsas alarmas con umbrales estáticos tradicionales.
Monitoreo y alertas unificados entre equipos
QoUX transformó nuestras capacidades de monitoreo organizacional al evitar el aislamiento tradicional y facilitar una visibilidad fluida entre equipos. Gracias a la capacidad de observación cruzada de las cuentas de CloudWatch, creamos un ecosistema donde los equipos pueden acceder, analizar y configurar alertas de manera independiente en métricas compartidas, manteniendo límites claros de propiedad.
Por ejemplo, cuando surge un problema del lado del cliente en el flujo de suscripción, tanto el equipo de suscripciones como el equipo de cobros tienen acceso inmediato a la misma fuente de información. Esta visibilidad compartida permite una coordinación más rápida y una respuesta a incidentes más efectiva, ya que los equipos pueden ver exactamente qué componentes están afectados y colaborar en soluciones sin perder tiempo conciliando los diferentes sistemas de monitoreo.
El enfoque unificado redujo nuestro tiempo medio de detección en aproximadamente un 40% y mejoró la colaboración entre equipos durante los incidentes, ya que todos trabajan con los mismos datos en tiempo real.
Lecciones aprendidas y próximos pasos
Implementar el monitoreo del lado del cliente a través de QoUX demostró lo poderosa que puede ser la visibilidad de la experiencia del usuario en tiempo real. Al monitorear allí donde los usuarios interactúan con la aplicación, obtenemos información inmediata sobre problemas que el monitoreo tradicional del backend podría pasar completamente por alto.
Enseñanzas clave
- Ir de menos a más. Es mejor comenzar por instrumentar los flujos de usuario más críticos, aquellos directamente vinculados a los ingresos o a la funcionalidad principal. En nuestro caso, los flujos de suscripción y pago fueron el punto de partida naturales.
- Elegir las métricas correctas. Se deben priorizar las métricas que directamente indican el éxito o fracaso de los usuarios, no solo en el rendimiento técnico. Los clics en botones, las tasas de finalización y las frecuencias de error a menudo cuentan una historia más completa que los tiempos de respuesta del servidor.
- Aprovechar los servicios de AWS de forma eficaz. La detección de anomalías de CloudWatch ofrece una base poderosa para alertas dinámicas sin requerir conocimientos complejos de aprendizaje automático. La combinación de Kinesis para streaming, Lambda para procesamiento y CloudWatch para monitoreo crea una arquitectura flexible y escalable.
- Equilibrar el volumen de datos con la capacidad de acción. La monitorización del lado del cliente genera significativamente más datos que la monitorización del lado del servidor. Se debe ser estratégico sobre la información a reunir y cómo agregarla para evitar sobrecargar tus sistemas y equipos.
Primeros pasos con tu propia implementación de QoUX
- Audita tu monitoreo actual. Identifica las lagunas en tu estrategia de monitoreo actual, sobre todo en lo que respecta a los componentes e interacciones orientados al usuario.
- Instrumenta los recorridos clave de los usuarios. Añade la emisión de eventos del lado del cliente a las rutas críticas de tu aplicación, enfocándote en:
- Funnel de conversión
- Flujos de autenticación
- Procesos de pago
- Interacciones de características principales
- Crea tu canal de procesamiento. Usa servicios de AWS como Kinesis, Lambda y CloudWatch para obtener, procesar y visualizar tus eventos del lado del cliente.
- Establece cifras de referencia y configura alertas. Reúne datos durante 2-4 semanas para establecer patrones normales antes de configurar alertas de detección de anomalías.
- Crea visibilidad entre equipos. Asegúrate de que todos los interesados tengan acceso a los mismos datos de monitoreo para mejorar la colaboración durante los incidentes.
Al implementar tu propia versión de QoUX, puedes transformar cómo entiendes y respondes a las experiencias de los usuarios, detectando problemas antes de que impacten tu negocio y creando una plataforma más confiable para tus usuarios.