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

define-slo-sli-sla

pjt222
업데이트됨 Yesterday
1 조회
17
2
17
GitHub에서 보기
기타automation

정보

이 스킬은 개발자가 Prometheus와 Sloth 또는 Pyrra 같은 도구를 사용하여 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: > Service Level Objectives (SLO), Service Level Indicators (SLI) und Service Level Agreements (SLA) mit Fehlerbudget-Tracking, Burn-Rate-Alerts und automatisierter Berichterstellung mit Prometheus und Tools wie Sloth oder Pyrra definieren. Verwenden, wenn Zuverlaessigkeitsziele fuer kundenseitige Services festgelegt werden, Feature- Geschwindigkeit und Systemzuverlaessigkeit durch Fehlerbudgets abgewogen werden, von willkuerlichen Uptime-Zielen zu datengetriebenen Metriken migriert wird oder Site-Reliability-Engineering-Praktiken implementiert werden. locale: de 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

SLO/SLI/SLA definieren

Messbare Zuverlaessigkeitsziele mit Service Level Objectives festlegen, mit Indikatoren verfolgen und Fehlerbudgets verwalten.

Wann verwenden

  • Zuverlaessigkeitsziele fuer kundenseitige Services oder APIs festlegen
  • Klare Erwartungen zwischen Service-Anbietern und Verbrauchern etablieren
  • Feature-Geschwindigkeit mit Systemzuverlaessigkeit durch Fehlerbudgets ausbalancieren
  • Objektive Kriterien fuer Incident-Schweregrad und -Reaktion erstellen
  • Von willkuerlichen Uptime-Zielen zu datengetriebenen Zuverlaessigkeitsmetriken migrieren
  • Site-Reliability-Engineering-Praktiken (SRE) implementieren
  • Servicequalitaet im Laufe der Zeit messen und verbessern

Eingaben

  • Pflichtfeld: Service-Beschreibung und kritische Benutzer-Journeys
  • Pflichtfeld: Historische Metrikdaten (Request-Raten, Latenzen, Fehlerquoten)
  • Optional: Bestehende SLA-Verpflichtungen gegenueber Kunden
  • Optional: Geschaeftsanforderungen fuer Service-Verfuegbarkeit und -Performance
  • Optional: Incident-Verlauf und Daten zu Kundenauswirkungen

Vorgehensweise

Unter Extended Examples sind vollstaendige Konfigurationsdateien und Templates verfuegbar.

Schritt 1: SLI-, SLO- und SLA-Hierarchie verstehen

Die Beziehungen und Unterschiede zwischen diesen drei Konzepten erlernen.

Definitionen:

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

Hierarchie:

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)

Schluessprinzip: Das SLO sollte strenger als das SLA sein, um einen Puffer zu bieten, bevor Kunden betroffen sind.

Beispiel:

  • SLA: 99,9 % Verfuegbarkeit (Kundenzusage)
  • SLO: 99,95 % Verfuegbarkeit (internes Ziel)
  • Puffer: 0,05 % Spielraum vor SLA-Verletzung

Erwartet: Team versteht Unterschiede, Einigung, welche Metriken zu SLIs werden, Abstimmung zu SLO-Zielen.

Bei Fehler:

  • Google-SRE-Buch-Kapitel zu SLI/SLO/SLA lesen
  • Workshop mit Stakeholdern zur Abstimmung ueber Definitionen durchfuehren
  • Mit einfachem Erfolgsquoten-SLI beginnen, bevor komplexe Latenz-SLOs erstellt werden

Schritt 2: Geeignete SLIs auswaehlen

SLIs auswaehlen, die Benutzererfahrung und Geschaeftsauswirkungen widerspiegeln.

Die vier goldenen Signale (Google SRE):

  1. Latenz: Zeit zur Bearbeitung einer Anfrage

    # P95 latency
    histogram_quantile(0.95,
      sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
    )
    
  2. Traffic: Nachfrage an das System

    # Requests per second
    sum(rate(http_requests_total[5m]))
    
  3. Fehler: Rate fehlgeschlagener Anfragen

    # Error rate percentage
    sum(rate(http_requests_total{status=~"5.."}[5m]))
    / sum(rate(http_requests_total[5m])) * 100
    
  4. Saettigung: Wie "voll" das System ist

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

Gaengige SLI-Muster:

# 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

SLI-Auswahlkriterien:

  • Benutzersichtbar: Spiegelt tatsaechliche Benutzererfahrung wider
  • Messbar: Kann aus vorhandenen Metriken quantifiziert werden
  • Handlungsorientiert: Team kann es durch Engineering-Arbeit verbessern
  • Bedeutsam: Korreliert mit Kundenzufriedenheit
  • Einfach: Leicht zu verstehen und zu erklaeren

Vermeiden:

  • Interne Systemmetriken, die Benutzern nicht sichtbar sind (CPU, Arbeitsspeicher)
  • Eitelkeitsmetriken, die keine Kundenauswirkungen vorhersagen
  • Uebermassig komplexe zusammengesetzte Bewertungen

Erwartet: 2-4 SLIs pro Service ausgewaehlt, mindestens Verfuegbarkeit und Latenz abdeckend, Team-Einigung zu Messabfragen.

Bei Fehler:

  • Benutzer-Journey abbilden, um kritische Ausfallpunkte zu identifizieren
  • Incident-Verlauf analysieren: Welche Metriken sagten Kundenauswirkungen voraus?
  • SLI mit A/B-Test validieren: Metrik verschlechtern, Kundenbeschwerden messen
  • Mit einfachem Verfuegbarkeits-SLI beginnen, Komplexitaet iterativ hinzufuegen

Schritt 3: SLO-Ziele und Zeitfenster festlegen

Realistische und erreichbare Zuverlaessigkeitsziele definieren.

SLO-Spezifikationsformat:

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)

Auswahl des Zeitfensters:

Gaengige Fenster:

  • 30 Tage (monatlich): Typisch fuer externe SLAs
  • 7 Tage (woechentlich): Schnelleres Feedback fuer Engineering-Teams
  • 1 Tag (taeglich): Hochfrequente Services mit schneller Reaktion erforderlich

Beispiel-Fehlerbudget fuer 30-Tage-Fenster:

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

Realistische Ziele setzen:

  1. Aktuelle Performance als Ausgangspunkt nehmen:

    # 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. Kosten der Neunen berechnen:

    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. Benutzer-Glueck gegenueber Engineering-Kosten abwaegen:

    • Zu streng: Teuer, verlangsamt Feature-Entwicklung
    • Zu locker: Schlechte Benutzererfahrung, Kundenverlust
    • Optimaler Punkt: Etwas besser als Benutzererwartungen

Erwartet: SLO-Ziele mit Zustimmung der Geschaefts-Stakeholder gesetzt, mit Begruendung dokumentiert, Fehlerbudget berechnet.

Bei Fehler:

  • Mit erreichbarem Ziel beginnen (z. B. 99 %, wenn aktuell 98,5 %)
  • SLO-Ziele vierteljaehrlich basierend auf tatsaechlicher Performance iterieren
  • Fuehrungsunterstuetzung fuer realistische Ziele vs. "fuenf Neunen"-Anforderungen einholen
  • Kosten-Nutzen-Analyse fuer jede zusaetzliche Neun dokumentieren

Schritt 4: SLO-Monitoring mit Sloth implementieren

Sloth verwenden, um Prometheus-Recording-Rules und Alerts aus SLO-Spezifikationen zu generieren.

Sloth installieren:

# 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

Sloth-SLO-Spezifikation erstellen (slos/user-api.yml):

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

Prometheus-Regeln generieren:

# 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

Generierte Recording-Rules (Auszug):

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)

Generierte Alerts:

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)

Regeln in Prometheus laden:

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

Prometheus neu laden:

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

Erwartet: Sloth generiert Multi-Window-Multi-Burn-Rate-Alerts, Recording-Rules werden erfolgreich ausgewertet, Alerts werden waehrend Incidents entsprechend ausgeloest.

Bei Fehler:

  • YAML-Syntax mit yamllint slos/user-api.yml validieren
  • Sloth-Versionskompatibilitaet pruefen (v0.11+ empfohlen)
  • Prometheus-Recording-Rule-Auswertung pruefen: curl http://localhost:9090/api/v1/rules
  • Mit synthetischer Fehlerinjektion testen, um Alerts auszuloesen
  • Sloth-Dokumentation fuer das SLI-Ereignisabfrageformat pruefen

Schritt 5: Fehlerbudget-Dashboards erstellen

SLO-Compliance und Fehlerbudget-Verbrauch in Grafana visualisieren.

Grafana-Dashboard-JSON (Auszug):

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

Zu visualisierende Schluesselmetriken:

  • SLO-Ziel vs. aktueller SLI
  • Verbleibendes Fehlerbudget (prozentuell und absolut)
  • Burn-Rate (wie schnell das Budget erschoepft wird)
  • Historische SLI-Trends (gleitendes 30-Tage-Fenster)
  • Bis zur Erschoepfung verbleibende Zeit (bei aktueller Burn-Rate)

Dashboard fuer Fehlerbudget-Richtlinien (Markdown-Panel):

## Error Budget Policy

**Current Status**: 78% budget remaining

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

Erwartet: Dashboards zeigen Echtzeit-SLO-Compliance, Fehlerbudget-Abbau sichtbar, Team kann fundierte Entscheidungen zur Feature-Geschwindigkeit treffen.

Bei Fehler:

  • Recording-Rules pruefen: curl http://localhost:9090/api/v1/rules | jq '.data.groups[].rules[] | select(.name | contains("slo:"))'
  • Prometheus-Datenquelle in Grafana auf korrekte URL pruefen
  • Abfrageergebnisse in der Explore-Ansicht validieren, bevor zum Dashboard hinzugefuegt wird
  • Sicherstellen, dass der Zeitbereich auf das entsprechende Fenster eingestellt ist (z. B. 30d fuer monatliche SLOs)

Schritt 6: Fehlerbudget-Richtlinie etablieren

Organisatorischen Prozess zur Verwaltung von Fehlerbudgets definieren.

Vorlage fuer Fehlerbudget-Richtlinien:

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

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

Richtliniendurchsetzung automatisieren:

# Example: Deployment gate script
import requests
import sys

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

In CI/CD-Pipeline integrieren:

# .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/

Erwartet: Klare Richtlinie dokumentiert, automatisierte Gates verhindern riskante Deployments waehrend der Budget-Erschoepfung, Team-Abstimmung zu Zuverlaessigkeitsprioritaeten.

Bei Fehler:

  • Mit manueller Richtliniendurchsetzung beginnen (Slack-Erinnerungen)
  • Schrittweise mit weichen Gates automatisieren (Warnungen, keine Blockierungen)
  • Fuehrungsunterstuetzung vor harten Gates einholen (Deployments blockieren)
  • Richtlinieneffektivitaet vierteljaehrlich ueberpruefen, Schwellenwerte nach Bedarf anpassen

Validierung

  • SLIs ausgewaehlt, die Benutzererfahrung und Geschaeftsauswirkungen widerspiegeln
  • SLO-Ziele mit Stakeholder-Zustimmung und dokumentierter Begruendung gesetzt
  • Prometheus-Recording-Rules generieren SLI-Metriken erfolgreich
  • Multi-Burn-Rate-Alerts konfiguriert und mit synthetischen Fehlern getestet
  • Grafana-Dashboards zeigen Echtzeit-SLO-Compliance und Fehlerbudget
  • Fehlerbudget-Richtlinie dokumentiert und an Team kommuniziert
  • Automatisierte Gates verhindern riskante Deployments waehrend Budget-Erschoepfung
  • Woechentliche/monatliche SLO-Reviewmeetings geplant
  • Incident-Retrospektiven beinhalten SLO-Auswirkungsanalyse
  • SLO-Compliance-Berichte werden mit Stakeholdern geteilt

Haeufige Stolperfallen

  • Zu strenge SLOs: "Fuenf Neunen" ohne Kostenanalyse setzen fuehrt zu Erschoepfung und verlangsamter Feature-Entwicklung. Erreichbar beginnen, iterativ steigern.
  • Zu viele SLIs: 10+ Indikatoren verfolgen schafft Verwirrung. Auf 2-4 kritische kundenseitige Metriken konzentrieren.
  • SLO ohne SLA-Puffer: SLO gleich SLA setzen laesst keinen Spielraum fuer Fehler vor Kundenauswirkungen. 0,05-0,1 % Puffer halten.
  • Fehlerbudget ignorieren: SLOs verfolgen, aber nicht auf Budget-Erschoepfung reagieren, macht den Zweck zunichte. Fehlerbudget-Richtlinie durchsetzen.
  • Eitelkeitsmetriken als SLIs: Interne Metriken (CPU, Arbeitsspeicher) statt benutzersichtbarer Metriken (Latenz, Fehler) verwenden, fuehrt zu Fehlausrichtung der Prioritaeten.
  • Kein Stakeholder-Buy-in: Nur Engineering-SLOs ohne Produkt/Geschaefts-Vereinbarung fuehren zu Konflikten. Fuehrungsunterstuetzung einholen.
  • Statische SLOs: Ziele niemals ueberpruefen oder anpassen, wenn das System sich weiterentwickelt. Vierteljaehrlich basierend auf tatsaechlicher Performance und Benutzerfeedback ueberpruefen.

Verwandte Skills

  • setup-prometheus-monitoring - Prometheus konfigurieren, um Metriken fuer SLI-Berechnung zu sammeln
  • configure-alerting-rules - SLO-Burn-Rate-Alerts mit Alertmanager fuer On-Call-Benachrichtigungen integrieren
  • build-grafana-dashboards - SLO-Compliance und Fehlerbudget-Verbrauch visualisieren
  • write-incident-runbook - SLO-Auswirkungen in Runbooks fuer die Priorisierung der Incident-Reaktion einschliessen

GitHub 저장소

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

연관 스킬

llamaguard

기타

LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.

스킬 보기

cost-optimization

기타

이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.

스킬 보기

quantizing-models-bitsandbytes

기타

이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.

스킬 보기

dispatching-parallel-agents

기타

이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.

스킬 보기