GitLab 성능 모니터링

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

GitLab은 “GitLab 성능 모니터링”이라는 자체 애플리케이션 성능 측정 시스템을 제공합니다.
GitLab 성능 모니터링은 커뮤니티 및 엔터프라이즈 에디션 모두에서 사용할 수 있습니다.

이 소개 외에도 GitLab 성능 모니터링을 이해하고 적절히 구성하기 위해 다음 문서를 읽는 것이 좋습니다:

GitLab 성능 모니터링 소개

GitLab 성능 모니터링을 사용하면 다양한 통계를 측정할 수 있습니다
(단, 이에 국한되지 않음):

  • 트랜잭션을 완료하는 데 걸린 시간(웹 요청 또는 Sidekiq 작업).
  • SQL 쿼리를 실행하고 HAML 뷰를 렌더링하는 데 소요된 시간.
  • (기기화된) Ruby 메서드 실행에 소요된 시간.
  • Ruby 객체 할당 및 특히 유지된 객체.
  • 프로세스의 메모리 사용량 및 열린 파일 설명자와 같은 시스템 통계.
  • Ruby 가비지 수집 통계.

메트릭 유형

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

  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