GitLab 성능 모니터링
GitLab은 자체 애플리케이션 성능 측정 시스템 “GitLab 성능 모니터링”을 제공합니다. GitLab 성능 모니터링은 커뮤니티 및 엔터프라이즈 버전에서 모두 사용할 수 있습니다.
이 소개 외에도, GitLab 성능 모니터링을 제대로 이해하고 구성하기 위해 다음 문서를 읽는 것이 좋습니다.:
GitLab 성능 모니터링 소개
GitLab 성능 모니터링을 통해 다음과 같은 다양한 통계를 측정할 수 있습니다(하지만 이에 한정되지 않음):
- 트랜잭션(웹 요청 또는 Sidekiq 작업)을 완료하는 데 걸린 시간.
- 실행된 SQL 쿼리 및 HAML 뷰 렌더링에 소요된 시간.
- (instrumented) 루비 메소드 실행 시간.
- 루비 객체 할당 및 특정 묶음된 객체.
- 프로세스의 메모리 사용량 및 열린 파일 디스크립터와 같은 시스템 통계.
- 루비 가비지 수거 통계.
메트릭 유형
두 가지 유형의 메트릭을 수집합니다:
- 트랜잭션별 메트릭.
- 특정 간격에서 수집된 샘플 메트릭.
트랜잭션 메트릭
트랜잭션 메트릭은 개별 트랜잭션과 관련된 메트릭입니다. 이는 트랜잭션 기간, 실행된 SQL 쿼리의 타이밍 및 HAML 뷰 렌더링에 소요된 시간과 같은 통계를 포함합니다. 이러한 메트릭은 모든 Rack 요청 및 처리된 Sidekiq 작업에 대해 수집됩니다.
샘플 메트릭
샘플 메트릭은 개별 트랜잭션과 관련시킬 수 없는 메트릭입니다. 루비 가비지 수거 통계 및 보유된 루비 객체와 같은 예가 있습니다. 이러한 메트릭은 정기적인 간격으로 수집됩니다. 이 간격은 사용자가 정의한 간격과 랜덤으로 생성된 오프셋으로 이루어집니다. 이 오프셋은 한 번 사용한 후에는 다시 사용할 수 없습니다.
실제 간격은 정의된 간격의 반만큼부터 정의된 간격의 반 이상까지 어디에서나 있을 수 있습니다. 예를 들어, 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