Calcule la disponibilidad a partir de incidentes
Un mes de 30 días, 43.200 minutos, con tres incidentes que suman 45 minutos da algo menos del 99,9 % de disponibilidad, es decir, dos nueves. Escriba su periodo y la duración de sus incidentes en una misma unidad. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Período
- 43 200 minutes
- Incidentes
- 10, 20, 15
- Cantidad de incidentes
- 3 minutes
- Tiempo total de incidentes
- 45
- Tiempo disponible
- 43 155
- Porcentaje de disponibilidad
- 99,8958333333
Convierta un intervalo de monitorización y las duraciones de sus incidentes en un resultado claro de disponibilidad. Esta calculadora suma el tiempo de inactividad, comprueba que no supere el período, lo resta del tiempo monitorizado e indica tanto el porcentaje como la clasificación por nueves. Elija segundos, minutos, horas o días y emplee siempre la misma unidad. El cálculo es determinista, no usa la red ni presupone calendarios, marcas temporales o solapamientos.
Prepare el período y duraciones fiables
Comience con el intervalo completo del informe, por ejemplo 30 días, 720 horas o 43,200 minutos. Enumere después cada incidente que redujo la disponibilidad durante ese intervalo. El período y los incidentes deben compartir unidad.
Use una lista vacía si no hubo inactividad. La calculadora considera que las duraciones representan tiempos distintos y no detecta solapamientos; consolide antes los incidentes simultáneos del mismo servicio para no contar dos veces un minuto. El período debe ser positivo y cada duración finita y no negativa.
Si la suma supera el período, la solicitud se rechaza en vez de producir una disponibilidad negativa engañosa.
Interprete el porcentaje y los nueves
Primero se suman las duraciones para obtener la inactividad total. Esta se resta del período; el tiempo disponible se divide por el período completo y se multiplica por 100. Una disponibilidad del 99.9 por ciento significa que la inactividad ocupó una milésima del intervalo.
La clasificación usa la parte entera del logaritmo decimal negativo de la fracción inactiva: 0.001 da tres nueves y 0.0001 da cuatro. Los valores intermedios conservan la categoría inferior. Sin incidentes, se indica disponibilidad perfecta y se omite un número finito de nueves.
Aplique el resultado en informes de servicio
Los campos sirven para resúmenes humanos y flujos automatizados. El recuento confirma cuántas duraciones se evaluaron; los tiempos total y disponible conservan la unidad elegida; el porcentaje y la etiqueta permiten comunicar el resultado. Antes de publicarlo, confirme que el período coincide con las fechas del informe y que el mantenimiento programado sigue la política comunicada.
Para revisar un objetivo de servicio, compare el porcentaje con el umbral contractual y no solo con la etiqueta. En automatización, trate una entrada inválida como un problema de calidad: un total superior al período suele revelar duplicados, unidades mezcladas o informes incompatibles.
Qué puede hacer con ella
Publique un resumen mensual
Combine la duración del mes y los incidentes confirmados para obtener un porcentaje auditable y su etiqueta de nueves.
Revise un objetivo de servicio
Calcule la disponibilidad medida antes de compararla con un umbral o una política de presupuesto de error.
Valide una exportación de incidentes
Detecte informes imposibles donde la inactividad supera el período, señal habitual de duplicados o unidades mezcladas.
Preguntas frecuentes
¿Qué unidades puedo utilizar?
Use segundos, minutos, horas o días. El período y todas las duraciones deben emplear la unidad seleccionada.
¿Cómo se clasifican los nueves?
El número finito es la parte entera del logaritmo decimal negativo de la fracción de inactividad; nunca se redondea al alza.
¿Qué ocurre si no hay incidentes?
Una lista vacía o duraciones de cero produce 100 por ciento y disponibilidad perfecta, sin un número finito de nueves.
¿Se gestionan incidentes solapados?
No. Las duraciones se suman tal como se reciben; consolide antes los tiempos solapados del mismo servicio.
¿Por qué un resultado apenas inferior al 99,9 % cuenta solo como dos nueves?
Porque los valores entre dos umbrales exactos se quedan en la clase inferior. Tres nueves permiten como mucho una milésima del periodo sin servicio, y 45 minutos de 43.200 es un poco más, así que el resultado no presume de un objetivo que no alcanzó.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"period": 60,
"incidents": [
10,
20,
15
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.status_page_uptime_percent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_incidents | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Interprete el porcentaje y los nueves
El porcentaje se redondea a doce decimales para ofrecer JSON estable, pero la categoría usa la proporción sin redondear.
Aplique el resultado en informes de servicio
El navegador sirve para comprobaciones rápidas y la API cuesta $0.002 por solicitud en procesos automáticos.
Preguntas técnicas
¿Cuánto cuesta un cálculo por API?
Cada solicitud a la API cuesta $0.002. El mismo cálculo determinista también puede ejecutarse en el navegador.