惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
SecWiki News
SecWiki News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Forbes - Security
Forbes - Security
Schneier on Security
Schneier on Security
W
WeLiveSecurity
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
O
OpenAI News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
PCI Perspectives
PCI Perspectives
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
Help Net Security
Help Net Security
G
GRAHAM CLULEY
Latest news
Latest news
V
Visual Studio Blog
The Cloudflare Blog
T
Troy Hunt's Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
I
InfoQ
Know Your Adversary
Know Your Adversary
B
Blog RSS Feed
V2EX - 技术
V2EX - 技术
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Heimdal Security Blog
Y
Y Combinator Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
P
Palo Alto Networks Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tor Project blog
T
Threat Research - Cisco Blogs
博客园 - 三生石上(FineUI控件)
Cloudbric
Cloudbric
博客园 - Franky
博客园 - 叶小钗
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
T
Threatpost
MongoDB | Blog
MongoDB | Blog
V
Vulnerabilities – Threatpost
Martin Fowler
Martin Fowler

博客园 - 左扬

VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 与其他 TSDB 对比:Prometheus/InfluxDB/Thanos/VM VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 写入吞吐/查询延迟/内存占用的数学模型 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 模块依赖图——从 import 语句看组件关系 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Goroutine 池/atomic/零拷贝/sync.Pool VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 多租户架构——accountID/projectID 与 tenant 隔离 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 整体数据流:一条监控数据的完整生命周期 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 架构演进:从 TSDB 到 MergeSet 的设计取舍 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Single-Node vs Cluster 模式本质区别 VictoriaMetrics 1.146.0 源码【左扬精讲】—— 开篇总览 Rust 专题【左扬精讲】—— 从语法到灵魂:Ownership、Borrowing 与多语言对比 kubernetes 源码【左扬精讲】—— kube-scheduler 启动流程源码分析 Rust 专题【左扬精讲】—— 选择控制语句、运算符与格式化输出 Rust 专题【左扬精讲】—— 所有权详解 Rust 专题【左扬精讲】—— 作用域详解 Rust 专题【左扬精讲】—— 变量、常量与标量数据类型 kubernetes 源码 / Operator 专题【左扬精讲】—— Deployment Controller 源码分析:从对象创建到滚动更新 kubernetes 源码 / Operator 专题【左扬精讲】—— Operator 开发中的 Webhook:从准入控制到生产部署 Kubernetes源码 / Operator 专题【左扬精讲】—— 实现 Application Controller:从零构建生产级控制器 Kubernetes 编程 / Operator 专题【左扬精讲】—— 定义 Application 资源 + 添加自定义新 API 完整指南 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八):内部架构与核心组件 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八): —— 从入口到调度的全链路源码剖析(k8s v1.36.1) DeepSeek-R1 多模态 R1 / VLM-GRPO【左扬精讲】—— Qwen2-VL 微调与视觉推理强化学习实战 DeepSeek-R1 工业 RAG + 微调混合系统【左扬精讲】—— R1 系列收官之作:从 Prompt → RAG → 微调 选型决策树 DeepSeek-R1 推理时扩展【左扬精讲】—— o1 / R1 慢思考机制:Self-Consistency + ToT + PRM 详解 DeepSeek-R1 端侧 LLM 工程【左扬精讲】—— llama.cpp 调参与 Apple Silicon / 国产 NPU / Android 端侧落地全攻略 DeepSeek-R1 vLLM + k8s 生产部署【左扬精讲】—— 从单卡 7B 到 100 卡 671B MoE 集群的工业化部署实战 DeepSeek-R1 评估与系统(Evaluation & Systems)【左扬精讲】—— 从 GSM8K/MMLU 到 LLM-as-Judge 的工业级评估方法论 DeepSeek-R1 模型训练与算法【左扬精讲】—— GRPO 进阶算法:DAPO / PRIME / RLVR / PRM 四大 2025 前沿改进 DeepSeek-R1 模型训练与算法【左扬精讲】—— 数据蒸馏:用 DeepSeek-R1-671B 生成 800K 高质量 CoT 样本的完整流水线 DeepSeek-R1 优化与微调实战【左扬精讲】—— 从 R1 强化学习新范式到 GRPO 微调一站式入门 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 七):自定义插件开发实战 —— 手写一个 Score 插件并注册到集群 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 六):Scheduler Profile 与多调度器 —— 如何配置多个 profile 实现多租户、Coordinated LeaderElection Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 五):SchedulingQueue 与 QueueingHint —— 三段队列的细节、v1.36 新引入的 QueueingHint 工作机制 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 四):抢占(Preemption)算法剖析 —— DefaultPreemption 如何选 victim、PodDisruptionBudget 如何约束 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 二):内置插件逐个精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件 逐个精读 k8s 源码级精讲(二十六):调度器内置插件逐个精读 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):Scheduling Framework 扩展点逐个源码拆解 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):初识调度模型、内部架构与事件驱动机制 Kubernetes 编程 / client-go 专题【左扬精讲】—— 四种客户端:为什么、怎么选、怎么用 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime、kubebuilder、operator-sdk 三大框架深度对比 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入理解 ManagedFields 字段冲突协调机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Finalizers 深度解析:对象的生命周期与删除控制 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference 字段与级联删除机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入学习 Server-Side Apply:managedFields 替代 last-applied-configuration 的演进方向 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Annotations 与元数据体系(Operator 专题) Kubernetes 编程 / Operator 专题【左扬精讲】—— RESTMapper:把 Group / Version / Kind / Resource 四元组翻译成 REST 路径的"查字典"大师 Kubernetes 编程 / Operator 专题【左扬精讲】—— Converter 资源版本转换器 Kubernetes 编程 / Operator 专题【左扬精讲】—— Application 业务扩展:从单 Deployment 到多 Workload 的复合 Operator 演进 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference / Finalizer / 准入控制:k8s 资源生命周期的三大支柱 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime 框架内幕:从 Manager 到 Reconcile 的全栈拆解 Kubernetes 编程 / Operator 专题【左扬精讲】—— 生产级 Operator 最佳实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— application-operator Reconcile 循环源码精讲:从 client-go Informer 到 workqueue 的全链路解剖 Kubernetes 编程 / Operator 专题【左扬精讲】—— 从零搭建一个 application-operator 新项目:脚手架、API 设计与基于原生 DeploymentStatus/ServiceStatus 的状态建模 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:生产级 Controller 实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析: Controller 调试与诊断工具:从日志分析到问题定位 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DynamicClient 操作 CRD:无需代码生成的动态操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:控制器与 APIServer 完整交互流程:从 Watch 到缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:错误处理与重试机制:WorkQueue 限速器详解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Leader 选举机制:高可用控制器的必备技能 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Controller 开发模式完整实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:SharedInformerFactory 与等待缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:从认证配置到 Deployment 操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:版本对应、架构组件与组件关系 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Informer 源码深度解析:从底层原理到实战应用 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Reflector 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:ListWatcher 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Indexer 与 ThreadSafeStore 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DeltaFIFO 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:workqueue 核心原理与实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— runtime.Codec 资源编解码:serializer 与 codec 差异、编解码数据结构、codec 核心调用链路 Kubernetes 编程 / Operator 专题【左扬精讲】—— Scheme 资源注册机制全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 自定义资源的内部版本与外部版本:从源码看版本定义机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 1.36.1 核心 API 数据结构全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 构建过程 【AIOPS】一文读懂LLM【左扬精讲】:从诞生到普及,解锁大语言模型的核心密码 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Hooks 源码精讲:Hooks 可观测性的无侵入式实现 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 配置解析源码精讲 ——SRE 自定义 Agent 核心技巧 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 并发模型解析 ——SRE 应对高并发采集的调优思路 【AIOPS】AI Agent 专题【左扬精讲】基础架构篇:MCP-VictoriaMetrics Golang 源码整体架构拆解 ——SRE 必懂的核心模块与数据流 OpenTelemetry 开发实战【左扬精讲】—— 云原生可观测体系构建与分布式追踪二次开发 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(下篇)—— 预测式弹性扩缩容 Operator 落地实现) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(上篇)—— 时序预测模型构建与离线训练) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 6 —— 基于运维专家知识库的智能故障诊断与排查 Operator 实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 5 —— 基于大语言模型(LLM)的实时日志流智能监测 Operator 实现 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 4 —— 基于 Operator 实现大模型私有化部署与管理 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 3(上篇)—— 面向 AI / 算力调度场景:GPU 竞价实例资源池统一调度管理 Operator 开发 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目 2 —— 面向零售 / 电商潮汐流量难题:多云多集群数据中心级全链路弹性伸缩 DataCenter Scaler Operator 从 0 到 1 全链路开发 Kubernetes编程 / Operator专题【左扬精讲】—— 深入理解Kubebuilder注解:为什么Operator开发离不开这些特殊注释 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目1 —— Applicaion Operator(通用应用生命周期管理 Operator 实战) Pod 镜像拉取失败?kubectl edit pods修改镜像地址的底层原理与实操 (该方法仅为临时应急方案,并非长期解决方案) Kubernetes编程/Operator专题精讲—— 理解控制器模式 —— 控制器模式的核心原理与实现逻辑(从原理到实践) 【AIOPS】AI Agent 专题【左扬精讲】模型微调实战:一站式平台 LLaMA-Factory 【AIOPS】AI Agent 专题【左扬精讲】基于 k8s+vLLM+Ray 分布式部署全指南:架构设计、资源调度与性能优化 【AIOPS】AI Agent专题【左扬精讲】非量化版DeepSeek分布式部署全指南:精度保障、显存规划与Ollama/vLLM选型 【AIOPS】AI Agent 专题【左扬精讲】零开发框架实现 ReAct Agent(Go SRE友好)
VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 版本演进:1.146.0 LTS 重大更新解析
左扬 · 2026-06-29 · via 博客园 - 左扬

VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 版本演进:1.146.0 LTS 重大更新解析

VictoriaMetrics 自 2019 年开源以来,保持着每两周一个版本的快速迭代节奏。1.146.0 是最新的 Release Candidate 版本,包含了多项重要的功能增强和 bug 修复。本篇文章将从 CHANGELOG 出发,分析 1.146.0 版本的重大更新,以及近几个版本的演进趋势。

一、版本体系与 LTS 策略

思考记忆提示理解 VictoriaMetrics 的版本策略,有助于生产环境选型

  • VictoriaMetrics 采用"语义版本 + LTS"策略
  • LTS 版本每 6 个月发布一次,稳定支持 12 个月
  • 面试高频提问:生产环境应该选择哪个版本?

1.1 版本号语义

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 周)

1.2 LTS 版本策略

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 新特性解析

思考记忆提示v1.146.0 是 Release Candidate,重点关注新功能和破坏性变更

  • 新增 -http.header.disableServerHostname 参数
  • delete_series API 增加日志记录
  • vmctl 支持自定义认证头
  • stream aggregation 优化

2.1 HTTP 响应头控制

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 中实现:

  • disableServerHostname flag 控制是否添加响应头
  • w.Header().Set("X-Server-Hostname", hostname) 设置响应头
  • 用途:安全加固,防止泄露服务器信息

2.2 delete_series API 日志增强

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

小贴士审计价值

这个变更对于安全审计非常有价值。可以追踪谁在什么时间删除了哪些指标,帮助定位数据丢失的原因。

2.3 vmctl 认证增强

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

2.4 vmagent 内存队列优化

vmagent 新增 -remoteWrite.inmemoryQueues 参数,优先发送最近写入的数据。

 # 默认行为:按先进先出(FIFO)顺序发送
# 问题:历史数据堆积时,新数据也被延迟

# 启用新参数后:优先发送最近数据(LIFO)
vmagent \
    -remoteWrite.url=http://victoriametrics:8428/api/v1/write \
    -remoteWrite.inmemoryQueues=true

# 适用场景:
# - 实时监控优先
# - 历史数据可以延迟
# - 远程写入偶尔中断

# PR: #8833

2.5 stream aggregation 优化

stream aggregation 有两项重要改进:

  1. 去重采样丢弃统计:新增 vm_streamaggr_dedup_dropped_samples_total 指标,可追踪去重过程中丢弃的旧采样
  2. staleness_interval 优化:默认值从 2*interval 改为 interval,减少数据间隙导致的抖动
 # 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 的发展方向

  • 安全性增强:认证、审计、日志
  • 可观测性增强:更多 metrics、更好的 debug 信息
  • 企业特性下放:部分企业功能进入开源版本

3.1 版本演进时间线

  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 多租户修复                            │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

3.2 核心演进趋势

领域趋势具体变化
安全性 持续增强 敏感信息隐藏、delete 日志、认证增强
可观测性 指标丰富化 更多 /metrics、Top Queries、fsync 指标
协议支持 持续扩展 Mimir 迁移、OTel Native Histogram
性能 稳定优化 内存队列优化、合并策略调优
稳定性 Bug 修复密集 Go 版本同步、并发问题修复

源码视角:安全相关的代码变更

从 CHANGELOG 可以看出安全相关的变更集中在 lib/httpserver/lib/promauth/

  • v1.144.0:隐藏 -remoteWrite.headers-remoteWrite.proxyURL 在日志和 metrics 中的值
  • v1.146.0:新增 -http.header.disableServerHostname
  • 趋势:VM 越来越重视企业级安全需求

3.3 Bug 修复模式分析

通过分析近版本 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)。建议优先级:安全 > 稳定 > 功能。

4.1 版本选择建议

环境推荐版本理由
生产环境 v1.143.0 (LTS) 经过验证,稳定支持 12 个月
测试环境 v1.146.0 (RC) 提前验证新功能,测试下个 LTS
开发环境 最新 master 体验最新功能,反馈问题

警告

避免使用 v1.140.0、v1.136.4、v1.122.19,这些版本存在二元运算 Bug(#10856)。

4.2 升级检查清单

  # 升级前检查

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% 逐步放量

4.3 回滚方案

  # 回滚操作

# 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

五、面试高频提问

面试问答本节精选面试高频问题

Q1:VictoriaMetrics 的发布节奏是怎样的?

每两周一个版本,每六个月发布一个 LTS 版本。版本号格式为 v{major}.{minor}.{patch}。LTS 版本(如 v1.143.0)提供 12 个月的支持。生产环境建议使用 LTS 版本,最新功能可以在测试环境先行验证。

Q2:v1.146.0 有哪些值得关注的更新?

重点关注安全性增强和可观测性改进。1)新增 -http.header.disableServerHostname 参数,可以禁用 X-Server-Hostname 响应头;2)delete_series API 调用会记录详细日志,方便安全审计;3)vmctl 新增认证参数支持;4)stream aggregation 优化了 staleness_interval 默认值。

Q3:哪些版本应该避免在生产环境使用?

v1.140.0、v1.136.4、v1.122.19 存在二元运算 Bug。这些版本中,二元运算存在排序问题,例如 10 - (3 + 3 + 4) 会被错误计算为 10 - 3 + 3 + 4。如果使用了这些版本,建议尽快升级到修复版本。

Q4:Stream Aggregation 的 staleness_interval 改动有什么影响?

默认值从 2*interval 改为 interval,减少了数据延迟感知的抖动。之前如果采样之间有间隙,需要等待 2 倍间隔才会标记为 stale,现在只需要等待 1 倍间隔。这对于间歇性数据的实时监控场景有显著改善。

全篇必记口诀

版本演进记住三条线:安全线(敏感信息隐藏、delete 日志、认证增强)、可观测线(更多 metrics、Top Queries、fsync 指标)、兼容线(Go 版本同步、Bug Fix)。升级口诀:"生产用 LTS,测试追 RC,避开问题版本"