Retención de datos y agregados
StatusInspector usa tres niveles de almacenamiento para mantener precisión en datos recientes y eficiencia en históricos largos, sin que el volumen de checks crezca indefinidamente.
Los tres niveles
Nivel 1 — Checks individuales (30 días)
Contiene el resultado completo de cada ejecución: estado, latencia, código HTTP, error, IP resuelta, traza sintética, etc. Es la fuente para el diagnóstico detallado de checks recientes.
Retención: 30 días. Los registros más antiguos se eliminan automáticamente una vez que han sido condensados en los agregados.
Nivel 2 — Agregados por hora (12 meses)
Almacena, por monitor y por hora UTC cerrada, métricas estadísticas:
- Total de checks ejecutados, cuántos resultaron UP y cuántos DOWN
- Latencia promedio, mínima y máxima (calculada solo sobre checks UP)
- Segundos de uptime y downtime en la ventana (aproximación basada en el intervalo del monitor)
Retención: 12 meses.
Nivel 3 — Agregados por día (3+ años)
Mismas métricas que el nivel horario, pero agrupadas por día UTC completo. Es la fuente principal para dashboards de largo plazo, páginas de estado y cálculos de SLA mensual.
Retención: 3 años o más (configurable).
¿Qué datos usa cada vista?
| Vista / período | Fuente |
|---|---|
| Últimas 24 h — checks individuales | Checks individuales (raw) |
| Últimas 24–48 h — gráfica de latencia | Agregados por hora |
| Últimos 7–30 días — KPIs de uptime | Agregados por hora o por día |
| Últimos 12 meses — histórico largo | Agregados por día |
| Barras de disponibilidad en status pages | Agregados por día |
| Incidentes (duración exacta) | Registro de incidentes |
Los checks individuales se conservan para diagnóstico reciente (ver latencias y errores por ejecución). Los agregados se usan para dashboards y métricas de disponibilidad.
Cómo se calculan las métricas
Disponibilidad (uptime %)
uptime % = segundos UP / (segundos UP + segundos DOWN) × 100
Los segundos de uptime/downtime son una aproximación basada en el intervalo configurado del monitor en el momento de la agregación. Si el intervalo cambió en el pasado, los periodos anteriores se aproximan con el valor vigente en ese momento.
Latencia
La latencia promedio se calcula solo sobre checks UP con latencia disponible. Las ventanas con muchos checks DOWN pueden tener muestras de latencia bajas o nulas.
Estado DEGRADED
El estado DEGRADED cuenta como servicio disponible para el cálculo de uptime, pero se registra por separado en conteos y tooltips.
Automatización: jobs de mantenimiento
La agregación y limpieza se ejecutan automáticamente en segundo plano:
| Tarea | Frecuencia | Acción |
|---|---|---|
| Agregación horaria | Cada hora | Consolida las ejecuciones de la hora cerrada |
| Agregación diaria | Diario | Consolida los agregados horarios del día cerrado |
| Limpieza de checks individuales | Diario | Elimina ejecuciones con más de 30 días |
| Limpieza de agregados horarios | Diario | Elimina agregados horarios con más de 12 meses |
Los jobs usan idempotencia por ventana: cada bucket (hora o día) se recalcula completamente si se re-ejecuta, sin acumular duplicados.
Notas sobre precisión
- Solo se agregan buckets cerrados: no se agrega la hora o el día en curso para evitar métricas parciales.
- Las páginas de estado públicas usan los agregados diarios para las barras de disponibilidad y el registro de incidentes para marcar días con incidente real. Ambas fuentes se presentan de forma diferenciada.
- La duración exacta de una interrupción proviene del registro de incidentes, no de los agregados.