Calcule a disponibilidade com durações de incidentes
Um mês de 30 dias, ou 43.200 minutos, com três incidentes que somam 45 minutos dá pouco menos de 99,9 % de disponibilidade, ou seja, dois noves. Informe o período e a duração dos incidentes na mesma unidade. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Período
- 43.200 minutes
- Incidentes
- 10, 20, 15
- Quantidade de incidentes
- 3 minutes
- Tempo total de incidentes
- 45
- Tempo disponível
- 43.155
- Percentual de disponibilidade
- 99,8958333333
Transforme uma janela de monitoramento e as durações dos incidentes em um resultado claro de disponibilidade. A calculadora soma a indisponibilidade, verifica se ela cabe no período, subtrai esse total do tempo monitorado e informa o percentual e a classificação em noves. Escolha segundos, minutos, horas ou dias e use sempre a mesma unidade. O cálculo é determinístico, não acessa a rede nem presume calendários, horários ou sobreposições.
Prepare o período e durações confiáveis
Comece com todo o intervalo do relatório, como 30 dias, 720 horas ou 43,200 minutos. Depois, liste cada incidente que reduziu a disponibilidade nesse intervalo. O período e os incidentes devem usar a mesma unidade.
Use uma lista vazia quando não houver indisponibilidade. A calculadora considera as durações como períodos distintos e não identifica sobreposição; portanto, consolide antes incidentes simultâneos do mesmo serviço para não contar o mesmo minuto duas vezes. O período deve ser positivo e cada duração deve ser finita e não negativa.
Se a soma superar o período, a solicitação será recusada em vez de gerar um valor negativo enganoso.
Entenda o percentual e a classificação
Primeiro, todas as durações são somadas. O total é subtraído do período, o tempo disponível é dividido pelo período completo e multiplicado por 100. Um resultado de 99.9 por cento indica indisponibilidade de um milésimo do intervalo.
A classificação usa o piso do logaritmo negativo de base dez da fração indisponível: 0.001 gera três noves e 0.0001 gera quatro. Valores entre limites permanecem na categoria inferior. Sem incidentes, o resultado informa disponibilidade perfeita e omite uma contagem finita.
Use o resultado em relatórios de serviço
Os campos atendem tanto resumos quanto automações. A contagem confirma quantas durações foram avaliadas; os tempos total e disponível mantêm a unidade; o percentual e a classificação comunicam o desempenho. Antes de publicar, confirme se o período corresponde às datas do relatório e se a manutenção programada segue a política informada.
Para revisar um objetivo de serviço, compare o percentual ao limite contratual, não apenas ao rótulo. Em automações, trate uma entrada inválida como problema de qualidade: um total maior que o período costuma indicar duplicidade, unidades misturadas ou relatórios incompatíveis.
Casos de uso
Publique um resumo mensal
Combine a duração do mês e os incidentes confirmados para obter um percentual auditável e sua classificação.
Revise um objetivo de serviço
Calcule a disponibilidade medida antes de compará-la a uma meta ou política de orçamento de erro.
Valide uma exportação de incidentes
Encontre relatórios impossíveis em que a indisponibilidade supera a janela, sinal comum de duplicidade ou unidades misturadas.
Perguntas frequentes
Quais unidades posso usar?
Use segundos, minutos, horas ou dias. O período e todas as durações devem usar a unidade selecionada.
Como os noves são classificados?
A contagem finita é o piso do logaritmo negativo de base dez da fração indisponível, sem arredondamento para cima.
O que acontece sem incidentes?
Uma lista vazia ou apenas durações zero produz 100 por cento e disponibilidade perfeita, sem contagem finita de noves.
A calculadora trata incidentes sobrepostos?
Não. As durações são somadas como recebidas; consolide antes a indisponibilidade sobreposta do mesmo serviço.
E se os incidentes somarem mais tempo que o período?
O cálculo é recusado em vez de devolver uma disponibilidade negativa, que não faria sentido. Confira se o período cobre todo o intervalo do relatório e se os incidentes estão na mesma unidade dele.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/status-page-uptime-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"period":60,"incidents":[10,20,15]}'const res = await fetch("https://api.kit.forhosting.com/web/status-page-uptime-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"period": 60,
"incidents": [
10,
20,
15
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/status-page-uptime-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"period": 60,
"incidents": [
10,
20,
15
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/status-page-uptime-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"period":60,"incidents":[10,20,15]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"period":60,"incidents":[10,20,15]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/status-page-uptime-percent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"period": 60,
"incidents": [
10,
20,
15
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.status_page_uptime_percent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_incidents | 10000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entenda o percentual e a classificação
O percentual é arredondado para doze casas decimais para manter o JSON estável, mas a classificação usa a razão não arredondada.
Use o resultado em relatórios de serviço
O navegador ajuda em verificações rápidas, e chamadas de API custam US$ 0,002 por solicitação em pipelines.
Perguntas técnicas
Quanto custa um cálculo via API?
Cada solicitação de API custa US$ 0,002. O mesmo cálculo determinístico também pode ser executado no navegador.