




















VictoriaMetrics 自 2019 年开源以来,保持着每两周一个版本的快速迭代节奏。1.146.0 是最新的 Release Candidate 版本,包含了多项重要的功能增强和 bug 修复。本篇文章将从 CHANGELOG 出发,分析 1.146.0 版本的重大更新,以及近几个版本的演进趋势。
思考记忆提示 — 理解 VictoriaMetrics 的版本策略,有助于生产环境选型
VictoriaMetrics 采用语义化版本(Semantic Versioning):
版本号格式:v{major}.{minor}.{patch}
示例:
v1.146.0
│ │ │
│ │ └── patch 版本:bug 修复,向后兼容
│ │
│ └── minor 版本:新功能,API 可能扩展
│
└── major 版本:目前固定为 1
版本生命周期:
v1.146.0-rc → Release Candidate(发布候选)
v1.146.0 → 正式发布
v1.146.x → 持续小版本更新(每 2 周)
VictoriaMetrics 提供 LTS(Long-Term Support)版本:
| LTS 版本 | 发布日期 | 支持截止 | 状态 |
|---|---|---|---|
| v1.143.0 | 2026-05-08 | 2027-05-08 | 当前 LTS |
| v1.119.0 | 2025-11 | 2026-11 | LTS |
| v1.95.0 | 2025-05 | 2026-05 | LTS(即将 EOL) |
注意
建议生产环境使用 LTS 版本。如果需要最新功能,可以使用 RC 版本,但需要做好充分测试。
思考记忆提示 — v1.146.0 是 Release Candidate,重点关注新功能和破坏性变更
v1.146.0 新增 -http.header.disableServerHostname 参数,用于禁用 X-Server-Hostname HTTP 响应头。
# 默认情况:HTTP 响应包含 X-Server-Hostname 头
$ curl -I http://localhost:8428
HTTP/1.1 200 OK
X-Server-Hostname: vm-001
Content-Type: text/plain
...
# 禁用后:不再暴露服务器主机名
$ ./victoria-metrics -http.header.disableServerHostname
$ curl -I http://localhost:8428
HTTP/1.1 200 OK
Content-Type: text/plain
...
# PR: #11067, 作者: @zasdaym
源码视角:X-Server-Hostname 头的实现
在 lib/httpserver/httpserver.go 中实现:
v1.146.0 开始,调用 /api/v1/admin/tsdb/delete_series API 时会记录详细日志。
# 调用 delete_series API
$ curl -X POST 'http://localhost:8428/api/v1/admin/tsdb/delete_series?match[]={job="test"}'
# 服务端日志(v1.146.0 新增)
# INFO[] delete_series API called ...
# matchers: {job="test"}
# source: 192.168.1.100
# user-agent: curl/7.68.0
# PR: #11104
小贴士 — 审计价值
这个变更对于安全审计非常有价值。可以追踪谁在什么时间删除了哪些指标,帮助定位数据丢失的原因。
vmctl 新增 -vm-headers 和 -vm-bearer-token 参数,支持自定义认证头。
# 使用 Bearer Token 认证
vmctl migrate prometheus \
--vm-addr=http://victoriametrics:8428 \
--vm-bearer-token="your-token-here"
# 使用自定义 Header
vmctl migrate prometheus \
--vm-addr=http://victoriametrics:8428 \
--vm-headers="Authorization:Bearer xxx,X-Custom-Header:value"
# 支持的子命令:
# - opentsdb
# - influx
# - remote-read
# - prometheus
# - mimir
# - thanos
# PR: #8897
vmagent 新增 -remoteWrite.inmemoryQueues 参数,优先发送最近写入的数据。
# 默认行为:按先进先出(FIFO)顺序发送
# 问题:历史数据堆积时,新数据也被延迟
# 启用新参数后:优先发送最近数据(LIFO)
vmagent \
-remoteWrite.url=http://victoriametrics:8428/api/v1/write \
-remoteWrite.inmemoryQueues=true
# 适用场景:
# - 实时监控优先
# - 历史数据可以延迟
# - 远程写入偶尔中断
# PR: #8833
stream aggregation 有两项重要改进:
# stream aggregation 配置示例
stream_aggr_config:
- name: dedup_aggr
interval: 30s
dedup_interval: 10s
# 新的 staleness_interval 默认值 = interval(30s)
# 之前默认 = 2*interval(60s)
output:
- name: aggregated_metrics
aggr:
- sum
- count
# 监控新增的丢弃指标
vm_streamaggr_dedup_dropped_samples_total{aggr="dedup_aggr"}
思考记忆提示 — 通过分析近几个版本的 CHANGELOG,可以看出 VM 的发展方向
VictoriaMetrics 版本演进(2026)
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ v1.140.0 (04-10) │ ◄━━━ Go 1.26.2 安全更新 │
│ │ vm_filestream_fsync_duration_seconds 新指标 │
│ │ Mimir 迁移支持 │
│ │ 二元运算 bug(已知问题) │
│ ────────────────────────────────────────────────────────────── │
│ v1.141.0 (04-24) │ ◄━━━ 未来时间戳支持(-futureRetention) │
│ │ systemd slice 检测 │
│ │ Stream aggregation 增强 │
│ ────────────────────────────────────────────────────────────── │
│ v1.142.0 (04-28) │ ◄━━━ Bugfix 版本 │
│ │ vminsert 自动发现 bug │
│ ────────────────────────────────────────────────────────────── │
│ v1.143.0 (05-08) │ ◄━━━ Go 1.26.3 安全更新 │
│ │ OTel Native Histogram 支持 │
│ │ filesystem type 指标 │
│ │ CORS 修复 │
│ ────────────────────────────────────────────────────────────── │
│ v1.144.0 (05-22) │ ◄━━━ vmagent 关闭优化 │
│ │ OpenTelemetry 标签处理 │
│ │ vmui Top Queries 改进 │
│ │ 敏感信息隐藏(headers/proxyURL) │
│ ────────────────────────────────────────────────────────────── │
│ v1.145.0 (06-08) │ ◄━━━ Go 1.26.4 安全更新 │
│ │ Prometheus 原生直方图解析修复 │
│ │ Mimir 迁移正式支持 │
│ │ integrate() 修复 │
│ ────────────────────────────────────────────────────────────── │
│ v1.146.0 (06-??) │ ◄━━━ 当前 RC 版本 │
│ │ X-Server-Hostname 控制 │
│ │ delete_series 日志 │
│ │ vmctl 认证增强 │
│ │ vmagent 内存队列优化 │
│ │ Cluster 多租户修复 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
| 领域 | 趋势 | 具体变化 |
|---|---|---|
| 安全性 | 持续增强 | 敏感信息隐藏、delete 日志、认证增强 |
| 可观测性 | 指标丰富化 | 更多 /metrics、Top Queries、fsync 指标 |
| 协议支持 | 持续扩展 | Mimir 迁移、OTel Native Histogram |
| 性能 | 稳定优化 | 内存队列优化、合并策略调优 |
| 稳定性 | Bug 修复密集 | Go 版本同步、并发问题修复 |
源码视角:安全相关的代码变更
从 CHANGELOG 可以看出安全相关的变更集中在 lib/httpserver/ 和 lib/promauth/:
通过分析近版本 BUGFIX,可以看出 VM 的测试覆盖和发布流程:
BUGFIX 分类统计(v1.143.0 ~ v1.146.0)
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Cluster 相关 ████████████████████ 12 个 │
│ 占比: 35% │
│ 问题: 租户过滤、元数据、多租户查询 │
│ ──────────────────────────────────────────── │
│ vmagent 相关 ██████████████ 8 个 │
│ 占比: 24% │
│ 问题: 序列化、EC2 凭证、relabel │
│ ──────────────────────────────────────────── │
│ vmui 相关 █████████ 4 个 │
│ 占比: 12% │
│ 问题: 时区、图表、CSV 导出 │
│ ──────────────────────────────────────────── │
│ vmauth/vmalert ████████ 4 个 │
│ 占比: 12% │
│ 问题: JWT、启动延迟、用户统计 │
│ ──────────────────────────────────────────── │
│ 存储/查询 ████████ 4 个 │
│ 占比: 12% │
│ 问题: 二元运算、UTF-8、CORS │
│ ──────────────────────────────────────────── │
│ 其他 ████ 2 个 │
│ 占比: 5% │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
升级决策框架
升级前考虑三个维度:稳定性(Bug Fix)、安全性(新功能)、功能性(新 Feature)。建议优先级:安全 > 稳定 > 功能。
| 环境 | 推荐版本 | 理由 |
|---|---|---|
| 生产环境 | v1.143.0 (LTS) | 经过验证,稳定支持 12 个月 |
| 测试环境 | v1.146.0 (RC) | 提前验证新功能,测试下个 LTS |
| 开发环境 | 最新 master | 体验最新功能,反馈问题 |
警告
避免使用 v1.140.0、v1.136.4、v1.122.19,这些版本存在二元运算 Bug(#10856)。
# 升级前检查
1. 备份当前配置
cp -r /etc/victoriametrics /backup/config-$(date +%Y%m%d)
2. 检查新增参数
./victoria-metrics -help | grep -E "(disableServerHostname|futureRetention)"
3. 测试配置文件兼容性
./victoria-metrics -configFile=/etc/vm/config.yml -dryRun
4. 检查依赖组件兼容性
- vmagent 版本
- Grafana 数据源版本
- Prometheus 版本
5. 性能基线记录
curl http://localhost:8428/metrics > baseline.metrics
6. 灰度升级策略
- 先升级测试环境
- 观察 24 小时无异常
- 10% → 50% → 100% 逐步放量
# 回滚操作
# Docker 场景
docker stop victoriametrics
docker rm victoriametrics
docker run ... victoriametrics:v1.143.0 # 使用旧版本镜像
# Kubernetes 场景
kubectl rollout undo deployment/victoria-metrics
# systemd 场景
systemctl stop victoriametrics
systemctl disable victoriametrics
# 重新安装旧版本
./victoria-metrics-v1.143.0 ...
systemctl enable victoriametrics
systemctl start victoriametrics
面试问答 — 本节精选面试高频问题
每两周一个版本,每六个月发布一个 LTS 版本。版本号格式为 v{major}.{minor}.{patch}。LTS 版本(如 v1.143.0)提供 12 个月的支持。生产环境建议使用 LTS 版本,最新功能可以在测试环境先行验证。
重点关注安全性增强和可观测性改进。1)新增 -http.header.disableServerHostname 参数,可以禁用 X-Server-Hostname 响应头;2)delete_series API 调用会记录详细日志,方便安全审计;3)vmctl 新增认证参数支持;4)stream aggregation 优化了 staleness_interval 默认值。
v1.140.0、v1.136.4、v1.122.19 存在二元运算 Bug。这些版本中,二元运算存在排序问题,例如 10 - (3 + 3 + 4) 会被错误计算为 10 - 3 + 3 + 4。如果使用了这些版本,建议尽快升级到修复版本。
默认值从 2*interval 改为 interval,减少了数据延迟感知的抖动。之前如果采样之间有间隙,需要等待 2 倍间隔才会标记为 stale,现在只需要等待 1 倍间隔。这对于间歇性数据的实时监控场景有显著改善。
全篇必记口诀
版本演进记住三条线:安全线(敏感信息隐藏、delete 日志、认证增强)、可观测线(更多 metrics、Top Queries、fsync 指标)、兼容线(Go 版本同步、Bug Fix)。升级口诀:"生产用 LTS,测试追 RC,避开问题版本"。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。