Alejandría

Busca en Alejandría

Técnicas

SLI, SLO y error budgets

Define la fiabilidad que importa al usuario y usa el margen de error para equilibrar velocidad y estabilidad.

01

En pocas palabras

Práctica de SRE que mide la experiencia del usuario con indicadores (SLI), fija objetivos (SLO) y gestiona el margen tolerable de fallo (error budget) como un recurso.

Qué problema resuelve

Alertas sobre CPU que no reflejan el impacto real, discusiones eternas entre producto y operaciones sobre cuándo frenar.

Cuándo utilizarlo

Servicios con usuarios o consumidores que dependen de ellos. Ejemplo: decidir si se congela una funcionalidad tras varios incidentes en la API de pagos.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

Conceptos

Término Definición Ejemplo
SLI Proporción de eventos buenos sobre eventos válidos Peticiones 2xx/4xx en < 500 ms ÷ peticiones totales
SLO Objetivo para un SLI en una ventana 99,5 % en 28 días
Error budget 1 − SLO: cuánto fallo es aceptable 0,5 % ≈ 3 h 22 min en 28 días
SLA Compromiso contractual con consecuencias; más laxo que el SLO 99 % mensual con penalización

Elegir buenos SLI

Mide lo más cerca posible del usuario (balanceador o cliente, no el pod) y según el tipo de servicio:

Tipo de servicio SLI habituales
API síncrona Disponibilidad, latencia
Pipeline / batch Frescura (edad del dato), completitud, corrección
Almacenamiento Durabilidad, latencia de lectura
Flujo de negocio Proporción de solicitudes resueltas en < 24 h

Tabla de referencia del error budget (30 días)

SLO Indisponibilidad permitida
99 % 7 h 12 min
99,5 % 3 h 36 min
99,9 % 43 min
99,95 % 21 min 36 s
99,99 % 4 min 19 s

Cada nueve adicional multiplica el coste: redundancia multirregión, guardias, procesos de cambio más lentos.

Alertas por burn rate

El burn rate es la velocidad de consumo del budget: 1 significa agotarlo justo al final de la ventana. El SRE Workbook recomienda alertas multiventana, por ejemplo para un SLO a 30 días:

Severidad Burn rate Ventana larga / corta Budget consumido
Página 14,4 1 h / 5 min 2 %
Página 6 6 h / 30 min 5 %
Ticket 1 3 d / 6 h 10 %

La ventana corta evita seguir alertando cuando el problema ya se resolvió.

Política de error budget

El valor del SLO está en la política acordada de antemano entre producto e ingeniería:

  • Budget sano → se despliega con normalidad, se experimenta.
  • Budget agotado → se prioriza fiabilidad: solo correcciones y mejoras de estabilidad hasta recuperarlo.
  • Un solo incidente que consume más del 20 % → postmortem obligatorio.

SLO como código (Sloth / Prometheus)

version: prometheus/v1
service: api-pagos
slos:
  - name: disponibilidad
    objective: 99.9
    description: Peticiones de pago respondidas sin error de servidor.
    sli:
      events:
        error_query: sum(rate(http_server_requests_seconds_count{app="api-pagos",status=~"5.."}[{{.window}}]))
        total_query: sum(rate(http_server_requests_seconds_count{app="api-pagos"}[{{.window}}]))
    alerting:
      name: ApiPagosDisponibilidad
      page_alert: { labels: { severity: critica } }
      ticket_alert: { labels: { severity: aviso } }

Sloth genera las reglas de grabación y las alertas multiventana de burn rate. En Google Cloud, Service Monitoring permite definir el mismo SLO sobre métricas de Cloud Run o del balanceador sin infraestructura adicional.

SLO de latencia bien definido

SLI: proporción de peticiones POST /v1/pagos con respuesta en < 800 ms
     medida en el balanceador, excluyendo respuestas 4xx de validación
SLO: 99 % en 28 días móviles

Medir latencia como proporción de peticiones «suficientemente rápidas» (y no como un percentil promedio) permite calcular un error budget igual que con la disponibilidad.

Revisión mensual de fiabilidad

Pregunta Fuente
¿Cuánto budget consumimos y en qué incidentes? Panel de SLO, postmortems
¿El SLO refleja lo que perciben los usuarios? Quejas, tickets de soporte, NPS
¿Es demasiado estricto (frena sin aportar) o laxo? Tendencia de 3–6 meses
¿Qué acciones de fiabilidad entran en la planificación? Política de error budget

Errores frecuentes

  • SLO para todo: decenas de objetivos que nadie revisa. Empieza por los recorridos críticos del usuario.
  • SLO = SLA: si el objetivo interno coincide con el contractual, se incumple el contrato antes de reaccionar.
  • Medir desde dentro del servicio: no captura fallos del balanceador, DNS o red.
  • Política de budget que nadie aplica: si al agotarse no cambia nada, el SLO es solo un gráfico.

Criterios de implementación

Empieza con uno o dos SLO por servicio crítico, con valores basados en el rendimiento histórico y no en aspiraciones. Revisa los SLO cada trimestre. Relaciónalos con las métricas DORA: la estabilidad de la entrega afecta al budget. Instrumenta con OpenTelemetry y define los SLO como código (OpenSLO, Sloth o el servicio gestionado de tu nube).

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.