Kubernetes

Grafana Mimir

DevelopC 2022. 10. 28. 09:11
728x90

Grafana Mimir

Grafana Mimir는 Prometheus를 위한 스케일러블 장기 스토리지입니다. 확장성과 성능이 뛰어난 오픈 소스 시계열 데이터베이스입니다. Cortex보다 최대 40배 빠른 쿼리 성능을 자랑하며, Prometheus 100% 호환하여 사용할 수 있습니다. 장기 스토리지로 AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift 선택하여 사용할 수 있습니다.

 

Prometheus 사용 시 HA(High Availability) 구성을 할 수 없고, 시계열 데이터를 장기적으로 보관이 안되다 보니 Prometheus운영 시 많은 아쉬움이 있었는데, Grafana Mimir를 사용하게 되면 아쉬움을 해결할 수 있습니다.

구성

Prometheus의 remote write 기능을 설정하여, Grafana Mimir에 Push방식으로 데이터를 수집합니다. Prometheus를 HA(high availability) 구성하려면 etcd 및 consul 클러스터를 구성한 후 distributor에 설정해주어야 합니다. Grafana Mimir에서 Deduplication을 사용하여 Prometheus를 HA로 구성하여 운영할 수 있습니다.

distributor

  • Prometheus에서 전송된 시계열 데이터를 처리하는 역할을 합니다.
  • 데이터의 정확성을 확인하고 ingester로 데이터를 전송합니다.

ingester

  • distributor에서 전송받은 데이터를 object storage에 저장하는 역할을 합니다.
  • 전송된 데이터는 메모리/디스크에 저장하고, 주기적(기본 2시간)으로 object storage에 저장합니다.

compactor

  • object storage의 사용량을 줄이기 위해 압축하는 역할을 합니다.
  • 여러 개의 블록을 하나의 최적화된 큰 블록으로 압축합니다. 중복된 청크를 제거하여 인덱스 크기를 줄이고, 스토리지 비용을 절감하고, 쿼리 성능을 높여줍니다.

query-frontend

  • querier와 동일한 API를 제공하며, querier의 쿼리 성능을 높이기 위한 역할을 합니다. 
  • query-frontend는 queue를 사용하여 쿼리를 내부적으로 보유합니다. 
  • query-scheduler 사용시 query-frontend를 대신하여 queue 역할을 합니다.
  • 쿼리 결과(results-cache)를 재사용할 수 있게 memcached 사용하여 캐시 합니다.

query-scheduler

  • 실행할 쿼리를 queue에 유지하고, query-frontend의 성능을 높이기 위한 역할을 합니다. 
  • query-frontend에서 쿼리를 전송받아 인메모리 queue에 저장하고, queue에 저장된 쿼리를 querier가 주기적으로 가져가서 실행합니다.

querier

  • PromQL 표현식을 분석하여, store-gateway를 사용하여 object storage에서 데이터를 가져오고, ingester를 사용하여 최근 데이터를 가져옵니다.

store-gateway

  • object storage에서 데이터를 가져오는 역할을 합니다.

참고

 

Grafana Mimir documentation | Grafana Mimir documentation

Grafana Mimir documentation Grafana Mimir is an open source software project that provides a scalable long-term storage for Prometheus. Some of the core strengths of Grafana Mimir include: Easy to install and maintain: Grafana Mimir’s extensive documenta

grafana.com

 

728x90