회사 솔루션에서 각종 지표 및 헬스체크 용도로 프로메테우스를 사용하고 있는데, 단일 구성으로 되어 있어 문제점들이 존재하긴 했다.
이러한 문제점들을 해결하기 위해 Apahce Thanos를 도입하기로 했다(주관적인 생각).
Thanos Sidecar는 각 Prometheus 인스턴스 있는곳에 같이 배포하며,
Prometheus와 통합되어 메트릭 데이터를 외부 객체 저장소로 업로드한다.
또한 Prometheus 데이터를 Thanos의 다른 컴포넌트가 접근할 수 있도록 gRPC API를 제공.
Thanos Store Gateway는 객체 저장소(S3, GCS 등)에 저장된 과거 메트릭 데이터를 조회할 수 있도록 해준다. 이 컴포넌트는 장기 저장된 데이터에 대한 쿼리를 처리하며, Thanos Query와 통합되어 Prometheus 데이터와 통합된 뷰를 제공.
Thanos Querier는 Thanos의 핵심 컴포넌트로, 글로벌 쿼리 인터페이스를 제공한다.
여러 Prometheus 인스턴스와 오브젝트 스토리지에 저장된 데이터를 하나의 인터페이스에서 통합 조회할 수 있도록 지원.
Thanos Compactor는 데이터의 압축과 다운샘플링을 담당하는 컴포넌트.
데이터의 크기를 줄여 저장소 사용량을 줄이고, 오래된 데이터를 다운샘플링하여 쿼리 성능을 최적화.
Thanos는 Amazon S3, Google Cloud Storage 등과 같은 오브젝트 스토리지에 데이터를 무기한 저장할 수 있음. Prometheus의 기본 저장소가 시간 제한이 있는 반면, Thanos는 데이터를 더 오래 보관할 수 있어 장기 분석이 가능.
Thanos는 여러 Prometheus 인스턴스의 데이터를 한 번에 조회할 수 있는 글로벌 쿼리 뷰를 제공.
Thanos는 여러 Prometheus 인스턴스를 병렬로 실행하여 고가용성(HA)를 제공.
만약 하나의 인스턴스가 다운되더라도 다른 인스턴스가 계속 데이터를 제공하여 데이터 손실 없이 모니터링을 이어갈 수 있음.
Thanos는 오브젝트 스토리지를 사용하여 데이터를 저장함으로써, 메트릭스 데이터를 무제한으로 저장 가능.
Thanos는 오래된 데이터를 다운샘플링하여 과거 데이터를 효율적으로 조회할 수 있게 함.
이를 통해 쿼리 속도를 개선하고, 저장소의 부담을 줄일 수 있다.