웹 익스포터 (전용 메트릭 서버)
Prometheus로 GitLab을 모니터링할 때, GitLab은 애플리케이션을 샘플링하여 사용, 부하 및 성능과 관련된 데이터를 수집하는 다양한 수집기를 실행합니다. 그런 다음 GitLab은 하나 이상의 Prometheus 익스포터를 실행하여 이러한 데이터를 Prometheus 스크레이퍼가 이해할 수 있는 형식으로 제공할 수 있습니다. Prometheus 익스포터는 메트릭 데이터를 Prometheus 스크레이퍼가 이해할 수 있는 형식으로 직렬화하는 HTTP 서버입니다.
참고: 본 페이지는 웹 애플리케이션 메트릭에 관한 것입니다. 백그라운드 작업 메트릭을 내보내려면 Sidekiq 메트릭 서버 구성 방법을 알아보세요.
웹 애플리케이션 메트릭을 내보내는 데 사용할 수 있는 두 가지 메커니즘을 제공합니다:
- 주요 Rails 애플리케이션을 통해. 즉, 사용하는 응용 프로그램 서버인 Puma가 자체
/-/metrics
엔드포인트를 통해 메트릭 데이터를 제공합니다. 이것이 기본값이며 GitLab Metrics에서 설명되어 있습니다. 수집된 메트릭의 양이 적은 소규모 GitLab 설치에는 기본값을 권장합니다. - 전용 메트릭 서버를 통해. 이 서버를 활성화하면 Puma가 메트릭을 제공하는 유일한 책임을 지는 추가 프로세스를 실행합니다. 이 접근 방식은 매우 큰 GitLab 설치에 대해 더 나은 장애 격리 및 성능을 제공하지만 추가적인 메모리 사용이 발생합니다. 고성능 및 가용성을 추구하는 중대형 GitLab 설치에는 이 접근 방식을 권장합니다.
전용 서버와 Rails /-/metrics
엔드포인트는 동일한 데이터를 제공하기 때문에 기능적으로 동등하며 성능 특성만 다릅니다.
전용 서버를 활성화하려면:
- Prometheus를 활성화합니다.
-
/etc/gitlab/gitlab.rb
파일을 편집하여 다음 라인을 추가(또는 찾아서 주석 처리를 취소)합니다.puma['exporter_enabled']
가true
로 설정되었는지 확인하세요:puma['exporter_enabled'] = true puma['exporter_address'] = "127.0.0.1" puma['exporter_port'] = 8083
- GitLab 번들링 Prometheus를 사용하는 경우 해당
scrape_config
가localhost:8083/metrics
를 가리키도록합니다. 스크레이퍼 대상을 구성하는 방법은 사용자 정의 스크레이핑 구성 추가 페이지를 참조하세요. 외부 Prometheus 설정의 경우 외부 프로메테우스 서버 사용를 참조하세요. - 변경 사항이 적용되도록 파일을 저장하고 GitLab을 다시 구성하세요.
이제 메트릭을 localhost:8083/metrics
에서 제공하고 스크레이핑할 수 있습니다.
HTTPS 활성화
- GitLab 15.2에서 도입되었습니다.
HTTP 대신 HTTPS를 통해 메트릭을 제공하려면 익스포터 설정에서 TLS를 활성화합니다:
-
/etc/gitlab/gitlab.rb
파일을 편집하여 다음 라인을 추가(또는 찾아서 주석 처리를 취소)합니다:puma['exporter_tls_enabled'] = true puma['exporter_tls_cert_path'] = "/path/to/certificate.pem" puma['exporter_tls_key_path'] = "/path/to/private-key.pem"
-
변경 사항이 적용되도록 파일을 저장하고 GitLab을 다시 구성하세요.
TLS가 활성화된 경우 위에서 설명한 것과 동일한 port
및 address
가 사용됩니다.
메트릭 서버는 동시에 HTTP 및 HTTPS를 제공할 수 없습니다.
문제 해결
Docker 컨테이너 공간이 부족함
Docker에서 GitLab을 실행할 때 컨테이너의 공간이 부족할 수 있습니다. 이것은 Web 익스포터와 같이 공간 소비를 증가시키는 특정 기능을 활성화한 경우 발생할 수 있습니다.
이 문제를 해결하려면 shm-size를 업데이트하세요.