본문으로 건너뛰기
Cortex vs Thanos
목차

Cortex vs Thanos 비교와 선택

1. Thanos는 Prometheus를 확장하고 Cortex는 쓰기를 모은다

Thanos는 기존 Prometheus에 장기 저장과 전역 조회를 붙이는 프로젝트입니다. Sidecar로 로컬 블록을 오브젝트 스토리지에 올리거나 Receive로 remote_write를 받고, Query가 여러 저장소의 데이터를 하나의 결과로 묶어 조회합니다.

Sidecar 경로는 Prometheus가 데이터를 소유한 채 2시간 블록만 올리고, Receive 경로는 push로 받은 샘플을 테넌트별 TSDB에 써서 올립니다. Query는 StoreAPI를 노출하는 모든 곳으로 fan-out합니다.
도식 텍스트
  • Prometheus — Sidecar 방식
  • Prometheus — remote_write 방식
  • Sidecar — 업로드·StoreAPI
  • Receive — 테넌트별 TSDB
  • 오브젝트 스토리지 — 2시간 블록
  • Query — fan-out·중복 제거
  • Store Gateway — 블록 조회
  • Compactor — 다운샘플링·보존
  • Ruler — 규칙·경보
  • 로컬 블록
  • write
  • 블록
  • 블록
  • 읽기
  • 과거
  • 조회
  • 최근 2시간
  • 컴팩션

Cortex는 remote_write를 중앙 클러스터로 모으고 테넌트별로 데이터를 구분하는 멀티테넌트 장기 저장소입니다. Thanos와 코드를 주고받으며 오브젝트 스토리지 클라이언트도 같은 thanos-io/objstore를 씁니다.

ingester가 테넌트별 TSDB(시계열 데이터베이스)에 쓰고 querier가 읽는 흐름입니다.

Prometheus가 보낸 샘플은 distributor가 검증해 ingester에 쓰고, 2시간 블록이 오브젝트 스토리지로 올라갑니다. querier는 최근 구간은 ingester에서, 과거 구간은 store-gateway에서 읽습니다.
도식 텍스트
  • Prometheus — remote_write
  • distributor — limit·HA tracker
  • ingester — 테넌트별 TSDB·WAL
  • 오브젝트 스토리지 — 2시간 블록
  • querier — frontend 경유
  • store-gateway — 링 기반 샤딩
  • ruler — 규칙·경보
  • compactor — 중복 제거·보존
  • write
  • 쿼럼
  • 블록
  • 읽기
  • 최근
  • 과거
  • 조회
  • 컴팩션

근거 표기 — ✓ 1차 출처 확인 · Ⓑ 공개 벤치마크 · Ⓥ 벤더 주장 · ≈ 추정 · ? 미확인 · Σ 종합 판단. 각 절 끝의 ‘근거와 측정 조건’에 조건과 출처를 모았습니다. 이 글에서 Ⓑ는 제3자 측정과 도입 조직의 사례를 함께 뜻합니다. 조사 기준일은 2026-11-01입니다.

근거와 측정 조건
항목값·조건출처근거
Thanos 최소 구성Sidecar 방식은 Prometheus+Sidecar, Query, Store, Compactor. KV 없음Thanos 문서✓
Cortex 모듈pkg/cortex/modules.go에 30개 남짓. 단일 바이너리 -target으로 선택Cortex 저장소✓
Cortex의 Thanos 의존테스트 제외 Go 파일 72개가 thanos-io/thanos/pkg/...를 import. Cortex 0.4.0(2019-12-02)이 “flush blocks to S3/GCS ala Thanos"로 시작Cortex master a55f319(2026-10-30), Cortex CHANGELOG✓
Thanos 안의 Cortex 코드Query Frontend 문서 첫 문단 “based on the Cortex Query Frontend”. internal/cortex/에 테스트 제외 Go 파일 59개Thanos 문서, 로컬 clone 집계✓
공동 메인테이너Ben Ye(@yeya24, AWS)가 양쪽 MAINTAINERS에 있음양쪽 MAINTAINERS.md✓
blocks storage의 기원“Cortex blocks storage는 Thanos의 shipper, bucket store, compactor 위에 만들어졌다"는 설명Grafana 블로그(2020-07-17)Ⓥ

2. 쓰기 경로에 따라 구성과 의존성이 달라진다

도입 방식은 기존 Prometheus의 쓰기를 유지할지, 중앙으로 push할지에서 달라집니다. Grafana의 2020년 글은 Thanos를 Sidecar부터 점진적으로 붙일 수 있는 구조로, Cortex를 “all-or-none"으로 평했습니다. 2022년 이후에는 Receive와 Cortex ingester가 테넌트별 독립 TSDB를 둔다는 점에서 비슷해졌습니다.

Sidecar는 쓰기 경로를 유지하고 Receive와 Cortex는 push를 받는다

모델데이터 소유도입 방식특징
Thanos SidecarPrometheus가 계속 소유기존 쓰기 경로 유지, Sidecar만 추가2시간 블록 업로드, 최근 구간은 Sidecar가 Prometheus에서 직접 노출
Thanos ReceiveReceive가 테넌트별 TSDB로 소유remote_write push문서는 air-gapped·egress only 환경에 권장
Cortexingester가 테넌트별 TSDB로 소유remote_write pushpush만 지원

컴포넌트는 역할로 대응시킬 수 있다

역할Thanos v0.42Cortex v1.21
수집(pull)Sidecar없음
수집(push)Receive(router·ingestor 역할 분리 가능)distributor → ingester
쿼리Queryquerier
쿼리 앞단Query Frontendquery-frontend, 선택적 query-scheduler
버킷 조회Store Gatewaystore-gateway
컴팩션Compactorcompactor
규칙Rulerruler
그 밖toolsalertmanager, overrides-exporter, parquet-converter, purger

외부 의존성은 링과 HA 처리에서 차이가 난다

항목ThanosCortex
오브젝트 스토리지필수필수
해시 링 KV없음
Receive hashring은 JSON 파일
memberlist, Consul, etcd 중 하나
HA 중복 제거용 KV필요 없음
조회 시점 중복 제거
HA tracker에 Consul·etcd
1.21에서 memberlist가 experimental로 추가
캐시선택
in-memory·memcached·redis·groupcache(experimental)
선택
in-memory·memcached·redis
서비스 발견--endpoint, DNS SD링

쿠버네티스에서 Receive의 hashring 설정은 ConfigMap으로 갱신합니다. 자동화는 별도 프로젝트(thanos-receive-controller)가 맡습니다.

근거와 측정 조건
항목값·조건출처근거
Sidecar·Receive 동작Sidecar는 로컬 블록 2시간 업로드와 StoreAPI 노출. Receive는 테넌트 헤더로 테넌트별 독립 TSDB를 만들고 tenant_id 외부 라벨로 업로드Thanos receive 문서✓
Receive 권장 환경“users who can only push … due to air-gapped, or egress only environments”Thanos receive 문서✓
점진 도입 vs all-or-noneThanos는 Sidecar부터, Cortex는 “all-or-none”Grafana 블로그(2020-07-17, Marco Pracucci)Ⓥ
컴포넌트 대응Thanos 서브커맨드는 sidecar·store·query·rule·compact·tools·receive이고 query-frontend는 별도 등록Thanos cmd/thanos/main.go✓
Thanos KV 없음hashring은 JSON 파일, 서비스 발견은 --endpoint·DNS SDThanos receive·query 문서✓
Cortex HA tracker KV가이드에 “Only Consul and etcd are currently supported”. 1.21 릴리스 노트에서 memberlist가 experimental로 추가Cortex ha-pair-handling 문서, v1.21.0 릴리스✓
캐시 종류Thanos groupcache는 experimentalThanos store·query-frontend 문서, Cortex 문서✓

3. 복제본과 테넌트를 다루는 방식이 다르다

같은 기능도 적용 위치와 범위가 다르다

비교 축ThanosCortex
HA·복제와 중복 제거조회 시점 중복 제거(replica label)
Receive 복제 기본 RF 1
저장 단계 vertical compaction은 숨은 experimental flag
쓰기 시점에 HA tracker가 한 replica만 받음
ingester RF 보통 3
compactor가 기본으로 1배로 합침
멀티테넌시쓰기 경로(Receive)에 집중, limit은 experimental
읽기·저장·컴팩션은 라벨 기반
모든 컴포넌트에 테넌트 개념
테넌트별 런타임 overrides, shuffle sharding, 테넌트 federation
다운샘플링5m·1h 블록 생성, 해상도별 보존없음
보존 설정해상도별 flag 3개, Compactor stream 단위테넌트별 overrides, 해상도 1개
쿼리 엔진·샤딩·캐시기본 Prometheus 엔진, Thanos 엔진 experimental
Query Frontend 분할·vertical sharding·결과 캐시
기본 Prometheus 엔진, Thanos 엔진 experimental
query-frontend 분할·vertical sharding·query priority
외부 의존성오브젝트 스토리지(필수), KV 없음오브젝트 스토리지, 링 KV, HA tracker용 Consul·etcd
라이선스·CNCFApache-2.0
Incubating(2020-08-19)
Apache-2.0
Incubating(2020-08-20)
현재 버전v0.42.5(2026-10-27)
0.y.z
v1.21.1(2026-06-05)
v1.22.0-rc.3

장단점은 필요한 기능에 따라 달라진다

제품장점단점맞는 조건
ThanosSidecar로 기존 Prometheus에 점진 도입
다운샘플링
링 KV 없음
StoreAPI 연합 조회
기본 설정에서 버킷에 복제본이 그대로 쌓임(추론)
Compactor는 stream당 싱글턴
Receive의 limit·active series 제한이 experimental·best-effort
마이너마다 breaking 변경 가능
Prometheus가 여러 클러스터에 흩어져 있고 쓰기 경로를 바꾸기 어려움
수개월 범위 대시보드 필요
별도 KV를 두고 싶지 않음
Cortex테넌트별 limit·보존·shuffle sharding
compactor가 기본으로 복제본 중복 제거
링 기반 compactor·store-gateway 샤딩
v1 안정성 보장
다운샘플링 없음
링 KV와 HA tracker용 Consul·etcd 필요
push만 지원
내부 SaaS형 멀티테넌트 플랫폼
중앙 클러스터로 push를 모음

테넌트를 구분하는 기능이 인증을 대신하지는 않습니다. Thanos 운영 문서는 “there are no authentication mechanisms in Thanos"라고 명시하고, Cortex도 인증은 앞단 프록시에 맡깁니다.

근거와 측정 조건
항목값·조건출처근거
Thanos 중복 제거--query.replica-label로 조회 시점에 합침. 알고리즘 기본 penalty, v0.38의 chain은 1:1 병합Thanos query 문서, 릴리스 노트✓
Thanos vertical compaction숨은 flag --compact.enable-vertical-compaction. 관련 flag 설명이 “Experimental”. 잘못 합친 시리즈는 “no easy way to split them back”Thanos compact 문서✓
Thanos 버킷 N배기본 설정에서 버킷 용량이 HA replica 수(또는 Receive RF)만큼 늘어난다는 문장. 문서에 직접 적힌 문장은 없고 위 두 항목을 조합한 결론보고서 조합Σ
Receive 복제--receive.replication-factor 기본 1. 쓰기 쿼럼은 RF/2+1이지만 RF=2만 1(v0.37). 분배 기본 hashmod는 “discouraged"이고 ketama 권장Thanos receive 문서, v0.37 릴리스✓
Cortex 중복 제거compactor가 복제로 N개 블록에 쓰인 샘플을 별도 flag 없이 중복 제거. HA tracker는 cluster·__replica__ 라벨로 리더를 정하고 30초(기본) 무샘플이면 교체, 다른 replica 샘플은 버림Cortex compactor·ha-pair-handling 문서✓
Thanos 테넌트THANOS-TENANT 헤더, 없으면 default-tenant. 절 제목 “Limits & gates (experimental)”, 기본 꺼짐. 413 응답은 “will cause data loss at the client”. active series 제한은 meta-monitoring(15초 조회) 기반이며 죽으면 제한 없음Thanos receive 문서✓
Thanos 읽기 테넌시--query.enforce-tenancy로 라벨 matcher 주입. “there are no authentication mechanisms in Thanos”. 운영 문서는 Sidecar와 계층형 Query 권장Thanos query·multi-tenancy 문서✓
Cortex 테넌트X-Scope-OrgID. 런타임 overrides(수집률·시리즈·쿼리·보존·shard 크기), 1.21 Overrides API. shuffle sharding은 ingester·query-frontend/scheduler·store-gateway·ruler·compactor, 기본 꺼짐. 테넌트 federationCortex 문서, v1.21.0 릴리스✓
엔진Thanos --query.promql-engine 기본 prometheus, Thanos 엔진 experimental. Cortex -querier.thanos-engine 기본 false, experimental(1.15에서 도입)Thanos query 문서, Cortex v1guarantees✓
쿼리 앞단Thanos Query Frontend 기본 24시간 분할·재시도·결과 캐시, --query-frontend.vertical-shards. Cortex는 시간 분할·vertical sharding·동적 분할·query priorityThanos·Cortex 문서, Cortex 블로그(2025)✓
Thanos 앞단 범위문서 NOTE는 range 쿼리만 분할·캐시한다고 적지만 instant 재시도 flag가 있어 현재 동작은 불명확Thanos query-frontend 문서?
라이선스·CNCF둘 다 Apache-2.0. Thanos 2019-07-14 수락·2020-08-19 Incubating, Cortex 2018-09-20 수락·2020-08-20 IncubatingCNCF 프로젝트 페이지, Cortex roadmap✓
버전Thanos v0.42.5(2026-10-27), 다음 v0.43 rc 없음. CHANGELOG에 “all 0.y.z releases can contain breaking changes”. Cortex v1.21.1(2026-06-05), v1.22.0-rc.3(2026-10-06)각 릴리스, Thanos CHANGELOG✓

4. 공개 성능 수치는 각자의 조건에서 읽어야 한다

Cortex와 Thanos를 같은 조건에서 직접 잰 공개 벤치마크는 찾지 못했습니다. 아래는 2026-11-01까지 확인한 각 프로젝트의 성능 자료입니다. 프로젝트와 개발자가 서로 다른 조건에서 잰 수치라 제품 간 순위를 매길 수 없습니다.

제품시점내용공개 수치조건
Thanosv0.29.0(2022-11-03)Query 프록시를 k-way merge로 교체CPU 약 25~80% 감소
RAM 약 30~50% 감소
릴리스 노트의 “according to our benchmarks”, 상세 조건 없음
Thanosv0.41.0(2026-02-12)Series·Query RPC를 64개 단위 배치많은 경우 snappy 기준 네트워크 처리량 50% 미만
한 배포 예에서 70% 넘게 감소
프로젝트 블로그의 그래프
Thanos promql-engineREADME, 측정 시점 미표기Prometheus 엔진 대비 마이크로벤치빨라진 쿼리: sum_by_pod -68%, histogram_quantile -65%, complex_func_query -85%
느려진 쿼리: vector_selector +30%, rate +10%, unary_negation +31%
메모리 할당은 rate +60%, topk +72%처럼 늘어난 경우도 있음
Apple M1 Pro 단일 코어, 개발자 마이크로벤치. 측정 날짜·Prometheus 버전·데이터 크기 미표기
Cortex1.22 rc(2026)distributor 쿼리 fan-out의 goroutine 스택 복사 오버헤드 제거CPU 약 8%릴리스 노트의 유일한 % 항목
Cortex1.20~1.22(2025~2026)Parquet 저장·조회수치 없음실험 기능, 설계 문서는 동기만 설명

promql-engine 수치는 “몇 배 빠르다"로 요약할 수 없고, 단순 selector와 rate는 오히려 느려졌습니다.

Grafana의 2019년 PromCon 리캡은 당시 Cortex가 NoSQL 인덱스 덕분에 쿼리 성능과 확장성에서 앞서지만 총소유비용이 더 든다고 봤습니다. chunks storage 시절의 평가라 현재 아키텍처에 그대로 적용하기 어렵습니다. Cortex의 2022년 이후 릴리스 노트와 블로그에서는 정량 수치를 거의 찾지 못했습니다. 직접 비교에 쓸 도구로는 두 제품을 모두 지원하는 VictoriaMetrics의 prometheus-benchmark가 있습니다.

근거와 측정 조건
항목값·조건출처근거
직접 비교 없음같은 워크로드로 CPU·메모리·지연을 잰 Cortex 대 Thanos 공개 결과를 찾지 못함보고서 검색 결과?
2019 정성 비교PromCon 리캡. Cortex가 쿼리 성능·확장성에서 앞서지만 TCO가 더 듦. chunks storage 시절Grafana 블로그(2019-11-21)Ⓥ
2026 비교 블로그oodle.ai, devopsboys 등. 측정 방법 미공개해당 블로그?
prometheus-benchmarkVictoriaMetrics 측 도구가 Cortex·Thanos를 대상으로 지원VictoriaMetrics 저장소✓
Thanos v0.29.0“~25-80% less CPU usage, ~30-50% less RAM usage according to our benchmarks” (#5296)Thanos CHANGELOG✓
Thanos v0.41.0“fewer than 50% network throughput compared to previously when using snappy”Thanos 프로젝트 블로그(2026-02-19)✓
promql-engine 마이크로벤치Apple M1 Pro 단일 코어. 날짜·버전·데이터 크기 README에 없음promql-engine READMEⓋ
Cortex 개선 수치1.22 rc의 “~8% CPU”. 블로그 7편(2025-04~2026-07) 중 성능 글 두 편에는 측정값 없음Cortex CHANGELOG, Cortex 블로그✓
Cortex Parquet 성능전후 수치 없음Cortex parquet-mode 문서?

5. Thanos는 해상도별로, Cortex는 테넌트별로 보존을 나눈다

항목ThanosCortex
다운샘플링raw → 5m(40시간 이후) → 1h(10일 이후), native histogram도 지원(v0.38)없음
보존 flag--retention.resolution-raw·-5m·-1hlimits의 compactor_blocks_retention_period
보존 단위해상도별, 전역(Compactor stream 단위)테넌트별, 해상도 1개
기본값0d = 영구 보관테넌트 overrides로 지정
테넌트별 다르게--selector.relabel-config로 나눈 Compactor를 따로 운영overrides로 바로 지정
적용 시점컴팩션·다운샘플링 루프 직후, 루프가 실패하면 삭제되지 않음compactor
서로의 블록다운샘플 블록은 vertical compaction 대상에서 제외(v0.36)Thanos 다운샘플 블록은 thanosconvert가 건너뛰고 올리면 조회 불가

해상도별 보존의 설정 예와 다운샘플링 원리는 Prometheus·Thanos 연동과 장기 보관에서 다룹니다.

근거와 측정 조건
항목값·조건출처근거
Thanos 다운샘플링Compactor가 raw→5m(40시간 이후), 5m→1h(10일 이후) 생성. native histogram 다운샘플링 v0.38.0(#8110)Thanos 문서, v0.38.0 릴리스✓
Thanos 보존해상도별 flag 3개, 기본 0d. 적용은 컴팩션 루프가 성공해야 일어남Thanos Compactor 문서✓
Thanos 테넌트별 보존 없음Compactor는 테넌트 개념이 없고 --selector.relabel-config로 stream을 나눠 맡김Thanos compact 문서✓
Cortex 보존limits의 compactor_blocks_retention_period, 테넌트 overrides 대상Cortex 설정 파일 레퍼런스✓
Cortex 다운샘플링roadmap에 항목만 있음. 이슈 #4322(2021-06 개설) open. “If downsampled blocks are uploaded to the Cortex bucket, they cannot be queried”Cortex roadmap, 마이그레이션 문서✓
v0.36 제외다운샘플 블록이 vertical compaction 대상에서 빠짐(no-compact-mark.json panic 수정)Thanos v0.36.0 릴리스✓

6. 운영 부담과 프로젝트 활동을 함께 본다

항목ThanosCortex
최소 구성Sidecar 방식: Prometheus+Sidecar, Query, Store, Compactor
Receive 방식: Receive, Query, Store, Compactor + hashring 파일 관리
distributor, ingester, querier, store-gateway, compactor + 링 KV
실무에서는 query-frontend·캐시·ruler 추가
업그레이드0.y.z라 마이너마다 breaking 가능
v0.42에서 Receive·Store flag 제거, Query Frontend 로그 필드 변경
v1 안정성 보장, experimental이 아닌 설정은 하위 호환
릴리스 간격문서 목표 6주, 최근 마이너 간격 약 12·17·15·21주명시 주기 없음, 1.19→1.20 약 37주, 1.20→1.21 약 24주
최근 52주 병합 PR245453(dependabot 18 포함)
최근 52주 커밋641(머지 커밋 242 포함)462(머지 커밋 6)
최근 52주 고유 작성자8043
메인테이너9명(Google·Dash0·Vinted·Red Hat 3·AWS·Shopify·Cloudflare)6명(AWS 3·Apple 2·KakaoEnterprise 1)
공개 도입 목록88곳23곳
Parquet별도 저장소 thanos-parquet-gateway, beta본 저장소의 parquet-converter와 store-gateway parquet 모드, experimental

활동량은 커밋 수 하나로 판단하기 어렵습니다. Thanos는 merge commit, Cortex는 squash 방식을 쓰므로 병합 PR과 고유 작성자 수를 함께 봐야 합니다. Cortex의 활동 감소를 논의한 2022년 CNCF TOC 이슈 #899는 Mimir 포크 직후의 상황을 다뤘으며, 최근 집계에서는 연 450건 안팎의 PR이 병합됐습니다.

Medallia(Thanos, 2022)는 active series 9억~11억 규모에서 Sidecar와 Receive를 섞어 쓰고, Aiven(Thanos, 2023)은 M3DB에서 옮기며 Cortex를 검토 대상에서 뺐습니다. AWS(Cortex, 2020)는 Thanos를 검토한 뒤 멀티테넌트 환경의 장기 확장성을 이유로 Cortex를 골랐습니다.

근거와 측정 조건
항목값·조건출처근거
활동량 집계2025-11-01~2026-10-31, committer 날짜 기준. 봇(login의 [bot], type Bot) 제외GitHub API(commits, search/issues)✓
커밋·PR·작성자Thanos 641·245·80, Cortex 462·453·43같은 집계✓
메인테이너·도입 목록Thanos 9명·adopters.yml 88곳, Cortex 6명·ADOPTERS.md 23곳양쪽 MAINTAINERS.md, adopters 목록✓
릴리스 주기Thanos 문서 “one release per 6 weeks”, 실제 마이너 간격 약 12·17·15·21주Thanos release-process 문서, 릴리스 노트✓
Thanos breaking 변경v0.37 Store gRPC Info 함수 제거, v0.38 --store.sd-file 폐기, v0.41 Receive shuffle sharding 배치 변경, v0.42 flag 제거·로그 필드명 변경Thanos 릴리스 노트✓
Cortex 안정성v1-guarantees가 실험 기능이 아닌 설정의 하위 호환을 보장Cortex 문서✓
CNCF TOC #899“Health of cortex project”(2022-08), 2024-01 프로젝트 쪽 이슈 #5728로 이어짐cncf/toc 이슈✓
Medalliaactive series 9억~11억, 초당 1,300만~1,700만 샘플, 보존 366일, Query 66·Sidecar 286·Receive 133·Store 88·Compactor 11. Cortex를 비교한 뒤 고른 글은 아님Thanos 블로그(2022-09-08)Ⓑ
AivenM3DB에서 이전, Cortex는 “Mimir가 개선된 포크라 쓰는 회사가 적다"는 이유로 제외. 글 안의 M3 비용 수치가 서로 맞지 않아 인용하지 않음Thanos 블로그(2023-06-08)Ⓑ
AWS“the most appropriate choice for long-term scalability in a multi-tenant environment”AWS 오픈소스 블로그(2020-12)Ⓥ
ParquetCortex 1.22 rc에 sharded parquet 변환·조회(#7610). Thanos Store 문서는 “Parquet support (beta)”, 별도 저장소는 GitHub 릴리스 없음Cortex·Thanos 문서, GitHub API✓
이전 사례Thanos와 Cortex 사이를 옮긴 조직의 공개 글보고서 검색 결과?

7. 쓰기 경로와 필요한 기능에 맞춰 고른다

두 제품 모두 Apache-2.0이고 CNCF Incubating이라 라이선스와 거버넌스로는 선택이 정해지지 않습니다. Aiven과 AWS는 각자 조건에 따라 서로 다른 제품을 골랐습니다. 아래 표는 앞 절의 사실을 종합한 판단입니다.

조건더 맞는 쪽이유
Prometheus가 여러 클러스터·지역에 흩어져 있고 쓰기 경로를 바꾸기 어려움ThanosSidecar만 붙여 장기 저장과 전역 조회를 얻음
수개월~수년 범위 대시보드를 싸게 그려야 함Thanos다운샘플링은 Thanos에만 있음
링 KV 같은 별도 상태 저장소를 두기 싫음ThanosSidecar 방식은 KV가 필요 없음
테넌트별 수집·쿼리 limit, 보존, shuffle sharding을 기본 기능으로 써야 함Cortex모든 컴포넌트에 테넌트 개념이 있음
중앙 클러스터로 push를 모으고 복제본 중복을 저장 단계에서 기본으로 제거하고 싶음Cortexcompactor가 기본으로 합침
다운샘플링이 반드시 필요함ThanosCortex는 답이 되지 못함
근거와 측정 조건
항목값·조건출처근거
조건별 판단위 표는 3~6절의 사실을 조합한 판단이며 같은 조건 비교 측정에 기대지 않음이 글의 종합Σ
Thanos 권장 시나리오운영 문서가 멀티테넌시에 Sidecar와 계층형 Query를 권장Thanos multi-tenancy 문서✓
분산 실행--query.mode=distributed(v0.35, experimental)로 지역 간 데이터를 옮기지 않고 조회를 연합. 직접 붙은 Store Gateway·Ruler는 분산 실행에서 빠짐Thanos query 문서✓

8. 확인하지 못한 것

  • Cortex와 Thanos를 같은 조건에서 직접 비교한 측정(시기 무관)
  • promql-engine README 벤치마크의 측정 날짜와 조건(데이터 크기, Prometheus 버전)
  • Thanos Query Frontend가 지금도 range 쿼리만 분할·캐시하는지
  • Cortex Parquet 모드와 Thanos parquet-gateway의 성능 수치
  • Thanos와 Cortex 사이를 실제로 옮긴 조직의 사례

9. 참고 자료

마지막 수정 일자