A Odisséia de Observabilidade de Sofia: um guia prático sobre alertas
A primeira parada da odisseia de Sofia no mar da observabilidade — como sair do dilúvio de alertas para um sistema com objetivos claros, severidade padronizada e foco em sintomas, com exemplos de regras Prometheus.

Antes de começarmos, conheçam a Sofia:
Era uma vez, em uma movimentada empresa de tecnologia, uma jovem e dedicada Engenheira de Confiabilidade chamada Sofia. Sofia era conhecida por suas aguçadas habilidades na resolução de problemas e sua dedicação em manter os sistemas da empresa funcionando sem problemas. Nesta semana, era a vez de Sofia estar de plantão para sua equipe, responsável por responder a quaisquer incidentes críticos que surgissem.
Em uma noite tardia, Sofia recebeu uma ligação urgente da equipe de operações. O pânico tingia suas vozes enquanto explicavam o caos que havia se desencadeado. A equipe de operações havia decidido implementar uma nova abordagem para alertas — uma abordagem que envolvia criar uma quantidade avassaladora de alertas para cada servidor em sua vasta infraestrutura.
Curiosa, Sofia logou em seu notebook, pronta para investigar a situação. Enquanto mergulhava no mar de alertas inundando o sistema de monitoramento, percebeu que a equipe de operações havia adotado uma abordagem altamente granular, configurando alertas para todos os cenários imagináveis. Parecia que haviam abandonado a sabedoria de agrupar alertas e focar em anomalias.
Respirando fundo, Sofia iniciou sua análise meticulosa. Reconheceu que, embora alertas precisos tivessem seus méritos, inundar a equipe com uma torrente de notificações era contraproducente. O barulho gerado por esses alertas mascarava os problemas reais e dificultava priorizar e responder de forma eficiente.
Determinada a restaurar a ordem e a sanidade, Sofia iniciou uma conversa com a equipe de operações. Explicou a importância de focar em alertas significativos, aqueles que destacavam anomalias críticas ou problemas sistêmicos. Juntos, revisaram a infinidade de alertas e começaram o processo de simplificação e consolidação.
Sofia enfatizou a importância de categorizar alertas com base em sua gravidade, garantindo que cada alerta transmitisse informações cruciais para uma resposta rápida a incidentes. Ao agrupar alertas de maneira inteligente, a equipe poderia detectar padrões e identificar falhas sistêmicas com mais eficácia.
Dias se transformaram em noites enquanto Sofia e a equipe de operações trabalhavam incansavelmente, aperfeiçoando sua estratégia de alerta. Implementaram um sistema que não apenas reduzia o ruído, mas também fornecia insights acionáveis quando problemas reais surgiam. Sofia incentivou a equipe a priorizar alertas com base em seu impacto nas operações comerciais e na experiência do cliente, capacitando-os a focar nos aspectos mais críticos da infraestrutura.
Gradualmente, o caos se transformou em ordem. O dilúvio uma vez caótico de alertas agora se assemelhava a um fluxo controlado, transportando informações valiosas que permitiam à equipe resolver problemas prontamente e com eficácia. A dedicação e expertise de Sofia haviam guiado a equipe de operações para uma abordagem mais eficiente e significativa aos alertas.
À medida que a notícia se espalhava pela empresa, a reputação de Sofia como uma habilidosa Engenheira de Confiabilidade de Sites crescia. Seus colegas admiravam sua habilidade para navegar em situações complexas, seu comprometimento com a melhoria contínua e sua habilidade em encontrar soluções práticas.
A partir daquele dia, Sofia se tornou a pessoa de referência para estratégias de alertas. Ela compartilhou suas experiências, orientando outros a encontrar o equilíbrio certo entre precisão e sobrecarga, garantindo que os alertas cumprissem seu propósito de aprimorar a observabilidade e manter a confiabilidade do sistema.
E assim começa a jornada, ou melhor, odisseia de Sofia no mar de observabilidade.
Comovente, não é? Agora, vamos aprender algumas dicas práticas sobre alertas.
Alertas: Um Guia Prático
Uma dica simples sobre alertas: Definir Objetivos Claros: Para criar alertas eficazes, é essencial estabelecer objetivos claros. Determine as situações específicas que justificam um alerta e defina os resultados desejados. Evite alertas vagos ou excessivamente gerais, pois podem levar à fadiga de alerta e à ineficiência. Objetivos claros fornecem foco e ajudam a priorizar as respostas.
Exemplos
Alerta:
"Utilização da CPU alta, excedendo 90% por mais de 5 minutos."
Prometheus Rule:
groups:
- name: cpu
rules:
- alert: HighCPULoad
expr: avg_over_time(cpu_usage{job="your_job"}[5m]) > 0.9
for: 5m
labels:
severity: critical
annotations:
summary: "High CPU Utilization"
description: "CPU usage has exceeded the threshold of 90% for more than 5 minutes."
Dica:
Utilize labels e annotations significativas. Labels e annotations fornecem contexto para alertas, auxiliando na resolução eficaz de problemas. Inclua metadados relevantes, como nome do serviço, componente e nível de gravidade. Labels e annotations ajudam a identificar a origem e o impacto do problema, facilitando uma resolução mais rápida.
Vamos ver outro exemplo.
Alerta:
"O uso do espaço em disco excede 80% na partição /data"
Prometheus Rule:
groups:
- name: disk
rules:
- alert: HighDiskUsage
expr: 100 * (1 - (node_filesystem_free_bytes{mountpoint="/data"} / node_filesystem_size_bytes{mountpoint="/data"})) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High Disk Usage"
description: "Disk space usage on /data partition has exceeded 80%."
Dica:
Defina níveis adequados de severidade para alertas. Os níveis de severidade nos alertas auxiliam na priorização das respostas com base no impacto e na urgência. Estabeleça uma escala de severidade padronizada (crítico, aviso, informativo) para garantir uma priorização consistente. Isso permite que as equipes adequem recursos de forma eficiente e respondam de acordo.
Mais um? Mais um.
Alerta:
"Critical: Falha de conexão com base de dados"
Prometheus Rule:
groups:
- name: database
rules:
- alert: DatabaseConnectionFailure
expr: database_up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Database Connection Failure"
description: "Database connection is down or not responding."
Dica:
Tente não depender exclusivamente de alertas baseados em threshold. Embora os alertas baseados em threshold sejam valiosos, não restrinja sua estratégia de alerta apenas a eles. Considere adotar técnicas de detecção de anomalias ou alertas baseados em regras que possam identificar padrões ou comportamentos anormais em seu sistema. Essas técnicas ajudam a identificar problemas sutis que podem não acionar os limites tradicionais, proporcionando uma abordagem proativa para o monitoramento.
Alerta:
"Anomalia detectada: O tráfego de rede se desvia significativamente da baseline"
Prometheus Rule:
groups:
- name: network
rules:
- alert: NetworkAnomaly
expr: abs(predict_linear(network_traffic{job="your_job"}[5m], 1h) - network_traffic{job="your_job"}) > 3
for: 10m
labels:
severity: warning
annotations:
summary: "Network Anomaly Detected"
description: "Network traffic is deviating significantly from the baseline."
Alertas baseados em sintomas, como o aumento das taxas de erro ou tempos de resposta, são cruciais para uma observabilidade eficaz. Ao detectar sintomas precocemente, é possível tomar ações preventivas para evitar quedas e dores de cabeça em plantões. Quedas são frequentemente o resultado de sintomas não tratados. Priorize alertas que fornecem indicações iniciais sobre a saúde deteriorada do sistema, permitindo resolver os problemas de forma proativa.
Ao configurar alertas baseados em sintomas, é possível identificar sinais precoces de alerta, prevenir quedas graves e garantir a confiabilidade de suas aplicações baseadas na nuvem. Os sintomas funcionam como precursores, permitindo adotar medidas corretivas e manter a saúde geral do sistema.
Seguindo essas dicas, é possível estabelecer um sistema robusto que contribui para uma observabilidade efetiva em um ambiente cloud. Objetivos claros, labels significativas, níveis de severidade apropriados e foco nos sintomas de alerta capacitam as equipes a responder prontamente, resolver problemas de maneira eficiente e otimizar o desempenho e a confiabilidade de sua infraestrutura na nuvem. Mantenha-se vigilante, adapte sua estratégia de alerta ao longo do tempo e refine continuamente sua abordagem para atender às necessidades em evolução do seu sistema.
O que é "A Odisséia de Observabilidade de Sofia"?
Adso Castro escreve sobre Observabilidade e SRE contando histórias pessoais e não tão pessoais assim, utilizando personagens fictícios na trama. A ideia é abordar assuntos complexos do mundo de Cloud Native de uma forma mais amigável. As histórias giram em torno das personagens Sofia e sua amiga e colega de equipe, Lauren.

