SLI là gì? Cách hiểu về Service Level Indicator

SLI (Service Level Indicator) là chỉ số dùng để đo service level theo góc nhìn user, thường là một metric được tính từ telemetry trong production.

Trong DevOps và SRE, SLI là nền tảng để bạn đặt SLO, theo dõi error budget, và làm rõ user impact khi có incident.

Ví dụ: Bạn chọn SLI cho một API quan trọng là request success rate theo status code.
Trong 5 phút có 100,000 request, trong đó 99,900 request là success và 100 request là failure, thì SLI success rate là 99.9% trong window đó.

SLI phản ánh chất lượng service bằng một cách có thể đo và có thể kiểm chứng, thay vì dựa trên cảm giác.

SLI cho biết điều gì?

SLI giúp trả lời nhanh các câu hỏi cơ bản:

  • User có đang nhận được trải nghiệm đúng mức service level mà bạn kỳ vọng không?
  • User impact đang xảy ra ở mức nào và kéo dài bao lâu?
  • Khi có incident, service level đang giảm do Latency, Error rate hay availability?

Tuy nhiên, cần lưu ý: SLI chỉ có giá trị khi nó đo đúng thứ user quan tâm. Nếu chọn SLI không đúng user journey hoặc đo sai measurement point, SLI có thể đẹp nhưng user vẫn complain.

SLI khác SLO và SLA ra sao?

SLI thường được hiểu cùng các khái niệm sau:

  • SLI: chỉ số đo service level, ví dụ availability, Latency, Error rate, correctness, freshness.
  • SLO: mục tiêu cho SLI trong một window, dùng để vận hành và ra quyết định nội bộ.
  • SLA: cam kết với khách hàng, có điều khoản và hậu quả nếu vi phạm.

Gợi ý thực tế: bạn nên bắt đầu từ SLI, sau đó đặt SLO dựa trên baseline, rồi mới tính tới SLA khi đã đo ổn và vận hành ổn.

Cách chọn SLI

Một số nguyên tắc cơ bản khi chọn SLI:

  • Bắt đầu từ user journey quan trọng, chọn service hoặc endpoint có user impact rõ.
  • Chọn SLI dễ đo và ít tranh cãi, ví dụ request success rate hoặc Latency theo percentile.
  • Chọn measurement point phản ánh trải nghiệm user, ví dụ API Gateway hoặc edge layer nếu phù hợp.
  • Định nghĩa scope rõ, ví dụ theo region, theo plan, theo endpoint hoặc theo tenant nếu cần.

Ví dụ:

  • Với API, SLI thường là success rate theo status code và p95 Latency theo endpoint.
  • Với streaming hoặc data pipeline, SLI có thể là freshness hoặc lag, tuỳ user expectation.

Các loại SLI phổ biến

Trong hệ thống web, các SLI hay gặp gồm:

  • Availability: tỉ lệ thời gian service phục vụ được hoặc tỉ lệ request thành công.
  • Latency: thời gian đáp ứng, thường đo theo p90, p95 hoặc p99.
  • Error rate: tỉ lệ request lỗi, thường tập trung vào 5xx hoặc lỗi được xem là server side.
  • Correctness: kết quả đúng, thường đo bằng validation hoặc sampling.
  • Freshness: dữ liệu mới đến mức nào, thường dùng cho data system.

Nên ưu tiên loại SLI mà bạn có thể đo ổn và gắn rõ với user impact.

Cách hiểu SLI trong production

Một số nguyên tắc cơ bản khi đọc SLI:

  • Nên đọc SLI theo service và theo endpoint, không chỉ nhìn tổng.
  • Nên breakdown theo status code, region hoặc dependency nếu cần khoanh vùng.
  • Đọc SLI cùng RPS, Latency, Error rate và saturation signals để hiểu vì sao service level thay đổi.

Ví dụ:

  • SLI success rate giảm nhưng RPS tăng mạnh: có thể overload hoặc dependency chậm gây 5xx.
  • SLI Latency xấu đi nhưng Error rate ổn: có thể queueing hoặc DB chậm, cần trace để xác định bottleneck.
  • SLI tổng ổn nhưng một endpoint xấu: có thể do gộp scope quá rộng, cần breakdown theo endpoint.

SLI thường được đo ở đâu?

Tuỳ loại SLI, measurement point có thể khác nhau:

  • Load balancer / Ingress / API Gateway: phù hợp để đo user facing signals.
  • Service level telemetry: phù hợp để hiểu behavior của service và phân tách ownership.
  • Client side telemetry: phản ánh trải nghiệm thực tế nhưng cần quản lý sampling và dữ liệu.

Trong vận hành thực tế, nên chọn 1 đến 2 measurement point chính, ghi rõ định nghĩa để tránh tranh cãi.

Những yếu tố có thể làm SLI đo sai

Một số nguyên nhân phổ biến khiến SLI bị sai hoặc khó dùng:

  • Gộp nhiều endpoint rất khác nhau vào một SLI chung, làm bạn không thấy endpoint nào đang gây user impact.
  • Không định nghĩa rõ request success và failure, đặc biệt với 4xx và timeout.
  • Đo ở service level nhưng user impact xảy ra ở edge layer do network hoặc CDN behavior.
  • Sampling không phù hợp, làm percentile hoặc error rate bị lệch khi traffic thấp.
  • Metrics cardinality quá cao hoặc thiếu tag quan trọng, làm bạn không breakdown được khi cần.

Vì vậy, SLI cần được định nghĩa rõ, đo nhất quán, và review định kỳ.

SLI được dùng để làm gì trong DevOps?

Ở mức cơ bản, SLI thường được dùng cho:

  • Làm nền để đặt SLO và theo dõi error budget.
  • Định nghĩa user impact trong incident response và postmortem.
  • Thiết kế alerting theo burn rate để giảm paging không cần thiết.
  • Ưu tiên reliability work dựa trên nơi SLI xấu và nơi user impact lớn.

Kết luận

SLI là chỉ số đo service level theo góc nhìn user, là nền tảng để đặt SLO và vận hành theo error budget.
Để SLI có giá trị trong production, bạn cần chọn đúng user journey, đo đúng measurement point, định nghĩa rõ success và failure, và breakdown theo service hoặc endpoint để khoanh vùng nhanh khi có incident.

Thông tin nổi bật

Sự kiện phát trực tiếp​

Event Thumbnail

Báo cáo quan trọng

Article Thumbnail
Article Thumbnail
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Tiêu điểm chuyên gia