DevOps BootCamp/모니터링

서비스 수준 목표(Service-level objective)

cloudmaster 2023. 6. 5. 10:44
어떤 조직의 SLO가 다음과 같습니다.
"GET 호출의 99%는 10ms 이내에 수행되어야 한다" 그렇다면, 이러한 SLO를 달성하려면 어떤 메트릭을 수집하고 어떻게 계산해야 할까요? (척도는 표준화된 범용 지표를 사용합니다)

 

SLO (서비스 수준 목표, Service Level Objectives)

서비스 공급자 와 고객 간의 SLA(서비스 수준 계약)의 핵심 요소.
 -> SLI에 의해 측정된 서비스 수준의 목푯 값, 또는 일정 범위의 값을 의미
SLO는 서비스 제공자의 성과를 측정하는 수단으로 합의되며, 오해에 기반한 두 당사자 간의 분쟁을 피하기 위한 방법으로 요약.

 

해당 SLO를 달성하기 위해 수집하고 계산해야 하는 메트릭은 다음과 같다.

  • GET 호출의 응답 시간
    : GET 호출의 시작부터 응답을 받을 때까지 걸리는 시간을 측정해야 합니다.
    이는 대개 시스템의 로그나 추적 기능을 사용하여 측정할 수 있습니다.
    이 메트릭은 초 단위로 측정되며, 초 단위로 표준화된 지표를 사용해야 합니다.
  • 99 백분위 수(P99)
    : GET 호출의 응답 시간 메트릭에서 99 백분위 수를 계산해야 합니다.
    이는 전체 응답 시간 중 상위 1%의 값을 의미하며, 즉 99%의 GET 호출이 해당 값보다 작은 시간에 수행되어야 한다는 것을 의미합니다.
    P99은 분 단위로 측정되며, 분 단위로 표준화된 지표를 사용해야 합니다.
  • 서비스 수행율(Throughput): GET 호출의 수행율을 측정하는 메트릭입니다. 이는 초당 완료된 GET 호출의 수로 측정합니다.

 

이러한 메트릭을 수집하고 계산하여 SLO를 평가하는 방법은 다음과 같다

  • GET 호출의 응답 시간 메트릭을 수집합니다.
  • 수집한 데이터를 P99로 정렬합니다.
  • P99 값을 기준으로 SLO를 평가합니다.
    만약 P99가 10ms 이하이면 SLO를 달성한 것으로 간주합니다.
    그렇지 않으면 SLO를 위반한 것으로 간주합니다.

 

이와 같은 방식으로 SLO를 평가할 경우, 99%의 GET 호출이 10ms 이내에 수행되어야 한다는 SLO를 충족하기 위해서는, GET 호출의 99 백분위 수(P99)가 10ms 이하로 유지되어야 합니다.