InfoGrab DocsInfoGrab Docs

GitLab 애플리케이션 서비스 수준 지표(SLI)

Ruby 코드베이스에서 서비스 수준 지표(SLI)를 직접 정의하고, Prometheus 메트릭으로 추적하며 서비스 모니터링과 알림에 활용하는 방법을 설명합니다.

Ruby 코드베이스에서 직접 서비스 수준 지표(Service Level Indicators, SLI) 를 정의할 수 있습니다. 이를 통해 작업과 그 성공 여부의 정의를 구현 코드와 가깝게 유지할 수 있으며, 기능을 개발하는 사람들이 해당 기능을 어떻게 모니터링해야 하는지 쉽게 정의할 수 있습니다. 기존 SLI # rails_request global_search_apdex global_search_error_rate global_search_indexing_apdex sidekiq_execution zoekt_tasks 새 SLI 정의하기 # SLI는 Gitlab::Metrics::Sli::Apdex 또는 Gitlab::Metrics::Sli::ErrorRate 클래스를 사용하여 정의할 수 있습니다. SLI를 정의하면 Rails 애플리케이션에서 두 개의 Prometheus 카운터 가 발행됩니다. 두 카운터는 대체로 같은 방식으로 동작하며 총 작업 수를 포함합니다. Apdex 는 성공률을 사용하여 성공 비율을 계산하고, ErrorRate 는 오류율을 사용하여 오류 비율을 계산합니다. 다음 메트릭이 정의됩니다: Gitlab::Metrics::Sli::Apdex.new('foo') 는 다음을 정의합니다: gitlab_sli_foo_apdex_total — 총 측정 횟수. gitlab_sli_foo_apdex_success_total — 성공한 측정 횟수. Gitlab::Metrics::Sli::ErrorRate.new('foo') 는 다음을 정의합니다: gitlab_sli_foo_total — 총 측정 횟수. gitlab_sli_foo_error_total — 오류 측정 횟수. 이 메트릭은 오류율이므로 오류 수를 총 횟수로 나눕니다. 예시에서 보듯이, 두 SLI는 기본 이름을 공유할 수 있습니다(이 예시에서는 foo ). 동일한 작업을 참조하는 경우에는 이 방법을 권장합니다. 성공적인 작업의 성능을 측정할 때는 Apdex 를 사용해야 합니다. 실패한 요청의 성능은 ErrorRate 로 추적해야 하므로 측정할 필요가 없습니다. 예를 들어, 요청이 지정된 지연 임계값 내에서 수행되는지 여부를 측정할 수 있습니다. 실패한 작업의 비율을 측정할 때는 ErrorRate 를 사용해야 합니다. 예를 들어, 실패한 요청이 500 이상의 HTTP 상태를 반환하는지 여부를 측정할 수 있습니다. 첫 번째 스크래핑 전에 모든 가능한 레이블 조합으로 SLI를 초기화 해 두는 것이 중요합니다. 이렇게 하면 이 카운터들을 계산에 사용할 때 혼란스러운 결과를 방지할 수 있습니다. SLI를 초기화하려면 .initialize_sli 클래스 메서드를 사용합니다. 예를 들면 다음과 같습니다: Gitlab::Metrics::Sli::Apdex.initialize_sli(:received_email, [ { feature_category: :team_planning, email_type: :create_issue }, { feature_category: :service_desk,