本文缩写(英文全称与中文含义)
缩写 英文全称/名称 中文含义
UI User Interface 用户界面

VictoriaMetrics#

VictoriaMetrics 是一个高性能、低资源占用的 time series database,常用于替代或扩展 Prometheus 的长期存储能力。

1. Core Concepts#

Component Purpose
victoria-metrics Single-node VictoriaMetrics,适合中小规模或单机部署
vmstorage Cluster 模式中的存储节点
vminsert Cluster 模式中的写入入口
vmselect Cluster 模式中的查询入口
vmagent 采集 metrics,并通过 remote_write 写入 VictoriaMetrics
vmalert 执行 recording rules / alerting rules
vmauth 多租户、认证、反向代理入口
vmui VictoriaMetrics 内置查询和排障 UI

2. When To Use#

适合使用 VictoriaMetrics:
    Prometheus 本地存储保留时间不够
    需要更低的存储成本
    需要 remote_write 长期存储
    需要跨集群聚合查询
    Prometheus 压力过大,需要拆分 scrape 和 storage

不一定需要 VictoriaMetrics:
    metrics 规模很小
    只需要本地短期排障
    团队还没有 Prometheus / PromQL 基础

3. Install#

Docker: Single-node#

docker run -d --name victoria-metrics -p 127.0.0.1:8428:8428 -v victoria-metrics-data:/victoria-metrics-data "${VICTORIAMETRICS_IMAGE:?Set approved image digest}" -retentionPeriod=30d

verify:

curl http://localhost:8428/health
curl 'http://localhost:8428/api/v1/query?query=up'

Docker Compose#

services:
  victoria-metrics:
    image: ${VICTORIAMETRICS_IMAGE:?Set approved image digest}
    ports:
      - "127.0.0.1:8428:8428"
    volumes:
      - victoria-metrics-data:/victoria-metrics-data
    command:
      - -retentionPeriod=30d

volumes:
  victoria-metrics-data:

4. Write Data#

Prometheus remote write:

remote_write:
  - url: http://localhost:8428/api/v1/write

vmagent remote write:

scrape_configs:
  - job_name: nodejs-custom-metrics
    static_configs:
      - targets:
          - localhost:3000
vmagent -promscrape.config=prometheus.yml -remoteWrite.url=http://localhost:8428/api/v1/write

5. Query#

VictoriaMetrics supports PromQL-compatible queries and MetricsQL.

up
sum(rate(http_requests_total[5m])) by (service, route, status)
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service, route))

6. Best Practices#

单机模式与 cluster 按容量和可用性需求选择;先量化写入、查询、磁盘与恢复要求,不靠组件数量判断 HA。

Storage:
    根据业务需求设置 retentionPeriod
    给数据目录挂载持久化 volume
    单机模式先简单落地,大规模再考虑 cluster

Scrape:
    推荐用 vmagent 负责 scrape + remote_write
    不要让每个 Prometheus 都承担长期存储压力

Labels:
    控制高基数 label
    避免 user_id / request_id / trace_id / full_url
    统一 service / env / region / cluster

Query:
    Dashboard 中避免过宽时间范围 + 高基数 group by
    对常用重查询使用 recording rules

Alerting:
    VictoriaMetrics 本身负责存储和查询
    告警评估通常交给 vmalert

7. References#

完整路径见 私有入口、备份与恢复。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭