14 de enero de 2025 / Ricardo Pérez
Notas SRE, que médimos, SLI, SLO, SLA
La forma sencilla en la que empecé a distinguir qué mido, qué objetivo tengo y qué estoy prometiendo.
Cuando empecé a estudiar estos conceptos, las definiciones formales me parecían más complicadas de lo necesario.
La forma que finalmente me funcionó fue esta:
- SLI: lo que tengo.
- SLO: lo que quiero tener.
- SLA: lo que prometo contractualmente.
SLI
Un Service Level Indicator es una medición real del comportamiento del servicio.
Por ejemplo:
Disponibilidad actual: 99.72%
Eso no es una meta. Es lo que realmente ocurrió.
SLO
El Service Level Objective es el objetivo interno que quiero alcanzar.
SLO de disponibilidad: 99.9%
SLA
El Service Level Agreement ya es un compromiso hacia afuera.
Si prometo contractualmente 99.5% y entrego menos, ya no tengo solamente un problema técnico: puedo tener un problema contractual.
Lo que me hizo clic
La frase que quiero recordar es:
SLI = mido. SLO = objetivo. SLA = promesa.
Error budget
Hay algo que se llama Error Budget que se puede traducir a una cifra de holgura, por ejemplo si mi SLO de disponibilidad es el 99.7% para los ultimos 30 días, lo podemos traducir a que tenemos un 0.3% de holgura o de chance de que no este disponible un app los últimos 30 días, que esto se traduce a sacar el total de minutos que tenemos en 30 días que es igual a 43200 minutos y el 0.3% de eso es igual a 43.2 * 3 = 129.6 minutos que puede estar fuera
P95 = 400ms
Hay un termino muy comun que es por ejemplo p95 = 400ms que quiere decir que un 95% de las peticiones se completaron en 400ms o menos
Golden Signals
Latency
¿Cuánto tardan las peticiones?
Traffic
¿Cuánto trabajo está recibiendo nuestro sistema?
Por ejemplo:
Errors
¿Cuántas operaciones están fallando?
Saturation
¿Qué tan cerca estamos del límite de capacidad?
Aquí pueden aparecer:
- CPU
- RAM
- connections
- threads
- disk IO
- queue size
En resumen
LATENCY → ¿qué tan lento?
TRAFFIC → ¿cuánto trabajo?
ERRORS → ¿cuánto está fallando?
SATURATION → ¿qué tan lleno?
Monitoreo
En esta parte tenemos 3 pilares
SISTEMA
┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
METRICS LOGS TRACES
"cuánto" "qué pasó" "por dónde pasó"