Prometheusはデフォルトでローカルディスクにメトリクスを保存しますが、長期保存やHA構成を実現するためにリモートストレージが必要になります。代表的な選択肢としてThanos・Cortex・Mimirの3つがあり、業務で検討する機会があったので比較してまとめました。

比較表

ThanosCortexMimir
開発元コミュニティ (元Improbable)コミュニティ (元Weaveworks)Grafana Labs
GitHub Stars~13,800~5,750~4,400
ライセンスApache 2.0Apache 2.0AGPL-3.0
CNCFIncubatingIncubating-
データ取り込みSidecar (pull) / Receiver (push)remote_write (push)remote_write (push)
マルチテナント限定的 (Receiver経由)ネイティブ対応ネイティブ対応
ダウンサンプリングあり (ネイティブ)なしなし
オブジェクトストレージS3, GCS, Azure, Swift, COSS3, GCS, Azure, SwiftS3, GCS, Azure, Swift

Star History

Star History Chart

各プロジェクトの特徴

Thanos

コミュニティ主導でCNCF Incubatingプロジェクトになっています。最大の特徴は Sidecarパターン で、既存のPrometheusに手を加えずに横に並べる形でデプロイできます。PrometheusがローカルのTSDBブロックをフラッシュするタイミング(2時間ごと)でSidecarがオブジェクトストレージにアップロードし、Store GatewayとQueryerで過去データを参照できるようにする仕組みです。

Prometheus+SidecarStoreQuGeartieewrayGrafana

ダウンサンプリング(5分・1時間粒度)をCompactorがネイティブでサポートしているため、数年分の長期データを扱う場合でも高速にクエリできます。マルチテナントはReceiverコンポーネント経由で実現できますが、CortexやMimirと比較すると後付けの印象が強いです。

既存のPrometheusをそのまま活かせる点が最大の強みで、段階的に導入できます。スター数も3つの中で最も多く、コミュニティの安定感があります。

Cortex

Weaveworksが開発を始め、現在はCNCF Incubatingプロジェクトとして継続しています。マルチテナントとスケーラビリティを最初から設計に組み込んだマイクロサービスアーキテクチャが特徴で、Prometheusからの remote_write でデータを受け取ります。

テナントの識別は X-Scope-OrgID ヘッダーで行い、Distributor→Ingester→オブジェクトストレージという流れでデータが書き込まれます。GrafanaクラウドはもともとCortexで動いていました。

ただし、2022年3月にGrafana LabsがMimirを公開して以降、CortexへのGrafana Labsの貢献はほぼ停止しています。新規プロジェクトでマイクロサービス型を選ぶ場合は、後継にあたるMimirを選ぶほうが無難です。CortexからMimirへの移行ガイドも公式で提供されており、多くの構成で10分以内に移行できると案内されています。

Grafana Mimir

Grafana Labsが2022年にCortexをフォークして公開したプロジェクトです。Cortexから不要な機能を削ぎ落とし、設定パラメータを大幅に整理した上でいくつかの大きな改善を加えています。3つの中で最も活発に開発されており、Grafana Cloud MetricsやGrafana Enterprise Metrics (GEM)の基盤として実際に使われています。

主な改善点:

  • Split-and-merge Compactor: Cortexのコンパクターが抱えていたTSDBインデックスのサイズ制限(64GB)を回避するために、ブロックをシャードに分割して並列コンパクションし、マージする仕組みを導入
  • Mimir Query Engine (MQE): Mimir 3.0 (2025年11月) で追加されたクエリエンジン。クエリ結果をストリーミングで処理するため、メモリ使用量を最大92%削減できると発表されています
  • Kafkaベースのイングレストバッファ: Mimir 3.0で追加。書き込みパスと読み取りパスを独立してスケールできるようになりました

スター数はThanos・Cortexより少ないですが、新しいプロジェクトであることを考えると妥当な数字です。1テナントあたり10億アクティブ系列での動作実績があり、スケーラビリティは3つの中で最も高いとされています。

ライセンスがAGPL-3.0である点は注意が必要です。内部利用であれば問題になりにくいですが、Mimirを組み込んだサービスを外部に提供する場合はソースコードの開示義務が生じます。

まとめ

既存のPrometheusに手を加えずに長期保存だけ追加したい場合はThanosが最も低リスクです。マルチテナントや大規模スケールが必要な場合は、CortexよりMimirを選ぶのが現時点では賢明だと思います。ただしMimirのAGPLライセンスが組織のポリシーに合わない場合は、Apache 2.0のThanosかCortexが選択肢になります。

参考