Elevando o monitoramento da experiência do cliente na Twitch: A jornada da QoUX
Sobre o autor: Sou Chirag Sachdeva, um engenheiro aeroespacial que se tornou engenheiro de software da equipe de inscrições da Twitch. Trabalho há quatro anos como um membro de orgulho da família Twitch, me envolvendo em iniciativas como inscrições, subs de presente, o Twitch Turbo e o distintivo de fundador. Para mim, a experiência do cliente é sempre uma prioridade e um dos fatores que impulsionam meu trabalho aqui na Twitch.
No mundo acelerado das transmissões ao vivo, a qualidade da experiência do usuário afeta diretamente a retenção e satisfação de viewers. Tenho o prazer de compartilhar aqui como a Twitch transformou seus recursos de monitoramento através da Quality of User Experience (Qualidade da Experiência do Usuário, ou QoUX), uma iniciativa que nos permitiu entender o comportamento de usuários, detectar problemas que afetam usuários em menos tempo e com menos esforço, e reagir rapidamente.
O desafio
Apesar do monitoramento robusto de back-end, nos deparamos com um ponto cego crítico: entender exatamente como usuários vivenciam nossa plataforma em tempo real. Deixe-me descrever um exemplo específico que ilustra esse problema.
Imagine que você é um viewer da Twitch que quer presentear seu streamer favorito com um sub de múltiplos meses. Você clica no botão de presentear e seleciona o destinatário, mas quando tenta escolher a opção de inscrição de 3 meses, o botão simplesmente não responde. Pela sua perspectiva, o recurso está com defeito; mas pela nossa perspectiva de back-end, tudo parecia normal.
Esta situação exata ocorreu quando lançamos um experimento com presentes que, acidentalmente, desativou o botão de seleção de múltiplos meses para um pequeno grupo de usuários. Nossos sistemas de back-end não indicaram erros porque, tecnicamente, nenhuma solicitação estava falhando - o botão simplesmente não estava enviando solicitações. O código no dispositivo do usuário (o cliente) estava impedindo que a interação sequer chegasse aos nossos servidores.
As métricas tradicionais do lado do servidor, embora valiosas, não conseguiam nos informar se um inscrito estava com dificuldades para concluir uma compra ou se um fluxo de presentes estava falhando em uma região específica. Antes da QoUX, nossos sistemas de monitoramento e alerta focavam principalmente em serviços de back-end e infraestrutura, deixando lacunas na detecção desses tipos de falhas do lado do cliente.
Você pode se perguntar: por que não fizemos o monitoramento do lado do cliente desde o início? Os compromissos são significativos:
- Volume de dados. O monitoramento do lado do cliente gera muito mais dados do que o monitoramento de back-end. Com milhões de usuários, cada um realizando dúzias de interações, o volume de telemetria pode rapidamente se tornar avassalador.
- Considerações sobre privacidade. O monitoramento do lado do cliente requer uma implementação cuidadosa para respeitar a privacidade de usuários e cumprir com regulamentos.
- Desafio de confiabilidade. Os sistemas de back-end operam em ambientes controlados, enquanto o monitoramento de clientes precisa funcionar em inúmeros tipos de dispositivos, navegadores, condições de rede e extensões que podem interferir no acompanhamento.
- Complexidade do desenvolvimento. Implementar um monitoramento robusto do lado do cliente requer o uso de códigos adicionais para cada funcionalidade, aumentando o tempo de desenvolvimento e o potencial de erros.
- Complexidade de monitoramento. Transformar eventos brutos em insights acionáveis não é algo trivial. Esses dados precisam ser cuidadosamente agregados e transformados para evitar tanto falsos positivos quanto falsos negativos.
A QoUX nasceu da necessidade de monitorar o software mais perto de onde os clientes interagem com o mesmo — do lado do cliente — enquanto esses desafios são abordados. Esta iniciativa tornou-se uma parte central dos recursos operacionais da Twitch, permitindo-nos compreender melhor o comportamento de usuários, identificar quaisquer problemas que afetem usuários de forma mais pontual e atingir tempos de resposta mais curtos.
O que é a QoUX?
A Quality of User Experience (Qualidade da Experiência do Usuário, ou QoUX) é uma estrutura configurável projetada para monitorar e analisar experiências do lado do cliente. É fundamentada em três princípios essenciais:
- O lado do cliente em primeiro lugar. Monitorando onde o usuário realmente interage com a Twitch
- Visibilidade em tempo real. Insights instantâneos sobre as experiências de usuários
- Métricas acionáveis. Dados que informam diretamente decisões sobre produtos
Como funcionam eventos do lado do cliente
Os eventos do lado do cliente - sinais de telemetria especializados emitidos diretamente dos dispositivos de usuários - estão no cerne da QoUX. Esses eventos são:
- Emitidos pelo aplicativo do cliente. Seja o aplicativo para web da Twitch, o aplicativo móvel ou o aplicativo para consoles, o código do cliente em si gera esses eventos.
- Acionados durante interações fundamentais com usuários. Eventos são acionados quando usuários realizam ações específicas, como clicar em botões, tentar fazer compras ou navegar entre páginas.
- Enriquecidos com dados contextuais. Cada evento contém detalhes sobre o dispositivo do usuário, sua região e o componente ou recurso específico que está sendo usado.
- Projetados para causar o mínimo de impacto no desempenho. Eventos são agrupados e compactados para evitar afetar a experiência de usuários.
Deixe-me descrever um exemplo real de como isso funciona:
- Evento bruto originário do cliente : Quando um usuário clica no botão de inscrição de múltiplos meses, é acionado um evento contendo:
- Tipo de botão: “multi_month_selection”
- ID de funil: “gift_subscription_flow”
- Tipo de evento: “click”
- Informações do cliente: Versão do navegador/aplicativo, tipo de dispositivo
- Região: Localização geográfica do usuário
- Marcação de tempo: O momento em que a interação ocorreu
- Após a transformação + agregação : Esses eventos brutos são:
- Transmitidos para o Kinesis
- Processados por funções do Lambda que os filtram, transformam e agregam
- Agrupados em intervalos de 5 minutos (o intervalo varia com base no volume normal desse tipo de evento)
- Enriquecidos com o contexto adicional dos nossos sistemas
- O que aparece no final : Os dados processados:
- São emitidos para painéis de controle do CloudWatch com alarmes configurados
- Para este evento específico do botão de múltiplos meses, se 5 pontos de dados estiverem abaixo de um limiar ou nenhum ponto de dados foi recebido (ou seja, nenhum clique no botão) nos últimos 25 minutos, nossos engenheiros de plantão serão notificados
A tecnologia por trás da QoUX
No cerne dos recursos de monitoramento da QoUX, há uma estrutura que facilita a transformação, agregação e transmissão de métricas de eventos. Mas por que construir uma estrutura personalizada em vez de apenas enviar eventos brutos para as equipes?
Vantagens da estrutura da QoUX:
- Gerenciamento de volume de dados. Eventos brutos do lado do cliente sobrecarregariam as equipes com petabytes de dados. A QoUX agrega e filtra esses eventos de forma inteligente para fornecer sinais significativos.
- Padronização. Garante consistência no processamento e na estrutura de eventos em todos os recursos da Twitch.
- Eficiência operacional. As equipes não precisam desenvolver seus próprios canais de processamento ou sistemas de monitoramento.
- Privacidade desde a concepção. Lida com informações de identificação pessoal e dados sensíveis de forma apropriada no nível da estrutura.
Os eventos são postados em um fluxo do Kinesis, onde são transformados, modelados, filtrados e agregados por funções do Lambda antes de serem publicados como métricas personalizadas no CloudWatch. A estrutura combina dados de eventos em distribuições minuciosas com dimensões definidas pela equipe, comprimindo e gravando esses dados nas métricas do CloudWatch diretamente ou por meio do formato de métricas incorporadas (embedded metrics format, ou EMF) para registros de alta cardinalidade, permitindo análises adicionais com o Log Insights e resumos do tipo “top-N” com o Contributor Insights.
Alertas e monitoramento em tempo real
Os alarmes do CloudWatch não são simplesmente definidos com limites estáticos. Eles são treinados através de:
- Análises do histórico de padrões normais de uso
- Limiares adaptativos que consideram as variações do horário do dia e do dia da semana
- Modelos de aprendizagem automática que detectam anomalias além de simples rompimentos do limiar
- Análises de correlações para reduzir falsos positivos
Essas métricas incluem:
- Disponibilidade de componentes. Métricas de disponibilidade e latências no nível de componentes, segmentadas por região.
- Ações de usuários. Dados de ações de usuários, como cliques de botões, tentativas de finalização de compra e atividades envolvendo presentes.
- Falhas. Alertas acionados por falhas nesses fluxos, incluindo as causas específicas dessas falhas.
Impacto real
Voltando ao nosso exemplo do presente de múltiplos meses: quando lançamos um experimento com presentes que desativou acidentalmente o botão de seleção de múltiplos meses para um conjunto de usuários, a QoUX detectou o problema em 25 minutos após a implementação. Antes da QoUX, só teríamos descoberto esse problema depois que os clientes o relatassem, o que poderia ter levado horas ou até dias, especialmente para recursos usados por segmentos menores do nosso público.
Os alarmes personalizados do CloudWatch monitoram picos nos índices de erros, falhas em ações críticas e problemas de latência, garantindo que possamos detectar indisponibilidades do lado do cliente ou degradações no desempenho mais rapidamente do que nunca.
Casos de uso da QoUX
Monitoramento em tempo real da experiência do cliente
A integração da QoUX com o CloudWatch permite o monitoramento em tempo real de funcionalidades fundamentais, como inscrições, presentes e o processo de finalização de compra. Ao monitorar a disponibilidade regional, latências e eventos de falha desses componentes, levamos menos tempo para identificar interrupções e falhas que afetem diretamente a experiência do cliente e a receita. Essa abordagem levou à detecção de múltiplas falhas críticas que antes passaram despercebidas devido à falta de monitoramento do lado do cliente.
Monitoramento de lançamento de recursos
Uma das funcionalidades de destaque da QoUX é a capacidade de monitorar as interações de usuários em tempo real durante o lançamento de recursos. Por exemplo, durante o lançamento recente de um recurso que modificou um elemento fundamental da interface de usuário, observamos um aumento inesperado nos cancelamentos de subs entre usuários de longa data. Graças aos recursos de monitoramento da QoUX, identificamos esse problema em 10 minutos após a implementação. Conseguimos ajustar a experiência do usuário rapidamente ao alterar a visibilidade do elemento de interface problemático, reduzindo significativamente o impacto negativo na retenção de usuários. Essa agilidade na identificação do problema e na capacidade de reagir exemplifica o poder do nosso sistema de QoUX para manter uma experiência positiva para usuários, mesmo durante grandes lançamentos de recursos.
Identificação avançada de anormalidades por meio da detecção de anomalias do CloudWatch
Nosso sistema de identificação de anormalidades utiliza a detecção de anomalias do CloudWatch, que emprega aprendizagem automática para estabelecer parâmetros dinâmicos para padrões de interação de usuários. Veja como implementamos isso:
- Criação de parâmetros. Configuramos o CloudWatch para analisar 2-4 semanas de dados históricos de cada métrica para estabelecer padrões normais
- Limiares adaptativos. Além de limiares estáticos, usamos faixas de detecção de anomalias do CloudWatch, que se ajustam automaticamente aos padrões de hora do dia e dia da semana
- Alertas contextuais. Quando anomalias são detectadas, nossos alertas incluem um contexto específico, como causas da falha, regiões afetadas e detalhes dos componentes.
Essa abordagem se mostrou especialmente eficaz para métricas com padrões cíclicos ou tendências gradativas que acionariam alarmes falsos com limiares estáticos tradicionais.
Monitoramento e alertas unificados entre equipes
A QoUX transformou nossos recursos de monitoramento organizacional ao romper silos tradicionais e permitir uma visibilidade integrada entre equipes. Por meio da observabilidade entre contas do CloudWatch, criamos um ecossistema onde equipes podem acessar, analisar e configurar alertas de forma independente em métricas compartilhadas, mantendo limites claros de propriedade.
Por exemplo, quando ocorre um problema voltado para o cliente no fluxo de inscrição, tanto a equipe de inscrições quanto a equipe de finalizações de compras têm acesso imediato à mesma fonte da verdade. Essa visibilidade compartilhada permite uma coordenação mais rápida e maior eficácia ao reagir a incidentes, pois as equipes podem ver exatamente quais componentes foram afetados e colaborar para aplicar soluções sem perder tempo reconciliando sistemas de monitoramento diferentes.
A abordagem unificada reduziu nossa média de tempo de detecção em aproximadamente 40% e melhorou a colaboração entre equipes durante incidentes, já que todos trabalham com os mesmos dados em tempo real.
Lições aprendidas e os próximos passos
A implementação do monitoramento do lado do cliente por meio da QoUX demonstrou como a visibilidade em tempo real das experiências de usuários pode ser poderosa. Ao monitorar onde os usuários realmente interagem com seu aplicativo, você obtém perspectivas imediatas sobre problemas que o monitoramento tradicional de back-end poderia não detectar por completo.
Principais lições
- Comece pequeno e amplie. Comece instrumentando os seus fluxos de usuário mais importantes - aqueles diretamente ligados à receita ou a funcionalidades fundamentais. No nosso caso, os fluxos de inscrição e finalização de compra foram pontos de partida naturais.
- Escolha as métricas certas. Foque nas métricas que indiquem diretamente o sucesso ou fracasso de usuários, não apenas o desempenho técnico. Cliques em botões, índices de conclusão e frequências de erros costumam contar uma história mais completa do que os tempos de resposta dos servidores.
- Utilize os serviços da AWS de forma eficaz. A detecção de anomalias do CloudWatch oferece uma fundação poderosa para alertas dinâmicos sem exigir um conhecimento complexo do recurso de aprendizagem automática. A combinação do Kinesis para transmitir, do Lambda para processar e do CloudWatch para monitorar cria uma arquitetura flexível e escalável.
- Equilibre o volume de dados com a capacidade de agir. O monitoramento do lado do cliente gera um volume de dados significativamente maior do que o monitoramento do lado do servidor. Planeje estrategicamente como decidir o que coletar e como agregar para evitar sobrecarregar seus sistemas e equipes.
Começando a implementar sua própria QoUX
- Verifique seu monitoramento atual. Identifique lacunas na sua estratégia de monitoramento atual, especialmente em relação a interações e componentes voltados a usuários.
- Instrumente importantes jornadas do usuário. Adicione a emissão de eventos do lado do cliente aos caminhos críticos do seu aplicativo, focando em:
- Funis de conversão
- Fluxos de autenticação
- Processos de pagamento
- Interações com recursos fundamentais
- Desenvolva seu canal de processamento. Use serviços da AWS - como Kinesis, Lambda e CloudWatch - para coletar, processar e visualizar seus eventos do lado do cliente.
- Estabeleça parâmetros e configure alertas. Colete dados por 2-4 semanas para estabelecer padrões normais antes de configurar alertas de detecção de anomalias.
- Estabeleça visibilidade entre equipes. Garanta que todos os envolvidos tenham acesso aos mesmos dados de monitoramento para melhorar colaborações durante incidentes.
Ao implementar sua própria versão da QoUX, você pode transformar a forma como entende e reage às experiências de usuários, detectando problemas antes que afetem seu negócio e criando uma plataforma mais confiável para seus usuários.