본문 바로가기
WIKI 기술 지식 베이스

SLO 위젯

원문 보기 위키 갱신

SLO 위젯 (SLO Widget)

출처: 문서

본문

SLO(서비스 수준 목표, service-level objectives)는 고객 성공을 위한 최상의 기회를 제공하기 위해 각 활동, 기능, 프로세스가 달성해야 하는 합의된 목표예요. SLO는 서비스의 성능 또는 상태를 나타내요. SLO 위젯은 기존 SLO의 상태, 예산, 남은 오류 예산(error budget)을 시각화해요. SLO의 모든 하위 그룹을 표시하고, 위젯의 어떤 시간 창으로든 그룹을 정렬할 수 있어요. 이 위젯을 사용해서 가장 중요한 SLO 정보로 의미 있는 대시보드를 구성할 수 있어요.

  • 위젯에서 모든 SLO 그룹 직접 보기: 그룹이 많은 SLO에 특히 유용해요. 위젯이 SLO 그룹과 관련된 핵심 정보를 제공하기 때문이에요.
  • 위젯에서 SLO 그룹의 선호 정렬 순서 설정하기: 모든 SLO 유형에 대해 위젯에서 사용 가능한 시간 창 중 하나를 기준으로 그룹을 정렬해요. 서로 다른 기간의 가장 우수/최하 성능 SLO 그룹을 빠르게 식별할 수 있어요.
  • SLO에서 데이터가 누락된 기간 쉽게 식별하기: 모든 SLO 유형에 대해 SLO 위젯은 데이터가 누락된 시간 창을 "-"로 표시해요. 전체 창에 데이터가 없는 시간 창에는 "-"가 표시돼요.

설정 (Setup)

SLO 위젯을 사용해서 대시보드에서 서비스 수준 목표 (SLO)를 시각화해요.

구성 (Configuration)

  1. 드롭다운 메뉴에서 SLO를 선택해요.
  2. 메트릭 기반 및 Time Slice SLO의 경우: 태그로 쿼리를 필터링하고 템플릿 변수를 활용해서 결과의 범위를 동적으로 지정할 수 있어요.
    • 필터 기준(filter by) 필드를 사용해서 위젯이 표시하는 SLO 상태의 범위를 지정해 템플릿 변수를 활용해요. 예를 들어 filter by $env는 대시보드에서 env 템플릿 변수에 선택한 값으로 SLO 쿼리 범위를 지정해요.
    • 태그가 원래 SLO 구성에 포함되지 않았더라도 SLO 메트릭 쿼리에 추가 범위와 컨텍스트를 더할 수 있어요. 예를 들어 원래 SLO 쿼리가 sum:trace.flask.request.hits{*} by {resource_name}.as_count()이고 위젯에서 env:prod로 필터링하면 데이터가 prod 환경의 데이터로만 범위가 지정돼요.
  3. 최대 3개의 서로 다른 시간 창을 설정해요.
  4. 표시 환경설정을 선택해요.

옵션 (Options)

시간 창 설정 (Set the time windows)

다음 중 최대 3개의 서로 다른 시간 창을 선택해요.

  • 롤링 시간 창: 7, 30, 90일
  • 달력 시간 창: 주간 누계(week to date), 지난 주, 월간 누계(month to date), 지난 달
  • 전역 시간: 임의의 기간 동안 SLO 상태와 오류 예산을 표시할 수 있어요. 모니터 기반 SLO는 최대 3개월의 과거 정보를 볼 수 있어요. Time Slice 및 메트릭 기반 SLO의 경우 지원되는 과거 뷰가 계정의 메트릭 보존 기간(기본적으로 15개월)과 일치해요.

표시 환경설정 (Display preferences)

오류 예산 표시(Show error budget) 옵션을 전환해서 남은 오류 예산을 표시하거나 숨길 수 있어요.

여러 그룹 또는 여러 모니터가 있는 모니터 기반 SLO를 시각화하는 경우 뷰 모드(View mode)를 선택하세요.

  • 그룹이 있는 SLO(그룹이 있는 메트릭 기반 또는 Time Slice SLO, 또는 그룹으로 나뉘어진 단일 모니터 기반 SLO)의 경우 세 가지 뷰 모드가 있어요.
    • 전체(Overall): 전체 SLO 상태 퍼센트와 목표를 표시.
    • 그룹(Groups): 각 그룹의 상태 퍼센트 표를 표시.
    • 모두(Both): 전체 SLO 상태 퍼센트와 목표, 그리고 각 그룹의 상태 퍼센트 표를 모두 표시.
  • 여러 모니터로 구성된 모니터 기반 SLO의 경우 세 가지 뷰 모드가 있어요.
    • 전체(Overall): 전체 SLO 상태 퍼센트와 목표를 표시.
    • 모니터(Monitors): 각 모니터의 상태 퍼센트 표를 표시.
    • 모두(Both): 전체 SLO 상태 퍼센트와 목표, 그리고 각 모니터의 상태 퍼센트 표를 모두 표시.

뷰 모드를 그룹(Groups), 모니터(Monitors), 또는 모두(Both)로 설정하면:

  • 그룹은 기본적으로 가장 작은 시간 창에서 상태 오름차순으로 정렬돼요. 위젯을 대시보드에 추가한 뒤에는 위젯 UI를 통해 구성된 어떤 시간 창이든 상태 기준으로 정렬할 수 있어요.
  • 위젯은 다음을 표시해요.
    • 메트릭 기반 및 Time Slice SLO의 경우 SLO의 모든 하위 그룹이 표시돼요.
    • 여러 모니터가 있는 모니터 기반 SLO의 경우 SLO의 모든 하위 모니터가 표시돼요.
    • 그룹이 있는 단일 모니터 기반 SLO의 경우 SLO에서 특정 그룹이 선택된 경우 최대 20개 그룹이 표시돼요. SLO에 특정 그룹이 선택되지 않았다면 SLO의 모든 하위 그룹이 표시돼요.

참고: 그룹이 있는 모니터 기반 SLO의 경우 최대 5,000개 그룹이 포함된 SLO에서는 모든 그룹을 표시할 수 있어요. 5,000개를 초과하는 그룹이 포함된 SLO는 모든 그룹을 기준으로 SLO가 계산되지만 UI에는 어떤 그룹도 표시되지 않아요.

API

이 위젯은 **대시보드 API**와 함께 사용할 수 있어요. 위젯 JSON 스키마 정의에 대해서는 다음 표를 참고하세요.

필드 타입 설명
additional_query_filters string SLO 쿼리에 적용되는 추가 필터.
description string 위젯의 설명.
global_time_target string 정의된 전역 시간 목표.
show_error_budget boolean 정의된 오류 예산.
slo_id string 표시되는 SLO의 ID.
time_windows string[] 모니터링되는 시간.
title string 위젯 제목.
title_align enum 위젯 텍스트 정렬 방식. 허용 enum 값: center,left,right
title_size string 제목 크기.
type [필수] enum SLO 위젯 유형. 허용 enum 값: slo 기본값: slo
view_mode enum SLO 표시 방식을 정의. 허용 enum 값: overall,component,both
view_type [필수] string 위젯이 표시하는 뷰 유형. 기본값: detail

예시:

{
  "additional_query_filters": "string",
  "description": "string",
  "global_time_target": "string",
  "show_error_budget": false,
  "slo_id": "string",
  "time_windows": [],
  "title": "string",
  "title_align": "string",
  "title_size": "string",
  "type": "slo",
  "view_mode": "string",
  "view_type": "detail"
}

더 알아보기 (Learn more)