Ricardo Pérez
SREObservabilidad

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ó"