GitLab 성능 모니터링

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab은 GitLab 8.4부터 자체 응용 프로그램 성능 메트릭 시스템인 “GitLab Performance Monitoring”을 제공합니다. GitLab Performance Monitoring은 커뮤니티 및 엔터프라이즈 버전에서 모두 사용할 수 있습니다.

이 소개 외에도 GitLab Performance Monitoring을 이해하고 적절하게 구성하기 위해 다음 문서를 읽는 것이 좋습니다:

GitLab 성능 모니터링 소개

GitLab 성능 모니터링을 통해 다양한 통계를 메트릭할 수 있습니다. 이는 다음을 포함하지만 이에 국한되지는 않습니다:

  • 거래(웹 요청 또는 Sidekiq 작업)를 완료하는 데 걸린 시간.
  • 실행된 SQL 쿼리 및 HAML 뷰 렌더링에 소요된 시간.
  • (기구화된) 루비 메서드의 실행에 소요된 시간.
  • 루비 객체 할당 및 특정 객체 유지.
  • 프로세스의 메모리 사용량 및 열린 파일 디스크립터와 같은 시스템 통계.
  • 루비 가비지 수집 통계.

메트릭 유형

두 가지 유형의 메트릭이 수집됩니다:

  1. 거래별 메트릭.
  2. 특정 간격에서 수집된 샘플 메트릭.

거래별 메트릭

거래별 메트릭은 단일 거래와 관련할 수 있는 메트릭입니다. 이에는 거래 기간, 실행된 SQL 쿼리의 타이밍, HAML 뷰 렌더링에 소요된 시간 등과 같은 통계가 포함됩니다. 이러한 메트릭은 모든 Rack 요청 및 처리된 Sidekiq 작업에 대해 수집됩니다.

샘플 메트릭

샘플 메트릭은 단일 거래와 연관시킬 수 없는 메트릭입니다. 가비지 수집 통계 및 유지된 Ruby 객체와 같은 예시가 포함됩니다. 이러한 메트릭은 정기적인 간격으로 수집됩니다. 이 간격은 두 부분으로 이루어져 있습니다:

  1. 사용자 정의 간격.
  2. 간격에 추가된 무작위로 생성된 오프셋. 동일한 오프셋은 연속으로 사용될 수 없습니다.

실제 간격은 사용자가 정의한 간격의 절반부터 그 위에 절반까지 어디에서나 될 수 있습니다. 예를 들어, 사용자가 정의한 15초의 간격의 경우 실제 간격은 7.5에서 22.5 사이 어디에나 될 수 있습니다. 간격은 표본 샘플링 실행마다 재생성되며, 프로세스의 수명 동안 한 번 생성되어 재사용되지 않습니다.

사용자가 정의한 간격은 환경 변수를 사용하여 지정할 수 있습니다. 다음 환경 변수가 인식됩니다:

  • RUBY_SAMPLER_INTERVAL_SECONDS
  • DATABASE_SAMPLER_INTERVAL_SECONDS
  • ACTION_CABLE_SAMPLER_INTERVAL_SECONDS
  • PUMA_SAMPLER_INTERVAL_SECONDS
  • THREADS_SAMPLER_INTERVAL_SECONDS
  • GLOBAL_SEARCH_SAMPLER_INTERVAL_SECONDS