실제 GitLab에서 가용성을 확인하는 대시보드: http://stats.pingdom.com/81vpf8jyr1h9
GitLab에서는 실제 운영중인 gitlab.com의 가용성을 Pingdom이라는 서비스를 활용해서 측정하고 월별 보고하고 있다.
Prometheus와 InfluxDB를 혼용해서 사용하다가 지금은 Prometheus만 사용하고 있습니다.
3개의 프로메테우스 클러스터를 활용해서. 각각의 영역을 나눠서 관리하고 있다.
각각의 메트릭은 PromQL을 사용해서 쿼리하여 인터페이스로 제공한다.
GitLab에서 사용하는 Prometheus rule: https://gitlab.com/gitlab-com/runbooks/-/tree/master/legacy-prometheus-rules
내가 테스트 해봤을 때는 잘 동작하는 것 같다. patroni node 수를 2개로 했더니 그 부분에 대한 에러가 동작하는 것을 볼 수 있었다.
프로메테우스 클러스터들에 대한 전체 메트릭에 대한 쿼리는 타노스 쿼리를 사용한다.
Grafana를 사용해서 대시보드를 구성합니다.
https://gitlab.com/gitlab-org/grafana-dashboards
현재 업데이트가 잘되고 있는 건 아래 링크인데 GET Hybride 방식으로 주로 업데이트가 되고있는듯하다.
GitLab은 ELK 스택을 활용해서 로깅합니다. (Elasticsearch, Kibana, Beats, and Logstash)
https://www.elastic.co/elastic-stack
GCP에서 관리형 Elasticsearch 클러스터를 사용합니다.
하지만 장기적으로는 Prometheus Grafana로 로깅 인터페이스를 전환할 예정입니다.