Monitoramento de SLA: como medir e comprovar o uptime
Monitoramento de SLA é a prática de verificar de forma independente a disponibilidade de um serviço, para que você tenha evidência com data e hora de se ele cumpriu o percentual de uptime que um acordo de nível de serviço promete. Essa evidência importa mais em uma disputa, já que o painel do próprio provedor não é uma testemunha neutra da sua própria indisponibilidade.
O que é monitoramento de SLA?
Um SLA (acordo de nível de serviço) é um contrato que define uma meta de disponibilidade específica, geralmente um percentual mensal de uptime como 99,9%, e estabelece o que acontece se o provedor não cumprir: normalmente um crédito de serviço, às vezes o direito de cancelamento. O monitoramento de SLA é o trabalho contínuo de medição por trás desse contrato: verificar o endpoint prometido de fora da rede do próprio provedor, registrar cada indisponibilidade com um timestamp, e consolidar o resultado no percentual que o contrato considera. Sem esse registro independente, saber se um SLA foi cumprido depende de em quais números você confia.
Os dois lados têm motivo para fazer isso. O cliente quer prova antes de abrir um pedido de crédito. O provedor quer o próprio número honesto antes que o monitoramento do cliente detecte um problema primeiro.
SLA vs SLO vs SLI
Os três termos costumam ser usados de forma solta, mas descrevem três coisas diferentes, nesta ordem: medida, meta, promessa.
| Termo | O que é | Exemplo |
|---|---|---|
| SLI (Service Level Indicator) | A medição real, um número calculado a partir de verificações reais | Uptime medido a partir de pontos de verificação externos nos últimos 30 dias |
| SLO (Service Level Objective) | Uma meta interna para esse indicador, sem consequência contratual associada | "Nossa meta é 99,95% de uptime neste trimestre" |
| SLA (Service Level Agreement) | Uma promessa contratual construída sobre um ou mais SLOs, com uma consequência declarada em caso de descumprimento | "99,9% de uptime mensal, ou um crédito de serviço proporcional" |
O teste prático: se não atingir o número não tem nenhuma consequência registrada em lugar nenhum, é um SLO, não um SLA.
O que um SLA de uptime realmente permite
Cada décimo de ponto percentual importa mais do que parece. Veja o que cada nível comum de SLA permite antes de ser descumprido, considerando um mês contínuo de 30 dias e um ano de 365 dias:
| Meta de SLA | Indisponibilidade permitida por mês (30 dias) | Indisponibilidade permitida por ano |
|---|---|---|
| 99% | 7h 12min | 3 dias 15h 36min |
| 99,5% | 3h 36min | 1 dia 19h 48min |
| 99,9% | 43min 12s | 8h 45min 36s |
| 99,95% | 21min 36s | 4h 22min 48s |
| 99,99% | ~4min 19s | ~52min 34s |
O salto de 99,9% para 99,99% corta a indisponibilidade permitida em 90%, de cerca de 43 minutos por mês para cerca de 4 minutos. Veja como calcular o uptime para a fórmula por trás disso e o raciocínio de cada nível.
O que medir para o número resistir a uma disputa
- Verifique de fora da rede do provedor, e a partir de mais de um local. Uma verificação que começa e termina na própria infraestrutura testada não consegue enxergar uma indisponibilidade de rede que isola essa infraestrutura da internet.
- Ajuste o intervalo de verificação ao nível do SLA. Um intervalo de 5 minutos não consegue provar nem refutar de forma confiável uma meta de 99,99%, porque toda a margem mensal permitida é menor do que um único ciclo de verificação.
- Exija confirmação de um segundo local antes de contar a indisponibilidade. Uma instabilidade na rede de um único local não é uma indisponibilidade do provedor; um incidente que só abre quando vários locais concordam mantém esse ruído fora do número.
- Exclua apenas as janelas de manutenção que o SLA realmente documenta. Uma manutenção não divulgada ainda conta como indisponibilidade; uma janela combinada com antecedência pelos dois lados não conta.
- Meça exatamente o endpoint citado no contrato, e não um caminho de health-check que responde 200 independentemente de o serviço real estar funcionando.
- Aplique o limite de tempo de resposta do SLA, se ele tiver um. Alguns acordos definem "fora do ar" como mais lento que um tempo de resposta declarado, não apenas como inacessível.
- Guarde o log bruto das verificações, não apenas o percentual consolidado. Uma disputa precisa de timestamps, códigos de resposta e durações, não de um único número tirado de uma planilha.
Como configurar o monitoramento de SLA passo a passo
- Anote o endpoint exato, a métrica (uptime, tempo de resposta, ou os dois) e a janela de medição que o SLA especifica. Uma verificação na URL errada ou no fuso horário errado produz um número que ninguém pode usar.
- Defina o intervalo de verificação curto o suficiente para o nível que você está comprovando. Como regra prática, mantenha-o bem abaixo da menor indisponibilidade que a meta permite, então uma meta de 99,9% precisa de um intervalo medido em minutos, não em dezenas de minutos.
- Rode as verificações a partir de vários locais independentes fora da própria infraestrutura do provedor, distribuídos pelas regiões que importam. A HostTracker verifica a partir de mais de 300 pontos de verificação em 158 cidades, então você pode escolher locais próximos de onde estão os seus usuários reais.
- Ative uma regra de nova verificação ou confirmação, para que a falha de um local precise ser confirmada por outros antes de contar como indisponibilidade.
- Se o SLA define um limite de tempo de resposta, configure-o como uma condição de falha, não apenas como um resultado lento mas aprovado.
- Adicione as janelas de manutenção combinadas pelos dois lados à configuração do monitoramento, para que sejam excluídas automaticamente do cálculo de uptime, em vez de manualmente na hora do relatório.
- Agende um relatório recorrente de uptime na mesma periodicidade em que o SLA é medido, semanal ou mensal, para que o número nunca seja montado pela primeira vez durante uma disputa.
Como reportar um SLA
Um relatório agendado fecha o ciclo entre medir e comprovar. Um relatório semanal ou mensal de uptime, enviado automaticamente para quem cuida do relacionamento nos dois lados, transforma o log bruto de verificações no número contra o qual o SLA foi escrito, antes que alguém precise pedir por ele. Uma página de status pública faz o mesmo trabalho para qualquer pessoa fora dessa lista de distribuição: um registro compartilhado, com data e hora, de uptime e incidentes que nenhum dos lados precisa aceitar apenas na palavra do outro. Veja o que uma página de status realmente mostra caso você ainda não tenha configurado uma. Depois de ter os resultados de verificação de um período, rodá-los em uma calculadora de uptime dá o percentual sem fazer a conta na mão.
Erros comuns
- Medir de dentro da sua própria rede. Uma verificação que começa e termina em infraestrutura que você controla não consegue enxergar uma indisponibilidade que afeta apenas o modo como o mundo externo chega até você.
- Fazer a média de uptime entre vários serviços ou regiões. Um único número combinado pode esconder um serviço que descumpriu o SLA enquanto outros elevaram a média de volta.
- Contar apenas indisponibilidades completas. Se o SLA tem uma cláusula de tempo de resposta, um serviço que responde mas está muito mais lento que o limite também está em descumprimento, mesmo sem nunca ter ficado totalmente fora do ar.
- Usar um intervalo de verificação de 5 minutos contra uma meta de 99,99%. A conta não fecha: 99,99% permite cerca de 4 minutos de indisponibilidade por mês, menos do que um único ciclo de verificação, então o intervalo não consegue determinar se a meta foi cumprida.
Perguntas frequentes
Como o uptime de um SLA é calculado?
Da mesma forma que qualquer percentual de uptime é calculado: (tempo total menos indisponibilidade) dividido pelo tempo total, multiplicado por 100. A parte específica do SLA é qual indisponibilidade conta: apenas as indisponibilidades no endpoint e na janela exatos que o contrato cita, com a manutenção combinada excluída. Veja como calcular o uptime para a fórmula completa e exemplos resolvidos.
Manutenção conta contra um SLA?
Só se não tiver sido combinada com antecedência. A maioria dos SLAs exclui manutenções programadas que os dois lados documentaram previamente, mas a indisponibilidade causada por uma mudança não anunciada, ou por uma correção emergencial rotulada como "manutenção" depois do fato, ainda conta. A exclusão vale para a janela divulgada, não para a palavra em si.
O que é um bom SLA de uptime?
99,9% é um piso comum para um serviço comercial, permitindo cerca de 43 minutos de indisponibilidade por mês. 99,95% é um compromisso razoável de nível médio, e 99,99% é um compromisso sério que deixa apenas alguns minutos por mês, difícil de alcançar sem infraestrutura redundante e disciplina de manutenção. Trate qualquer promessa de 100% como uma alegação de marketing, não de engenharia; a tabela acima mostra o motivo.
Como faço para reivindicar créditos de SLA?
O formato geral é parecido entre provedores: reúna sua própria evidência de monitoramento do período afetado (timestamps, o endpoint verificado, a indisponibilidade confirmada), compare com a página de status ou o registro de incidentes do próprio provedor, e envie o pedido pelo canal de suporte do provedor dentro do prazo que o contrato dele estabelece, geralmente um número determinado de dias após o incidente. Consulte o documento de SLA do provedor específico para o prazo exato e as evidências exigidas, já que esses detalhes variam e podem expirar rapidamente.
Um único local de monitoramento consegue comprovar sozinho o cumprimento do SLA?
Não de forma confiável. Um único local não consegue distinguir uma indisponibilidade real de um problema no próprio caminho de rede até o provedor, que é exatamente o tipo de falso positivo que uma disputa de SLA não resiste. A confirmação de mais de um local independente antes de contar uma indisponibilidade é o que torna o número resultante defensável.