
SLI, SLO ve SLA Nedir? Hizmet Güvenilirliği Metrikleri Rehberi
Bir servisin "güvenilir" olduğunu söylemek yeterli değildir - bunu ölçülebilir metriklerle tanımlamanız gerekir. SLI (Service Level Indicator), SLO (Service Level Objective) ve SLA (Service Level Agreement) bu ölçümün temel yapı taşlarıdır. Google'ın Site Reliability Engineering (SRE) yaklaşımından
Merve Arslan
WordPress & Hosting Uzmanı
Bir servisin "güvenilir" olduğunu söylemek yeterli değildir - bunu ölçülebilir metriklerle tanımlamanız gerekir. SLI (Service Level Indicator), SLO (Service Level Objective) ve SLA (Service Level Agreement) bu ölçümün temel yapı taşlarıdır. Google'ın Site Reliability Engineering (SRE) yaklaşımından doğan bu kavramlar, hizmet kalitesini sayısal olarak tanımlar ve ekiplerin doğru kararlar almasını sağlar. Bu rehberde her kavramı somut örneklerle açıklıyor, error budget hesaplama yöntemini gösteriyor ve Prometheus ile SLI ölçümünü adım adım kuruyoruz.
SLI, SLO ve SLA: Temel Kavramlar
Bu üç kavram birbiriyle ilişkili ancak farklı katmanlarda çalışır. SLI ölçer, SLO hedef koyar, SLA taahhüt eder.
| Kavram | Tanım | Kim Belirler? | Örnek |
|---|---|---|---|
| SLI | Hizmet kalitesinin ölçülebilir göstergesi | Mühendislik ekibi | Başarılı isteklerin oranı: %99.95 |
| SLO | SLI için belirlenen hedef değer | Mühendislik + Ürün ekibi | Başarı oranı >= %99.9 (30 gün) |
| SLA | Müşteriyle yapılan yasal taahhüt | İş geliştirme + Hukuk | %99.9 uptime, ihlalde %10 kredi |
💡 Kritik Kural: SLA her zaman SLO'dan daha gevşek olmalıdır. SLO %99.95 ise SLA %99.9 olarak belirleyin. Bu fark, SLA ihlali olmadan önce müdahale etmeniz için bir tampon bölge oluşturur. SLO'yu iç hedef, SLA'yı dış taahhüt olarak düşünün.
SLI Tanımlama: Doğru Metrikleri Seçmek
SLI seçimi servisinizin türüne göre değişir. Google SRE kitabı dört temel SLI kategorisi tanımlar:
-
Availability (Erişilebilirlik) Servisin isteklere başarılı yanıt verme oranı. Formül: başarılı istek / toplam istek. Web API'ler ve web siteleri için en temel SLI.
-
Latency (Gecikme) İsteklerin yanıt süresi. Genellikle p50, p95 ve p99 percentile olarak ölçülür. Kullanıcı deneyimini doğrudan etkiler.
-
Throughput (İş Hacmi) Birim zamanda işlenen istek sayısı. Veri pipeline'ları ve batch işleme sistemleri için kritik SLI.
-
Correctness (Doğruluk) Yanıtların doğru olma oranı. Ödeme sistemleri ve veri işleme servisleri için kritik. Yanlış sonuç dönen istekler başarısız sayılır.
Servis Tipine Göre SLI Önerileri
| Servis Tipi | Birincil SLI | İkincil SLI |
|---|---|---|
| Web API | Availability (non-5xx / total) | Latency p99 < 500ms |
| E-ticaret Sitesi | Availability + Latency p95 | Checkout success rate |
| Veri Pipeline | Freshness (veri güncelliği) | Correctness + Throughput |
| Depolama Servisi | Durability (veri kaybı oranı) | Availability + Latency |
Error Budget: Güvenilirlik ve Hız Arasındaki Denge
Error budget, SLO'nun izin verdiği hata miktarıdır. %99.9 SLO hedefi olan bir servis, 30 günde toplam 43 dakika 50 saniye "hata yapma hakkına" sahiptir. Bu bütçe tükendiğinde yeni özellik deploy'ları durdurulur ve güvenilirlik iyileştirmelerine odaklanılır.
# SLO: %99.9 availability (30 gunluk pencere)
Error Budget = 1 - SLO = 1 - 0.999 = 0.001 (%0.1)
# Zaman bazli hesaplama
30 gun = 30 x 24 x 60 = 43,200 dakika
Error Budget = 43,200 x 0.001 = 43.2 dakika
# Istek bazli hesaplama (gunluk 1M istek)
30 gunluk toplam = 30,000,000 istek
Error Budget = 30,000,000 x 0.001 = 30,000 basarisiz istek
# Kalan budget
Harcanan = gercek_hata_sayisi / toplam_istek
Kalan Budget = Error Budget - Harcanan
⚠️ Error Budget Politikası: Error budget %75'in altına düştüğünde riskli deploy'ları durdurun. %50'nin altında yalnızca güvenilirlik iyileştirmeleri deploy edin. %0'a ulaştığında tüm feature deploy'larını durdurun ve postmortem yapın. Bu politikayı ekiple önceden yazılı olarak belirleyin.
Prometheus ile SLI Ölçümü
Prometheus'ta SLI'ları ölçmek için uygulamanızın HTTP metriklerini kullanabilirsiniz. Aşağıdaki PromQL sorguları temel SLI hesaplamalarını gösterir.
Availability SLI
# Son 30 gundeki basarili istek orani
sum(rate(http_requests_total{code!~"5.."}[30d]))
/
sum(rate(http_requests_total[30d]))
# Error budget kalan yuzdesi
1 - (
(1 - (
sum(rate(http_requests_total{code!~"5.."}[30d]))
/
sum(rate(http_requests_total[30d]))
))
/
(1 - 0.999) # SLO hedefi: %99.9
)
Latency SLI
# p99 latency (histogram kullanarak)
histogram_quantile(0.99,
sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
)
# 500ms altinda yanit veren isteklerin orani (latency SLI)
sum(rate(http_request_duration_seconds_bucket{le="0.5"}[30d]))
/
sum(rate(http_request_duration_seconds_count[30d]))
SLO Burn Rate Alert
Geleneksel eşik tabanlı alert'ler yerine burn rate alert'ler kullanın. Burn rate, error budget'ın ne hızda tükendiğini ölçer. Bu yaklaşım yanlış alarm oranını düşürür ve gerçek sorunlara daha hızlı tepki verilmesini sağlar.
groups:
- name: slo-burn-rate
rules:
# Hizli yanma: 1 saatte %2 budget tuketimi (14.4x burn rate)
- alert: SLOBurnRateCritical
expr: |
(
sum(rate(http_requests_total{code=~"5.."}[1h]))
/
sum(rate(http_requests_total[1h]))
) > (14.4 * 0.001)
for: 2m
labels:
severity: critical
annotations:
summary: "SLO burn rate critical - budget hizla tukeniyor"
# Yavas yanma: 6 saatte %5 budget tuketimi (6x burn rate)
- alert: SLOBurnRateWarning
expr: |
(
sum(rate(http_requests_total{code=~"5.."}[6h]))
/
sum(rate(http_requests_total[6h]))
) > (6 * 0.001)
for: 15m
labels:
severity: warning
annotations:
summary: "SLO burn rate elevated - budget beklenenden hizli tukeniyor"
SLA Yönetimi: Taahhüt ve Sonuçları
SLA, müşteriyle yapılan yasal bir sözleşmedir ve ihlalinin mali sonuçları vardır. SLA belirlerken dikkat edilmesi gerekenler:
Ölçüm Penceresi
SLA'yı aylık mı yoksa yıllık mı ölçeceğinizi net tanımlayın. Aylık pencere daha sıkı kontrol sağlar.
Tazminat Yapısı
İhlal durumunda kredi yüzdesi veya ceza miktarını kademeli olarak belirleyin. Genellikle %10-%30 arası kredi uygulanır.
Kapsam Dışı Durumlar
Planlı bakım, force majeure ve müşteri kaynaklı sorunları SLA kapsamı dışında tutun. Bunları sözleşmede açıkça belirtin.
Uptime monitoring kurulumu için Alertmanager ile Kesinti Bildirimi rehberimizi, sunucu metrikleri için Prometheus + Grafana rehberimizi, distributed tracing için OpenTelemetry rehberimizi inceleyin. Google SRE Book - SLO Bölümü ve Prometheus Alerting Best Practices ek kaynak olarak faydalıdır.
Sıkça Sorulan Sorular
SLO'yu %100 olarak belirleyebilir miyim?
Hayır, %100 SLO pratik olarak imkansızdır ve önerilmez. Sıfır error budget demek, hiçbir değişiklik yapamayacağınız anlamına gelir. Her deploy, her yapılandırma değişikliği potansiyel bir hata kaynağıdır. %99.99 bile çok agresif bir hedeftir ve ciddi altyapı yatırımı gerektirir.
Error budget tükendiğinde ne yapmalıyım?
Feature deploy'larını durdurun ve güvenilirlik iyileştirmelerine odaklanın. Postmortem yaparak kök nedenleri belirleyin. Otomatik testleri güçlendirin, canary deployment uygulayın ve monitoring kapsamını genişletin. Budget yenilendiğinde (yeni ölçüm penceresi) deploy'lara devam edin.
SLO ile SLA arasındaki fark nedir?
SLO iç hedef, SLA dış taahhüttür. SLO mühendislik ekibinin belirlediği performans hedefidir ve ihlalinin doğrudan mali sonucu yoktur. SLA müşteriyle yapılan yasal sözleşmedir ve ihlalinde tazminat veya kredi ödenir. SLA her zaman SLO'dan daha gevşek olmalıdır.
Kaç tane SLI tanımlamalıyım?
Her servis için 2-4 SLI yeterlidir. Çok fazla SLI tanımlamak izleme ve karar verme sürecini karmaşıklaştırır. Kullanıcı deneyimini en çok etkileyen metriklere odaklanın. Genellikle availability + latency kombinasyonu iyi bir başlangıç noktasıdır.
Sonuç
SLI ile hizmet kalitesini ölçün, SLO ile hedef belirleyin, SLA ile müşterilerinize taahhüt verin. Error budget mekanizması ile güvenilirlik ve geliştirme hızı arasında denge kurun. Prometheus ile SLI metriklerini toplayın ve burn rate alert'ler ile SLO ihlallerini erken tespit edin.
Yüksek SLA Garantili Sunucu Altyapısı
Hosted Cloud'un %99.9 uptime garantili sunucuları ile SLA hedeflerinizi karşılayın.
Bulut Sunucu Planlarını İncele →Merve Arslan
WordPress & Hosting Uzmanı
WordPress performans optimizasyonu, hosting seçimi ve e-ticaret altyapıları üzerine rehber içerikler hazırlamaktadır.
Yorumlar yakında