MCP HubMCP Hub
스킬 목록으로 돌아가기

define-slo-sli-sla

pjt222
업데이트됨 2 days ago
2 조회
17
2
17
GitHub에서 보기
디자인design

정보

이 스킬은 개발자가 Sloth나 Pyrra 같은 도구와 Prometheus를 사용하여 SLO, SLI, SLA를 정의하고 구현하는 데 도움을 줍니다. 이를 통해 고객 대면 서비스의 에러 예산 추적, 소진율 알림, 자동화된 보고가 가능해집니다. 데이터 기반 메트릭에 근거한 SRE 방식을 도입하고, 기능 제공과 시스템 안정성 사이의 균형을 유지하는 데 활용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/define-slo-sli-sla

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서


name: define-slo-sli-sla description: > Establece Objetivos de Nivel de Servicio (SLO), Indicadores de Nivel de Servicio (SLI) y Acuerdos de Nivel de Servicio (SLA) con seguimiento de presupuesto de error, alertas de tasa de quema y reportes automáticos usando Prometheus y herramientas como Sloth o Pyrra. Útil para definir objetivos de confiabilidad para servicios orientados al cliente, equilibrar la velocidad de entrega de características frente a la confiabilidad del sistema a través de presupuestos de error, migrar de objetivos arbitrarios de tiempo de actividad a métricas basadas en datos, o implementar prácticas de Ingeniería de Confiabilidad del Sitio (SRE). locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: observability complexity: intermediate language: multi tags: slo, sli, sla, error-budget, burn-rate

Definir SLO/SLI/SLA

Establece objetivos de confiabilidad medibles con Objetivos de Nivel de Servicio, rastréalos con indicadores y gestiona los presupuestos de error.

Cuándo Usar

  • Definir objetivos de confiabilidad para servicios o APIs orientados al cliente
  • Establecer expectativas claras entre proveedores y consumidores de servicios
  • Equilibrar la velocidad de entrega de características con la confiabilidad del sistema a través de presupuestos de error
  • Crear criterios objetivos para la gravedad de incidentes y la respuesta
  • Migrar de objetivos arbitrarios de tiempo de actividad a métricas de confiabilidad basadas en datos
  • Implementar prácticas de Ingeniería de Confiabilidad del Sitio (SRE)
  • Medir y mejorar la calidad del servicio a lo largo del tiempo

Entradas

  • Requerido: Descripción del servicio y recorridos críticos del usuario
  • Requerido: Datos históricos de métricas (tasas de solicitud, latencias, tasas de error)
  • Opcional: Compromisos de SLA existentes con los clientes
  • Opcional: Requisitos de negocio para disponibilidad y rendimiento del servicio
  • Opcional: Historial de incidentes y datos de impacto en los clientes

Procedimiento

Consulta Ejemplos Extendidos para archivos de configuración completos y plantillas.

Paso 1: Comprender la Jerarquía SLI, SLO y SLA

Aprende la relación y las diferencias entre estos tres conceptos.

Definiciones:

SLI (Service Level Indicator)
- **What**: A quantitative measure of service behavior
- **Example**: Request success rate, request latency, system throughput
- **Measurement**: `successful_requests / total_requests * 100`

SLO (Service Level Objective)
- **What**: Target value or range for an SLI over a time window
- **Example**: 99.9% of requests succeed in 30-day window
- **Purpose**: Internal reliability target to guide operations

SLA (Service Level Agreement)
- **What**: Contractual commitment with consequences for missing SLO
- **Example**: 99.9% uptime SLA with refunds if breached
- **Purpose**: External promise to customers with penalties

Jerarquía:

SLA (99.9% uptime, customer refunds)
  ├─ SLO (99.95% success rate, internal target)
  │   └─ SLI (actual measured: 99.97% success rate)
  └─ Error Budget (0.05% failures allowed per month)

Principio clave: El SLO debe ser más estricto que el SLA para proporcionar un margen antes del impacto en el cliente.

Ejemplo:

  • SLA: 99.9% de disponibilidad (promesa al cliente)
  • SLO: 99.95% de disponibilidad (objetivo interno)
  • Margen: 0.05% de colchón antes de incumplir el SLA

Esperado: El equipo comprende las diferencias, acuerdo sobre qué métricas se convierten en SLIs, alineación en los objetivos de SLO.

En caso de fallo:

  • Revisar los capítulos del libro SRE de Google sobre SLI/SLO/SLA
  • Realizar un taller con las partes interesadas para alinear las definiciones
  • Comenzar con un SLI simple de tasa de éxito antes de SLOs de latencia complejos

Paso 2: Seleccionar SLIs Apropiados

Elige SLIs que reflejen la experiencia del usuario y el impacto en el negocio.

Las Cuatro Señales Doradas (Google SRE):

  1. Latencia: Tiempo para servir una solicitud

    # P95 latency
    histogram_quantile(0.95,
      sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
    )
    
  2. Tráfico: Demanda del sistema

    # Requests per second
    sum(rate(http_requests_total[5m]))
    
  3. Errores: Tasa de solicitudes fallidas

    # Error rate percentage
    sum(rate(http_requests_total{status=~"5.."}[5m]))
    / sum(rate(http_requests_total[5m])) * 100
    
  4. Saturación: Qué tan "lleno" está el sistema

    # CPU saturation
    avg(rate(node_cpu_seconds_total{mode!="idle"}[5m]))
    

Patrones comunes de SLI:

# Availability SLI
availability:
  description: "Percentage of successful requests"
  query: |
    sum(rate(http_requests_total{status!~"5.."}[5m]))
    / sum(rate(http_requests_total[5m]))
  good_threshold: 0.999  # 99.9%

# Latency SLI
latency:
  description: "P99 request latency under 500ms"
  query: |
    histogram_quantile(0.99,
      sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
    ) < 0.5
  good_threshold: 0.95  # 95% of windows meet target

# Throughput SLI
throughput:
  description: "Requests processed per second"
  query: |
    sum(rate(http_requests_total[5m]))
  good_threshold: 1000  # Minimum 1000 req/s

# Data freshness SLI (for batch jobs)
freshness:
  description: "Data updated within last hour"
  query: |
    (time() - max(data_last_updated_timestamp)) < 3600
  good_threshold: 1  # Always fresh

Criterios de selección de SLI:

  • Visible para el usuario: Refleja la experiencia real del usuario
  • Medible: Se puede cuantificar a partir de métricas existentes
  • Accionable: El equipo puede mejorarlo a través del trabajo de ingeniería
  • Significativo: Correlaciona con la satisfacción del cliente
  • Simple: Fácil de entender y explicar

Evitar:

  • Métricas internas del sistema no visibles para los usuarios (CPU, memoria)
  • Métricas de vanidad que no predicen el impacto en el cliente
  • Puntuaciones compuestas excesivamente complejas

Esperado: 2-4 SLIs seleccionados por servicio, cubriendo al menos disponibilidad y latencia, acuerdo del equipo sobre las consultas de medición.

En caso de fallo:

  • Trazar el recorrido del usuario para identificar puntos críticos de fallo
  • Analizar el historial de incidentes: ¿qué métricas predijeron el impacto en el cliente?
  • Validar el SLI con una prueba A/B: degradar la métrica, medir las quejas de los clientes
  • Comenzar con un SLI simple de disponibilidad, agregar complejidad iterativamente

Paso 3: Establecer Objetivos de SLO y Ventanas de Tiempo

Define objetivos de confiabilidad realistas y alcanzables.

Formato de especificación de SLO:

service: user-api
slos:
  - name: availability
    objective: 99.9
    description: |
      99.9% of requests return non-5xx status codes
# ... (see EXAMPLES.md for complete configuration)

Selección de ventana de tiempo:

Ventanas comunes:

  • 30 días (mensual): Típico para SLAs externos
  • 7 días (semanal): Retroalimentación más rápida para equipos de ingeniería
  • 1 día (diario): Servicios de alta frecuencia que requieren respuesta rápida

Ejemplo de presupuesto de error para ventana de 30 días:

SLO: 99.9% availability over 30 days
Allowed failures: 0.1%
Total requests per month: 100M
Error budget: 100,000 failed requests
Daily budget: ~3,333 failed requests

Establecer objetivos realistas:

  1. Establecer el rendimiento actual como línea base:

    # Check actual availability over past 90 days
    avg_over_time(
      (sum(rate(http_requests_total{status!~"5.."}[5m]))
      / sum(rate(http_requests_total[5m])))[90d:5m]
    )
    # Result: 99.95% → Set SLO at 99.9% (safer than current)
    
  2. Calcular el costo de los nueves:

    99%    → 7.2 hours downtime/month (low reliability)
    99.9%  → 43 minutes downtime/month (good)
    99.95% → 22 minutes downtime/month (very good)
    99.99% → 4.3 minutes downtime/month (expensive)
    99.999% → 26 seconds downtime/month (very expensive)
    
  3. Equilibrar la satisfacción del usuario frente al costo de ingeniería:

    • Demasiado estricto: costoso, ralentiza el desarrollo de características
    • Demasiado laxo: mala experiencia del usuario, abandono de clientes
    • Punto óptimo: Ligeramente mejor que las expectativas del usuario

Esperado: Objetivos de SLO establecidos con la aprobación de las partes interesadas del negocio, documentados con justificación, presupuesto de error calculado.

En caso de fallo:

  • Comenzar con un objetivo alcanzable (p. ej., 99% si el actual es 98.5%)
  • Iterar los objetivos de SLO trimestralmente basándose en el rendimiento real
  • Obtener el patrocinio ejecutivo para objetivos realistas frente a exigencias de "cinco nueves"
  • Documentar el análisis de costo-beneficio para cada nueve adicional

Paso 4: Implementar el Monitoreo de SLO con Sloth

Usa Sloth para generar reglas de grabación y alertas de Prometheus desde especificaciones de SLO.

Instalar Sloth:

# Binary installation
wget https://github.com/slok/sloth/releases/download/v0.11.0/sloth-linux-amd64
chmod +x sloth-linux-amd64
sudo mv sloth-linux-amd64 /usr/local/bin/sloth

# Or Docker
docker pull ghcr.io/slok/sloth:latest

Crear la especificación de SLO de Sloth (slos/user-api.yml):

version: "prometheus/v1"
service: "user-api"
labels:
  team: "platform"
  tier: "1"
slos:
# ... (see EXAMPLES.md for complete configuration)

Generar reglas de Prometheus:

# Generate recording and alerting rules
sloth generate -i slos/user-api.yml -o prometheus/rules/user-api-slo.yml

# Validate generated rules
promtool check rules prometheus/rules/user-api-slo.yml

Reglas de grabación generadas (extracto):

groups:
  - name: sloth-slo-sli-recordings-user-api-requests-availability
    interval: 30s
    rules:
      # SLI: Ratio of good events
      - record: slo:sli_error:ratio_rate5m
# ... (see EXAMPLES.md for complete configuration)

Alertas generadas:

groups:
  - name: sloth-slo-alerts-user-api-requests-availability
    rules:
      # Fast burn: 2% budget consumed in 1 hour
      - alert: UserAPIHighErrorRate
        expr: |
# ... (see EXAMPLES.md for complete configuration)

Cargar reglas en Prometheus:

# prometheus.yml
rule_files:
  - "rules/user-api-slo.yml"

Recargar Prometheus:

curl -X POST http://localhost:9090/-/reload

Esperado: Sloth genera alertas de múltiples ventanas y múltiples tasas de quema, las reglas de grabación se evalúan correctamente, las alertas se activan apropiadamente durante los incidentes.

En caso de fallo:

  • Validar la sintaxis YAML con yamllint slos/user-api.yml
  • Verificar la compatibilidad de la versión de Sloth (se recomienda v0.11+)
  • Verificar la evaluación de reglas de grabación de Prometheus: curl http://localhost:9090/api/v1/rules
  • Probar con inyección sintética de errores para activar las alertas
  • Verificar la documentación de Sloth para el formato de consulta de eventos SLI

Paso 5: Construir Dashboards de Presupuesto de Error

Visualiza el cumplimiento de SLO y el consumo del presupuesto de error en Grafana.

JSON del dashboard de Grafana (extracto):

{
  "dashboard": {
    "title": "SLO Dashboard - User API",
    "panels": [
      {
        "type": "stat",
# ... (see EXAMPLES.md for complete configuration)

Métricas clave a visualizar:

  • Objetivo de SLO vs SLI actual
  • Presupuesto de error restante (porcentaje y absoluto)
  • Tasa de quema (qué tan rápido se está agotando el presupuesto)
  • Tendencias históricas de SLI (ventana móvil de 30 días)
  • Tiempo hasta el agotamiento (si continúa la tasa de quema actual)

Panel de política de presupuesto de error (panel markdown):

## Error Budget Policy

**Current Status**: 78% budget remaining

### If Error Budget > 50%
- ✅ Full speed ahead on new features
# ... (see EXAMPLES.md for complete configuration)

Esperado: Los dashboards muestran el cumplimiento de SLO en tiempo real, el agotamiento del presupuesto de error es visible, el equipo puede tomar decisiones informadas sobre la velocidad de entrega de características.

En caso de fallo:

  • Verificar que las reglas de grabación existan: curl http://localhost:9090/api/v1/rules | jq '.data.groups[].rules[] | select(.name | contains("slo:"))'
  • Verificar que la fuente de datos de Prometheus en Grafana tenga la URL correcta
  • Validar los resultados de consulta en la vista Explore antes de agregar al dashboard
  • Asegurarse de que el rango de tiempo esté configurado en la ventana apropiada (p. ej., 30d para SLOs mensuales)

Paso 6: Establecer la Política de Presupuesto de Error

Define el proceso organizacional para gestionar los presupuestos de error.

Plantilla de política de presupuesto de error:

service: user-api
slo:
  availability: 99.9%
  latency_p99: 200ms
  window: 30 days

# ... (see EXAMPLES.md for complete configuration)

Automatizar el cumplimiento de políticas:

# Example: Deployment gate script
import requests
import sys

def check_error_budget(service):
    # Query Prometheus for error budget
# ... (see EXAMPLES.md for complete configuration)

Integrar en el pipeline de CI/CD:

# .github/workflows/deploy.yml
jobs:
  check-error-budget:
    runs-on: ubuntu-latest
    steps:
      - name: Check SLO Error Budget
        run: |
          python scripts/check_error_budget.py user-api
      - name: Deploy
        if: success()
        run: |
          kubectl apply -f deploy/

Esperado: Política clara documentada, puertas automatizadas previenen despliegues riesgosos durante el agotamiento del presupuesto, alineación del equipo en las prioridades de confiabilidad.

En caso de fallo:

  • Comenzar con cumplimiento manual de políticas (recordatorios de Slack)
  • Automatizar gradualmente con puertas suaves (advertencias, no bloqueos)
  • Obtener la aprobación ejecutiva antes de las puertas duras (despliegues bloqueados)
  • Revisar la efectividad de la política trimestralmente, ajustar los umbrales según sea necesario

Validación

  • Los SLIs seleccionados reflejan la experiencia del usuario y el impacto en el negocio
  • Los objetivos de SLO establecidos con acuerdo de las partes interesadas y justificación documentada
  • Las reglas de grabación de Prometheus generan métricas de SLI correctamente
  • Las alertas de múltiples tasas de quema configuradas y probadas con errores sintéticos
  • Los dashboards de Grafana muestran el cumplimiento de SLO en tiempo real y el presupuesto de error
  • La política de presupuesto de error documentada y comunicada al equipo
  • Las puertas automatizadas previenen despliegues riesgosos durante el agotamiento del presupuesto
  • Reuniones de revisión de SLO semanales/mensuales programadas
  • Las retrospectivas de incidentes incluyen análisis de impacto en el SLO
  • Los informes de cumplimiento de SLO se comparten con las partes interesadas

Errores Comunes

  • SLOs demasiado estrictos: Establecer "cinco nueves" sin análisis de costos lleva al agotamiento y ralentiza la velocidad de entrega de características. Comenzar alcanzable, iterar hacia arriba.
  • Demasiados SLIs: Rastrear más de 10 indicadores crea confusión. Centrarse en 2-4 métricas críticas orientadas al usuario.
  • SLO sin margen de SLA: Establecer el SLO igual al SLA no deja margen de error antes del impacto en el cliente. Mantener un margen de 0.05-0.1%.
  • Ignorar el presupuesto de error: Rastrear SLOs pero no actuar sobre el agotamiento del presupuesto anula el propósito. Hacer cumplir la política de presupuesto de error.
  • Métricas de vanidad como SLIs: Usar métricas internas (CPU, memoria) en lugar de métricas visibles para el usuario (latencia, errores) desalinea las prioridades.
  • Sin aprobación de las partes interesadas: Los SLOs solo de ingeniería sin acuerdo de producto/negocio llevan a conflictos. Obtener patrocinio ejecutivo.
  • SLOs estáticos: Nunca revisar ni ajustar los objetivos a medida que el sistema evoluciona. Revisitar trimestralmente basándose en el rendimiento real y los comentarios de los usuarios.

Habilidades Relacionadas

  • setup-prometheus-monitoring - Configurar Prometheus para recopilar métricas para el cálculo de SLI
  • configure-alerting-rules - Integrar alertas de tasa de quema de SLO con Alertmanager para notificaciones de guardia
  • build-grafana-dashboards - Visualizar el cumplimiento de SLO y el consumo del presupuesto de error
  • write-incident-runbook - Incluir el impacto en el SLO en los manuales para priorizar la respuesta a incidentes

GitHub 저장소

pjt222/agent-almanac
경로: i18n/es/skills/define-slo-sli-sla
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

executing-plans

디자인

executing-plans 스킬은 검토 체크포인트가 포함된 통제된 배치로 실행할 완전한 구현 계획이 있을 때 사용합니다. 이 스킬은 계획을 불러와 비판적으로 검토한 후, 소규모 배치(기본값 3개 작업)로 작업을 실행하면서 각 배치 사이에 진행 상황을 아키텍트 검토를 위해 보고합니다. 이를 통해 내재된 품질 관리 체크포인트를 갖춘 체계적인 구현이 보장됩니다.

스킬 보기

requesting-code-review

디자인

이 스킬은 코드 변경 사항을 요구 사항에 따라 분석하기 위해 코드 리뷰어 하위 에이전트를 호출합니다. 작업 완료 후, 주요 기능 구현 후, 또는 메인 브랜치에 병합하기 전에 사용해야 합니다. 이 리뷰는 현재 구현체와 원래 계획을 비교하여 문제를 조기에 발견하는 데 도움이 됩니다.

스킬 보기

connect-mcp-server

디자인

이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.

스킬 보기

web-cli-teleport

디자인

이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.

스킬 보기