Thanos는 다양한 방식을 통해 데이터의 효율적 저장구조를 만들도록 지원한다. 중복 데이터의 deduplication을 비롯하여, 자주 사용되는 데이터 통합쿼리 지원을 위한 통합된 데이터(aggregated data)를 미리 만들어 둘수도 있고 필요에따라 집적도(granularity)별 데이터의 저장주가 변경을 가능하도록 하는 등 다양한 기능을 제공하고 있다. 이러한 기능의 중심에 Compactor가 있다.

본 블로그에서는 Compactor모듈의 역할에 대해 알아보고 이를 활용하는 방법에 대해 실제 사례를 통해 보여주겠다.

Compactor

객체저장소(Object storage)에 저장된 블록 데이터를 대상으로 데이터를 저장하는 과정을 Compaction이라 하는데

수행되며, 일반적으로 완전한 동시성을 제공하지 않으므로 개별 버켓에 대한 singleton에 따라 배포해야 한다.

Thanos Compactor는 prometheus의 storage engine의 compaction 과정에 적용되는 Thanos의 명령어(compact)이다.

데이터에 대한 다운샘플링도 수행하는 데

주의사항

Compactor는 데이터에 대한 접근에 Singleton을 잘 지켜서 실행해야

주기에따라 자원 사용량이 다르다. 자주 수행하면 적은 메모리로 더디게 수행하면 많은 메모리사용...

실제 수집되는 데이터 양하고도 직접적으로 관계됨

—> 메모리를 통해 다양한 통합작업이 수행되기 때문에...

상시 실행시킬 필요는 없음 → 리소스 절약요건