상태 체크
GitLab은 서비스 상태 및 필수 서비스에 대한 reachability를 나타내는 리브니스 및 레디니스 프로브를 제공합니다. 이러한 프로브는 데이터베이스 연결, 레디스 연결 및 파일 시스템 접근 상태에 대해 보고합니다. 이러한 엔드포인트는 Kubernetes와 같은 스케줄러에 제공되어 시스템이 준비될 때까지 트래픽을 유지하거나 필요에 따라 컨테이너를 다시 시작할 수 있습니다.
IP 허용 디렉터리
모니터링 리소스에 액세스하려면 요청 클라이언트 IP를 허용 디렉터리에 포함해야 합니다. 자세한 내용은 모니터링 엔드포인트의 IP를 허용 디렉터리에 추가하는 방법을 참조하십시오.
로컬에서 엔드포인트 사용
기본 허용 디렉터리 설정으로 인해 프로브는 다음 URL을 사용하여 로컬에서 액세스할 수 있습니다.
GET http://localhost/-/health
GET http://localhost/-/readiness
GET http://localhost/-/liveness
헬스
애플리케이션 서버가 실행 중인지 확인합니다. 데이터베이스 또는 기타 서비스가 실행 중인지 확인하지는 않습니다. 이 엔드포인트는 Rails 컨트롤러를 우회하고 추가적인 미들웨어 BasicHealthCheck
로 구현되어 요청 처리 수명주기의 매우 초기에 실행됩니다.
GET /-/health
예시 요청:
curl "https://gitlab.example.com/-/health"
예시 응답:
GitLab OK
레디니스
레디니스 프로브는 GitLab 인스턴스가 Rails 컨트롤러를 통해 트래픽을 수용할 준비가 되었는지를 확인합니다. 기본적으로 이 체크는 인스턴스 체크만 유효성을 검사합니다.
all=1
매개변수를 지정하면 체크는 종속 서비스(데이터베이스, 레디스, Gitaly 등)도 유효성을 검사하고 각각에 대한 상태를 제공합니다.
GET /-/readiness
GET /-/readiness?all=1
예시 요청:
curl "https://gitlab.example.com/-/readiness"
예시 응답:
{
"master_check":[{
"status":"failed",
"message": "unexpected Master check result: false"
}],
...
}
실패 시, 이 엔드포인트는 503
HTTP 상태 코드를 반환합니다.
이 체크는 Rack Attack에서 예외로 처리됩니다.
레이브니스
애플리케이션 서버가 실행 중인지 확인합니다. 이 프로브는 Rails 컨트롤러가 멀티 스레딩으로 인해 데드락에 빠지지 않았는지를 판단하는 데 사용됩니다.
GET /-/liveness
예시 요청:
curl "https://gitlab.example.com/-/liveness"
성공 시, 이 엔드포인트는 아래와 같이 200
HTTP 상태 코드와 함께 아래와 같은 응답을 반환합니다.
{
"status": "ok"
}
실패 시, 이 엔드포인트는 503
HTTP 상태 코드를 반환합니다.
이 체크는 Rack Attack에서 예외로 처리됩니다.
Sidekiq
Sidekiq 상태 체크를 구성하는 방법을 알아보세요.