웹 수출기 (전용 메트릭 서버)
GitLab을 Prometheus로 모니터링하기 위해 GitLab은 사용량, 부하 및 성능과 관련된 데이터를 샘플링하는 다양한 수집기를 실행합니다. GitLab은 하나 이상의 Prometheus 내보내기를 실행하여 이 데이터를 Prometheus 스크래퍼에 사용할 수 있도록 만듭니다. Prometheus 내보내기는 메트릭 데이터를 Prometheus 스크래퍼가 이해할 수 있는 형식으로 직렬화하는 HTTP 서버입니다.
백그라운드 작업 메트릭을 내보내려면 Sidekiq 메트릭 서버 구성 방법을 알아보세요.
우리는 웹 애플리케이션 메트릭을 내보낼 수 있는 두 가지 메커니즘을 제공합니다:
- 주요 Rails 애플리케이션을 통해. 이는 우리가 사용하는 애플리케이션 서버인 Puma가 메트릭 데이터를 자체
/-/metrics
엔드포인트를 통해 제공한다는 것을 의미합니다. 이것이 기본값이며, GitLab 메트릭에서 설명됩니다. 메트릭 수집량이 적은 소규모 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 설치에 대해서는 외부 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 컨테이너가 공간이 부족함
도커에서 GitLab 실행하기를 실행할 때, 컨테이너의 공간이 부족해질 수 있습니다. 이는 Web Exporter와 같이 공간 소비를 증가시키는 특정 기능을 활성화할 경우 발생할 수 있습니다.
이 문제를 해결하려면, shm-size
를 업데이트하세요.