こんにちはサイオステクノロジーの前田です。
Prometheusを導入しようとしても多数展開用のシングルノード等の小さい環境の場合や、複数クラスターが存在する大規模な環境の場合ではPrometheusだとリソース問題やデータの保存の問題で希望のメトリクスが保管できないケースが有ります。VictoriaMetricsはPrometheusのいくつかの課題に対応することができます。本記事ではVictoria MetricsとPrometheusを比較していきます。
Kubernetesのメトリクス収集OSS2大ソリューション
Prometheusとは
PrometheusはKubernetesのメトリクス監視における業界標準です。いろいろなソリューションの中にメトリクス収集のソフトウェアとして内蔵されています。
また、コンテナアプリケーションではPrmetheusで検知できるようにアラートルールが設定されたものが多くあります。
https://prometheus.io/
VictoriaMetricsとは
VictoriaMetricsは、大規模環境でのメトリクス収集や長期間のデータ保持に最適化されたメトリクスソリューションです。vmagentを利用することでPrometheusと同等の収集能力を提供しつつ、ストレージ効率とリソース消費の面で優れたパフォーマンスを発揮します。
エンタープライズ版も存在します。
構成図

またメトリクスのpushとpullに対応しています。
参照画像:https://docs.victoriametrics.com/victoriametrics/
PrometheusとVictoriaMetricsの比較
機能や構成比較
機能や構成要素を比較します。
|
比較項目 |
Prometheus |
VictoriaMetrics |
|---|---|---|
|
概要 |
CNCF標準、Pull型メトリクス監視 |
高性能・省リソースなメトリクスソリューション |
|
アーキテクチャ |
Pull型が基本 |
Pull/Push両対応、疎結合設計 |
|
ストレージ |
ローカルストレージ |
独自開発の高性能ストレージ |
|
データ長期保存 |
外部拡張(Thanos等)が必要 |
標準機能で対応可能 |
|
リソース消費 |
大規模環境で負荷が増加しやすい |
メモリ・ディスク効率が非常に高い |
|
ユースケース |
シングルクラスター運用や小規模〜中規模の環境 |
大規模環境、マルチクラスター管理、長期保存が必須の環境 |
|
互換性 |
– |
Prometheus APIとほぼ完全互換 |
各コンポーネントの比較
ソリューションを導入したときのリソース名やコンポネント名を比較します。
|
比較項目 |
Prometheus系 |
VictoriaMetrics系 |
備考 |
|---|---|---|---|
|
データサーバー |
Prometheus |
VictoriaMetrics (Single/Cluster) |
|
|
スクレイピング |
ServiceMonitor |
VMServiceScrape VMPodScrape |
|
|
収集エージェント |
Prometheus (Agentモード可) |
vmagent |
PrometheusもAgentモードで収集特化が可能 |
|
アラート定義 |
PrometheusRule |
VMRule |
PrometheusRuleもvmalertで利用可能(互換性あり) |
|
アラートエンジン |
Alertmanager |
vmalert ( VMAlertmanager) |
|
|
導入スタック |
Kube-Prometheus-Stack |
VictoriaMetrics K8s Stack |
おわりに
Prometheusと同様の使い方ができ運用面でいろいろ利点があるVictoriaMetricsを利用したいケースは今後増えてくるでしょう。Prometheus以外のメトリクス収集ソリューションを利用したいときには、VictoriaMetrics導入を検討してみてください。


