Cortex vs Thanos: どちらの長期 Prometheus?
Cortex は水平スケーラブルでマルチテナントな Prometheus-as-a-service バックエンドです。Thanos は既存の Prometheus サーバーをグローバルクエリと object store での保持で拡張します。
Cortex はインジェストをクラスタ化されたマルチテナントサービスに集約し、メトリクスを object storage に保存するため、メトリクスをマネージドプラットフォームとして提供するのに理想的です。Thanos は既存の Prometheus インスタンスの横に sidecar とコンポーネントを追加し、最小限の中断でグローバルなクエリビューと長期保持を提供します。Cortex は大規模なマルチテナントプラットフォームで勝り、Thanos は既存の Prometheus 導入の拡張で勝ります。
| Cortex | Thanos | |
|---|---|---|
| アプローチ | 集約サービス | sidecar による拡張 |
| マルチテナンシー | 一級 | 可能、あまり中心的でない |
| 導入 | インジェストを置き換え | 既存の Prometheus を維持 |
| ストレージ | object store | object store |
| 最適な用途 | メトリクスプラットフォーム | Prometheus の拡張 |
ユースケースとアーキテクチャ
Cortex は、強力な分離を備えた集約されたマルチテナントのメトリクスプラットフォームを構築する組織に適しています。Thanos は、すでに Prometheus を運用しており、インジェストを再設計せずにグローバルクエリと安価な長期ストレージが欲しいチームに適しています。
運用と CI への適合
どちらも複数のコンポーネントと object storage を持つ分散システムで、Cortex はより集約的、Thanos はより漸進的です。それらのコンポーネントは CI で build と統合テストが行われ、より高速なマネージドランナーが build とマルチコンポーネントのテストを短縮します。
結論
集約されたマルチテナントのメトリクスプラットフォームを構築するなら Cortex (またはその後継の Mimir)。既存の Prometheus をグローバルクエリと保持で拡張するなら Thanos。現在の Prometheus を置き換えるか拡張するかで選びましょう。