SLI مخفف Service Level Indicator و به معنی شاخص سطح خدمت است. SLI یک معیار عددی تعریف‌شده است که کیفیت واقعی سرویسی مانند API فروشگاه را از دید کاربر اندازه می‌گیرد. درصد درخواست موفق، تاخیر پاسخ و نرخ عملیات صحیح نمونه‌های کاربردی‌اند.

چرا هر متریکی SLI نیست؟

CPU Usage و مصرف رم برای مانیتورینگ مهم‌اند، اما الزاماً کیفیت تجربه کاربر را بیان نمی‌کنند. برای API پرداخت، نسبت پرداخت‌های موفق به تلاش‌های معتبر پرداخت می‌تواند SLI نزدیک‌تری به تجربه کاربر باشد. باید از قبل مشخص کنیم چه درخواست‌هایی در صورت و مخرج محاسبه قرار می‌گیرند.

محاسبه نرخ موفقیت

SLI availability = successful_requests / eligible_requests * 100
Example: 99,850 successful / 100,000 eligible = 99.85%

نمونه متریک‌های قابل استفاده برای SLI

شاخصتعریف دقیق موردنیازنکته
Availabilityنسبت درخواست‌های پاسخ‌داده‌شده با نتیجه قابل قبول۴xx کاربر را بی‌دلیل خطای سرور حساب نکنیم
Latencyدرصد درخواست‌هایی که سریع‌تر از حد مشخص تکمیل شده‌اندP95 / P99 به تنهایی نیاز به تعریف دقیق دارد
Correctnessنسبت پاسخ‌هایی که نتیجه درست دارنددر برخی سرویس‌ها پاسخ ۲۰۰ هم می‌تواند نتیجه اشتباه باشد
Freshnessسن داده تا لحظه نمایشبرای داشبوردهای داده مهم است

مثال PromQL برای اندازه‌گیری

sum(rate(http_requests_total{status=~"2..|3.."}[5m]))
/
sum(rate(http_requests_total[5m]))

این کوئری مثال ساده است و صرفاً در صورتی معتبر است که سرویس شما از متریک http_requests_total با لیبل status استفاده کند. تعریف واقعی موفقیت ممکن است متناسب با API متفاوت باشد.

تفاوت با SLO و SLA

SLI چیزی است که اندازه می‌گیریم. SLO هدف عددی برای همان اندازه‌گیری است. SLA تعهد قراردادی و پیامد نقض تعهد را مشخص می‌کند.

اصطلاحات فنی: اس‌ال‌او، اس‌ال‌ای، قابلیت مشاهده‌پذیری، پرومتئوس، ارور باجت.

منبع آموزشی: کتاب SRE گوگل درباره SLI و SLO.