성능 막대

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

GitLab UI 페이지의 성능 통계를 볼 수 있도록 성능 막대를 표시할 수 있습니다. 예시:

성능 막대

사용 가능한 정보

좌측에서 우측으로, 성능 막대는 다음을 표시합니다:

  • 현재 호스트: 페이지를 제공하는 현재 호스트입니다.
  • 데이터베이스 쿼리: 걸린 시간(밀리초) 및 전체 데이터베이스 쿼리 수를 00ms / 00 (00 cached) pg 형식으로 표시합니다. 자세한 내용을 표시하려면 대화 상자를 선택하십시오. 각 쿼리에 대해 다음을 볼 수 있습니다:
    • 트랜잭션 내: 쿼리가 트랜잭션 컨텍스트에서 실행되었는지 여부를 표시합니다.
    • : 데이터베이스 로드 밸런싱이 활성화된 경우 표시됩니다. 쿼리에 사용된 서버 역할을 나타냅니다. “Primary”는 쿼리가 읽기/쓰기 기본 서버로 전송되었음을 의미하며, “Replica”는 읽기 전용 레플리카로 전송되었음을 의미합니다.
    • 구성 이름: 이는 다른 GitLab 기능을 위해 구성된 여러 데이터베이스를 구별하기 위해 사용됩니다. 표시된 이름은 GitLab에서 데이터베이스 연결을 구성하는 데 사용된 동일한 이름입니다.
  • Gitaly 호출: 걸린 시간(밀리초) 및 Gitaly 호출 총 수를 표시합니다. 자세한 내용을 표시하려면 모달 창을 선택하십시오.
  • Redis 호출: 걸린 시간(밀리초) 및 Redis 호출 총 수를 표시합니다. 자세한 내용을 표시하려면 모달 창을 선택하십시오.
  • Elasticsearch 호출: 걸린 시간(밀리초) 및 Elasticsearch 호출 총 수를 표시합니다. 자세한 내용을 표시하려면 모달 창을 선택하십시오.
  • 외부 HTTP 호출: 다른 시스템으로의 외부 호출 걸린 시간(밀리초) 및 총 수를 표시합니다. 자세한 내용을 표시하려면 모달 창을 선택하십시오.
  • 페이지의 로드 타이밍: 브라우저가 로드 타이밍을 지원하는 경우 슬래시로 구분된 여러 값(밀리초 단위)을 표시합니다. 자세한 내용을 표시하려면 모달 창을 선택하십시오. 값들은 왼쪽에서 오른쪽으로:
    • 백엔드: 기본 페이지 로드에 필요한 시간.
    • 첫 콘텐츠 페인트: 사용자에게 무언가가 보이기까지의 시간. 브라우저가 이 기능을 지원하지 않으면 NaN을 표시합니다.
    • DomContentLoaded 이벤트.
    • 페이지 로드한 총 요청 수.
  • 메모리: 선택한 요청 중에 사용된 메모리 양 및 할당된 객체 수를 표시합니다. 자세한 내용을 표시하려면 선택하십시오.
  • 추적: Jaeger가 통합된 경우, 추적은 현재 요청의 correlation_id를 포함한 Jaeger 추적 페이지로 이동하는 링크입니다.
  • +: 요청 세부 정보를 성능 막대에 추가하는 링크입니다. 요청은 현재 사용자로 인증된 상태의 전체 URL로 추가하거나, 그 값의 X-Request-Id 헤더로 추가할 수 있습니다.
  • 다운로드: 성능 막대 보고서를 생성하는 데 사용된 원시 JSON을 다운로드하는 링크입니다.
  • 메모리 보고서: 현재 URL의 메모리 프로파일링 보고서를 생성하는 링크입니다.
  • 모드별 Flamegraph: 현재 URL의 flamegraph를 생성하는 링크로 선택한 Stackprof mode와 함께:
    • : 벽 시계의 시간 간격마다 샘플링됩니다. 간격은 10100 마이크로초로 설정됩니다.
    • CPU: CPU 활동의 간격마다 샘플링됩니다. 간격은 10100 마이크로초로 설정됩니다.
    • 객체: 간격마다 샘플링됩니다. 간격은 100 할당으로 설정됩니다.
  • 요청 선택기: 페이지가 열린 동안 발생한 모든 요청에 대한 이러한 지표를 볼 수 있도록 성능 막대 오른쪽에 표시되는 선택 상자입니다. 고유 URL당 처음 두 개의 요청만 캡처됩니다.
  • 통계(옵션): GITLAB_PERFORMANCE_BAR_STATS_URL 환경 변수가 설정된 경우, 이 URL이 막대에 표시됩니다. GitLab.com에서만 사용됩니다.

참고: 모든 지표가 모든 환경에서 사용 가능한 것은 아닙니다. 예를 들어, 메모리 보기는 특정 패치가 적용된 Ruby로 실행해야 합니다. GDK를 사용하여 GitLab을 로컬에서 실행할 때는 일반적으로 해당하지 않으며, 메모리 보기를 사용할 수 없습니다.

키보드 단축키

p + b 키보드 단축키를 눌러 성능 막대를 표시하고, 다시 눌러 숨길 수 있습니다.

관리자가 아닌 사용자가 성능 막대를 표시하려면, 이를 활성화해야 합니다.

요청 경고

미리 정의된 한도를 초과하는 요청은 경고 caution아이콘과 지표 옆에 설명을 표시합니다. 이 예에서 Gitaly 호출 시간이 임계값을 초과했습니다.

Gitaly 호출 시간이 임계값을 초과했습니다

관리자가 아닌 사용자를 위해 성능 막대 활성화

성능 막대는 기본적으로 관리자가 아닌 사용자에게 비활성화됩니다. 특정 그룹에게 활성화하려면:

  1. 관리자 액세스 권한이 있는 사용자로서 로그인합니다.
  2. 좌측 사이드바에서 가장 아래쪽에 있는 Admin을 선택합니다.
  3. 설정 > Metrics and profiling을 선택합니다.
  4. Profiling - Performance bar를 확장합니다.
  5. Allow non-administrators access to the performance bar를 선택합니다.
  6. Allow access to members of the following group 필드에 성능에 액세스할 수 있는 그룹의 전체 경로를 제공합니다.
  7. 변경 사항 저장을 선택합니다.