本目录包含基于共享基础设施的三套独立监控系统,用于对比 Prometheus 和 VictoriaMetrics 的性能差异。
采用三套独立服务共享基础设施的架构:
metrics-host/ ├── shared-infrastructure/ # 共享基础设施 │ ├── docker-compose.yml │ ├── alertmanager/ │ │ └── alertmanager.yml # 统一告警管理 │ ├── grafana/ │ │ └── datasources/ # 预配置数据源 │ └── exporters/ # 各种 Exporter 配置 ├── prometheus-stack/ # Prometheus 监控栈 │ ├── docker-compose.yml │ └── prometheus/ │ ├── prometheus.yml │ └── rules/alerts.yml ├── victoriametrics-stack/ # VictoriaMetrics 监控栈 │ ├── docker-compose.yml │ ├── vmagent/ │ │ └── prometheus.yml │ └── vmalert/ │ └── alerts.yml ├── prometheus-manage.sh # Prometheus 系统管理脚本 └── victoriametrics-manage.sh # VictoriaMetrics 系统管理脚本
# 启动完整 Prometheus 系统
./prometheus-manage.sh start
# 其他命令
./prometheus-manage.sh status
./prometheus-manage.sh info
./prometheus-manage.sh stop
# 启动完整 VictoriaMetrics 系统
./victoriametrics-manage.sh start
# 其他命令
./victoriametrics-manage.sh status
./victoriametrics-manage.sh info
./victoriametrics-manage.sh stop
# 单独管理共享基础设施
./prometheus-manage.sh shared start
./victoriametrics-manage.sh shared start
# 单独管理监控栈
./prometheus-manage.sh prometheus start
./victoriametrics-manage.sh vm start
# 查看日志
./prometheus-manage.sh logs shared alertmanager
./victoriametrics-manage.sh logs vm vmagent
prometheus-manage.sh - 管理 Prometheus + 共享基础设施victoriametrics-manage.sh - 管理 VictoriaMetrics + 共享基础设施docker-compose 命令| 特性 | Prometheus | VictoriaMetrics |
|---|---|---|
| 存储效率 | 基准 | 7-10x 更高压缩 |
| 查询性能 | 标准 | 更快 |
| 内存使用 | 较高 | 更低 |
| 兼容性 | 原生 | 完全兼容 PromQL |
| 集群支持 | 需要联邦 | 原生支持 |
metrics-shared 网络连接所有服务source 标签区分告警来源source=prometheussource=victoriametricsGrafana 中预配置两个数据源:
# Prometheus 数据源
url: http://prometheus-server:9090
type: prometheus
# VictoriaMetrics 数据源
url: http://victoriametrics:8428
type: prometheus # 兼容 Prometheus API
所有服务使用 metrics-shared 外部网络连接:
# 创建共享网络
docker network create metrics-shared
# 各服务通过服务名访问
# 例如:shared-alertmanager:9093
# shared-node-exporter:9100
# prometheus-server:9090
# victoriametrics:8428