Seu dashboard principal é um mar de indicadores verdes. Seu objetivo de nível de serviço (SLO) de tempo de operação está saudável em 99,95%, e seu orçamento de erros parece sólido. Todos os sinais apontam para um serviço confiável e uma base de usuários satisfeita.
Mas você tem certeza?
Muitas vezes, um único SLO de alto nível funciona como uma melancia: verde por fora, mas escondendo problemas críticos por dentro. A pontuação global de conformidade pode facilmente mascarar problemas críticos, criando uma perigosa ilusão de confiabilidade. As médias ocultam valores atípicos, e um tempo de operação de 99,95% pode parecer excelente até você perceber que está ocultando um tempo de operação de 98% para seus clientes corporativos mais valiosos ou para toda uma região geográfica.
Para ir além dessa ilusão, precisamos fazer perguntas mais sofisticadas. Não é apenas "Estamos cumprindo nosso SLO?", mas sim "Somos confiáveis para todos os nossos usuários, em todas as circunstâncias?"
Isso requer uma estratégia dupla: primeiro, devemos isolar o sinal do ruído e, segundo, devemos desconstruir nossa visão monolítica de confiabilidade em segmentos significativos.
Estratégia 1: isolar o sinal silenciando o ruído planejado
Uma das maiores fontes de ruído nos cálculos de SLO é a manutenção programada. Todo SRE conhece a sensação: você tem um upgrade de banco de dados necessário ou uma implantação programada, e simplesmente precisa aceitar que seu orçamento de erros sofrerá um impacto. Isso é fundamentalmente falho.
Um orçamento de erros deve representar o nível aceitável de falhas não planejadas. É a moeda que você gasta em inovação e risco. Desperdiçá-lo com um período de inatividade esperado e planejado leva a três problemas:
- Cria excesso de alertas: os alarmes disparam durante um período de inatividade esperado, ensinando as equipes a ignorá-los.
- Distorce sua visão de confiabilidade: você não consegue distinguir facilmente entre o impacto na confiabilidade causado por um incidente real e o impacto causado por uma mudança planejada.
- Penaliza as equipes injustamente: o orçamento de erros de uma equipe é consumido mesmo quando ela fez tudo certo.
A solução é tratar o período de inatividade planejado como uma categoria separada. Ao implementar janelas de manutenção, você pode instruir sua plataforma de observabilidade a excluir períodos específicos e pré-aprovados dos cálculos de SLO. Isso garante que suas métricas sejam um sinal puro, refletindo apenas o desempenho do seu serviço durante os períodos operacionais esperados.
Na New Relic, você pode programar essas janelas para eventos pontuais ou configurar agendamentos recorrentes para situações como horários não comerciais. O resultado é um orçamento de erros mais limpo e preciso, que se torna uma verdadeira medida de incidentes não planejados.
Estratégia 2: desconstruir seu SLO para descobrir verdades ocultas
Depois de limpar seu sinal, o próximo passo é decompô-lo. Um SLO global é um ponto de partida, mas a verdadeira confiabilidade reside nos detalhes. A chave é analisar seu serviço não como um bloco monolítico, mas como uma coleção de experiências de usuário distintas.
É nesse ponto que segmentar seus SLOs por atributos se torna um diferencial estratégico. Em vez de criar dezenas de SLOs separados e difíceis de manter, você pode decompor (ou FACETAR) os dados de desempenho de um único SLO pelos atributos já presentes na sua telemetria.
Pense nas dimensões que são importantes para o seu negócio:
- Por infraestrutura: awsRegion, dataCenter, kubernetesClusterName
- Por clientes: customerTier (por ex., Grátis vs. Corporativo), subscriptionLevel
- Por tecnologia: deviceType (ex.: móvel vs. desktop), appVersion
Ao segmentar seu SLO por esses atributos, você pode passar de um único número para uma análise rica e comparativa. Na New Relic, habilitar facetas em um SLO fornece imediatamente um detalhamento da conformidade e do orçamento de erros para cada segmento. Você pode descobrir que, embora sua latência global esteja normal, sua região us-west-1 está enfrentando dificuldades, ou que os usuários da nova versão do seu aplicativo estão tendo uma experiência muito pior.
Essa visão granular permite que você:
- Encontre e corrija problemas proativamente antes que eles se transformem em incidentes globais.
- Concentre os esforços de engenharia onde há maior necessidade.
- Configure alertas mais inteligentes. Em vez de um alerta global ruidoso, você pode criar um alerta direcionado que é acionado apenas quando um segmento crítico específico (como o seu nível de clientes corporativos) está em risco.
Reunindo tudo: uma abordagem mais madura para a confiabilidade
Quando você combina essas duas estratégias, sua capacidade de gerenciar a confiabilidade do serviço se torna muito mais poderosa. Agora você pode usar uma análise facetada para identificar uma região com problemas, e então usar uma janela de manutenção para implantar uma correção para essa região específica sem consumir seu orçamento de erros restante.
Isso é o que caracteriza um gerenciamento a nível de serviço maduro. Trata-se de ir além da ilusão de um único valor verde e adotar uma visão mais detalhada, honesta e acionável do desempenho do seu sistema.
Ao isolar o ruído e detalhar seus SLOs, você finalmente pode ter certeza de que, quando seus dashboards estiverem verdes, eles estarão verdes para todos.
As opiniões expressas neste blog são de responsabilidade do autor e não refletem necessariamente as opiniões da New Relic. Todas as soluções oferecidas pelo autor são específicas do ambiente e não fazem parte das soluções comerciais ou do suporte oferecido pela New Relic. Junte-se a nós exclusivamente no Explorers Hub ( discuss.newrelic.com ) para perguntas e suporte relacionados a esta postagem do blog. Este blog pode conter links para conteúdo de sites de terceiros. Ao fornecer esses links, a New Relic não adota, garante, aprova ou endossa as informações, visualizações ou produtos disponíveis em tais sites.