Saltar al contenido principal
Metodología · transparencia técnica

Cómo medimos el uptime

3 fuentes cruzadas (UptimeRobot · Sentry · Cloudflare Analytics) · external-first ground truth · conservative reporting · 5 inclusions + 5 exclusions explícitos · 6 policies + right to dispute Enterprise.

3 fuentes cruzadas

UptimeRobot
External monitoring · ground truth

Polling 60s contra 5 endpoints health (worker · landing · dashboard · status · webhook). Headquartered fuera nuestro infra · honesty enforced by external party.

Weight: Primary · usado para reporting publicado
Sentry
Application-level error tracking

Captures exceptions runtime · 5xx responses · timeout failures. Detecta degradation antes que UptimeRobot (errores antes de full outage).

Weight: Secondary · early warning + incident classification
Cloudflare Workers Analytics
Edge-level request analytics

Aggregated request counts · 4xx/5xx ratios · CPU time · cold start frequency. Internal · highest granularity.

Weight: Tertiary · usado para deep dive RCA · NO publicado

3 fórmulas matemáticas

Uptime %
(total_minutes_period - downtime_minutes) / total_minutes_period × 100

Period typically calendar month. Downtime cuenta desde 2 polls UptimeRobot consecutivos rojos hasta 2 polls consecutivos verdes (evita falsos positivos).

Ejemplo: 30 días = 43.200 min · 5 min downtime = (43.200 - 5) / 43.200 × 100 = 99.988%
MTTD (Mean Time To Detect)
avg(detection_timestamp - incident_start_timestamp) per incident

Detection timestamp = first alert sent (Sentry email/SMS o UptimeRobot polling). Incident start = earliest log entry indicating issue.

Ejemplo: Incident start 14:32:15 + alert 14:33:42 = MTTD 1m 27s
MTTR (Mean Time To Recover)
avg(resolution_timestamp - detection_timestamp) per incident

Resolution timestamp = service fully restored (health checks verde 2 polls consecutivos + 0 nuevos errors Sentry 5min). Includes humano reaction + diagnosis + fix + deploy + verification.

Ejemplo: Detection 14:33:42 + resolution 14:41:15 = MTTR 7m 33s
Incluido en downtime
  • ·Unplanned outages (cualquier failure no anunciado)
  • ·Degraded performance (response time >5x baseline)
  • ·Cualquier 5xx response a webhook crítico (Meta · Cal · Stripe)
  • ·Loss of data integrity (RLS violation · cross-tenant leak · data corruption)
  • ·Complete service unavailability cualquier subsystem (worker · DB · queue · cache)
NO contado como downtime
  • ·Mantenimiento programado anunciado >72h antes (ventanas típicas 03:00 UTC sábados)
  • ·Failure causa fuerza mayor documentada (Cloudflare regional outage · Supabase EU outage)
  • ·Failure causado por cliente (e.g., revocó OAuth · borró tenant manualmente)
  • ·Trial accounts (best-effort · no SLA contractual)
  • ·Issues isolados a 1 cliente single (não systemic · reported individually)

6 policies honest reporting

External-first ground truth
UptimeRobot (third party · no controlado por nosotros) es la fuente publicada. Nuestros internal logs son secondary · usados para RCA · no para reporting score.
Conservative reporting
Cuando UptimeRobot disagrees con Sentry/Cloudflare logs por ±0.01%, reportamos el número más bajo (más estricto contra nosotros). Honest > marketing-friendly.
Refresh mensual + audit log
Página /uptime-history actualiza día 1 cada mes con números mes anterior. Audit log cambios visible · si corregimos número publicado, lo documentamos.
Methodology change requires public notice
Si cambiamos forma medir uptime (e.g., add nuevo endpoint health), publicamos notice en /changelog 30 días antes de aplicar. Cero retroactive changes.
Right to dispute · cliente
Si cliente Enterprise reporta downtime que nosotros no contamos como tal, abrimos disputa · investigación cross-source · resolution +/-30 días. SLA credit aplicable si confirmamos.
Quarterly external audit (Enterprise tier)
Enterprise tier puede solicitar auditor externo (e.g., Drata · Vanta · custom) revisar metodología + raw data quarterly. Coste compartido o cliente · documented.

¿Tu compliance team quiere verificar metodología?

Enterprise tier puede solicitar acceso raw data UptimeRobot + Sentry + Cloudflare Analytics para audit independent. Documentación metodológica + raw exports disponibles bajo NDA.