Skip to main content

VictoriaMetrics 名詞解釋

VM 生態的元件名稱多,這裡統一說明每個名詞的職責和關係。


核心元件

名詞全名 / 說明
VMSingleVictoriaMetrics 單節點版本,單一 binary,適合小規模單 Region 部署
VMClusterVictoriaMetrics 叢集版本,由 vminsert + vmstorage + vmselect 三個元件組成
vminsert寫入層,stateless,接收 remote_write,用 consistent hash 分配資料到各 vmstorage
vmstorage儲存層,stateful,把時間序列存到本地磁碟(EBS gp3)
vmselect查詢層,stateless,接收 PromQL,fan-out 到所有 vmstorage 後合併結果
vmauth認證路由層,TLS 終止 + bearer token 驗證 + 路由規則(寫入 → vminsert,讀取 → vmselect)
VMAgent輕量 scraper,只做 scrape + remote_write,不存資料,是 Prometheus 的 drop-in 替代(config 格式相同)
vmalertAlert rule 引擎,定期對 vmselect 執行 PromQL,觸發時通知 Alertmanager
VMUIVictoriaMetrics 內建 Web UI,提供 cardinality explorer 和 query playground
MetricsQLVictoriaMetrics 的查詢語言,100% 相容 PromQL,並額外支援 with(), keep_last_value() 等擴充函數

Kubernetes Operator 元件

VictoriaMetrics Operator 用 CRD 管理 VM 元件,不直接操作 pod。

CRD 名稱說明
VMCluster宣告一個 VMCluster(含 vminsert/vmstorage/vmselect 的 replica 數、資源、storage)
VMAgent宣告一個 VMAgent 實例及其 scrape 設定
VMAuth宣告 vmauth 實例,引用同 namespace 的 VMUser 建立路由規則
VMUser宣告一個 bearer token 及它能存取的路由(寫入 or 讀取)
VMRule宣告 alert rules,格式與 Prometheus PrometheusRule 相同
VMAlertmanager宣告 Alertmanager 實例

關鍵參數

參數說明
replicationFactor每筆資料寫到幾個 vmstorage 節點,設 2 代表 1 個節點掛掉資料不丟
retentionPeriod資料保留時間(例如 90d),超過後 vmstorage 自動清除
consistent hashingvminsert 決定資料寫到哪個 vmstorage 的演算法,確保同一個 metric 固定落在同幾個節點
WALWrite-Ahead Log,vminsert 的寫入緩衝,避免在 vmstorage 暫時不可用時丟資料
stream aggregationvminsert 在資料進入 vmstorage 前做聚合,用於降低高基數 metric 的 series 數量
cardinality一個 metric 的唯一 label 組合數量,過高(基數爆炸)會讓 RAM 和磁碟使用量暴增

元件關係圖

Prometheus / VMAgent

└── remote_write ──▶ vmauth(TLS + token 驗證)

vminsert × N(stateless,consistent hash sharding)

┌────────┴─────────┐
vmstorage-0 ... vmstorage-N(stateful,EBS)
└────────┬─────────┘

vmselect × N(stateless,fan-out + merge)

Grafana / vmalert

與 Prometheus 生態對照

Prometheus 元件VM 對應元件差異
Prometheus(scrape + TSDB)VMAgent(scrape only)+ VMCluster(TSDB)VM 把職責分離
Prometheus remote_writevminsertVM 的寫入入口
Prometheus TSDBvmstorageVM 用 MergeTree 引擎,RAM 效率更高
PromQLMetricsQLVM 擴充了部分函數
Prometheus built-in alertingvmalert獨立部署,支援 HA replica
PrometheusRule CRDVMRule CRD格式完全相同,可直接複製