ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VictoriaMetrics 2026 版本演进深度解读:从 v1.133.0 到 v1.151.0 的变更日志剖析

VictoriaMetrics 2026 版本演进深度解读:从 v1.133.0 到 v1.151.0 的变更日志剖析 VictoriaMetrics 2026 版本演进深度解读从 v1.133.0 到 v1.151.0 的变更日志剖析【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetrics本文以 VictoriaMetrics 仓库官方变更日志 docs/victoriametrics/changelog/CHANGELOG.md 为骨架系统梳理 2026 年发布的 v1.133.0 至 v1.151.0含 tip 开发版中值得关注的破坏性变更Update Note、安全修复SECURITY、新功能FEATURE与关键缺陷修复BUGFIX并结合仓库源码说明这些变更背后的实现意图与升级注意事项。读完本文你将掌握该版本区间内的行为变化全貌能够据此制定安全的升级计划、排查升级后可能出现的兼容性问题并第一时间使用新版本提供的能力。一、读懂这份变更日志文档结构与阅读方法CHANGELOG.md采用「主文件 年度归档」的组织方式当前主文件只保留 2026 年至今tip与 v1.133.0 及之后的完整条目更早版本v1.132.0 及以前则通过「See changes here」跳转到按年度拆分的归档文件docs/victoriametrics/changelog/CHANGELOG_2025.mddocs/victoriametrics/changelog/CHANGELOG_2024.mddocs/victoriametrics/changelog/CHANGELOG_2023.mddocs/victoriametrics/changelog/CHANGELOG_2022.md阅读时需要特别关注三类条目tip区位于文件头部对应尚未打 tag 的最新提交master 分支可通过按 构建说明 从源码自行编译进行验证Update Note N每个版本开头以粗体标注的行为变更是需要升级方手动配合的破坏性变更例如默认值翻转、API 方法限制、指标重命名LTS 版本线说明v1.148.x、v1.136.x、v1.122.x、v1.110.x均声明为 LTS长期支持版本线至少自首个版本发布起维护 12 个月社区版修复与安全补丁会同步合入对应 LTS 分支具体可见 docs/victoriametrics/LTS-releases.md。从源码结构看每个组件vmsingle、vmagent、vmalert、vmauth、vmctl、vminsert、vmselect、vmstorage 等的入口与实现分别位于 app/ 目录下而流式聚合、指标库、存储引擎等公共能力集中在 lib/ 目录变更日志中大量「指标新增」「告警规则调整」都能在 dashboards/vm/ 与 deployment/docker/rules/ 中找到对应落点。二、安全修复专题2026 年 VictoriaMetrics 的安全演进2026 年的版本序列几乎每个版本都伴随 SECURITY 更新主要分为「构建工具链升级」与「真实漏洞修复」两类。2.1 构建工具链与基础镜像的持续升级版本变更内容tipGo 构建器从 Go1.26.6 升级到 Go1.27.1v1.150.0 / v1.148.2 / v1.136.16Go1.26.5 → Go1.26.6v1.148.0 / v1.136.14 / v1.122.24Go1.26.4 → Go1.26.5v1.145.0 / v1.136.11 / v1.122.24Go1.26.3 → Go1.26.4v1.143.0 / v1.136.9 / v1.122.22Go1.26.2 → Go1.26.3v1.140.0 / v1.136.4 / v1.122.19Go1.26.1 → Go1.26.2v1.138.0 / v1.136.2Go1.26.0 → Go1.26.1v1.136.0Go1.25.6 → Go1.26.0v1.147.0 / v1.136.13 / v1.122.26基础镜像 Alpine 3.23.4 → 3.24.1v1.141.0Alpine 3.23.3 → 3.23.4Go 编译器与基础镜像的升级属于常规安全维护但由于 VictoriaMetrics 的所有组件均由同一套构建流程产出见 Makefile这类升级会一次性影响全部二进制产物升级方只需跟随版本即可无需额外动作。2.2 真实漏洞修复值得重点评估的条目vmauth JWT 鉴权绕过tipGHSA-f99m-22fh-qw96当使用match_claims进行 JWT 路由匹配时存在授权绕过属于必须升级的高危项。相关 JWT 实现位于 app/vmauth/auth_config.gomatch_claims配置说明可参见 docs/victoriametrics/vmauth.md 中的 JWT Claim Matching 一节。vmsingle / vmselect XSStipGHSA-vw9j-rqhg-qff9/metric-relabel-debug返回的服务端错误包含用户输入片段且未正确转义可导致/vmui/#/relabeling页面 XSS。HTTP Basic Auth 检查补齐v1.151.0 / v1.148.3 / v1.136.17此前/api/v1/import/prometheus/config这类路径会匹配到数据写入处理器/api/v1/import/prometheus导致-httpAuth.*凭据被跳过修复后所有未单独校验*AuthKey的路径都会校验-httpAuth.*。delete_series 端点仅允许 POSTv1.149.0 / v1.148.1 / v1.136.15/api/v1/admin/tsdb/delete_series与/tags/delSeries此前接受 GET存在基于 SSRF 的数据删除攻击面现限制为仅 POST。如果现有脚本使用 GET 调用这些端点必须改为 POST。敏感信息脱敏v1.144.0 系列vmagent 的-remoteWrite.headers、-remoteWrite.proxyURLvmalert 的-remoteWrite.headers/remoteRead.headers/datasource.headers/notifier.headersvmsingle/vmselect 的vmalert.proxyURL等携带凭据的 flag 值不再出现在启动日志、/metrics与/flags中防止 Authorization 头与 API Key 泄露。三、升级必读破坏性变更Update Note全梳理这是升级前必须逐条核对的部分。下表汇总了 2026 年版本中所有需要人工配合的行为变化版本变更内容影响与应对v1.150.0-enableMultitenancyViaHeaders默认值由false改为truevmagent、vminsert、vmselect集群与 vmagent 默认支持通过 Header 指定租户https://vmselect:8481/select/prometheus/api/v1/query这类省略租户 ID 的 URL 变为合法。如不需要可显式传-enableMultitenancyViaHeadersfalse恢复旧行为v1.149.0vminsert 的-disableRerouting默认值由true改为false基于慢节点的 re-routing 默认开启-replicationFactor 1时自动禁用依赖旧行为需显式传-disableReroutingv1.149.0 / v1.148.1delete_series 相关端点仅接受 POST更新脚本与工具v1.148.0vmalert-tool 默认测试起始时间由1970-01-01改为2000-01-01涉及time()、day_of_*()等依赖当前时间函数的测试结果可能变化v1.147.0vmagent 存在 CPU/内存升高 bug引入于 #10854官方建议升级到 v1.148.0 或回退 v1.146.0同时 vmalert 升级了 LogsQL 解析器v1.51.0使用 vlogs 查询类型且含弃用语法时规则校验会失败需先审查规则v1.140.0CSV 导出/api/v1/export/csv增加表头行现有 CSV 处理脚本需跳过首行vmui Raw Query 的 CSV 导出同步由后端提供表头v1.140.0 / v1.136.4 / v1.122.19MetricsQL 二元运算存在括号求值顺序 bug10 - (3 3 4)被算成10 - 3 3 4官方强烈建议完全避开这些版本v1.137.0-promscrape.dropOriginalLabels默认值由true改为falseDiscovered targets调试 UI 恢复默认开启v1.133.0引入 per-partition index分区级索引升级时需要一次性注册全部活跃时间序列期间写入与查询会变慢retention 短于 1 个月的用户磁盘占用可能增加对应dateMetricIDCache改为轮转而非重置-storage.cacheSizeIndexDBDateMetricIDflag 被移除v1.134.0-retentionPeriod支持显式月单位M无破坏性但提供更明确的配置表达此外 v1.148.x 作为 LTS 线其修复集与社区最新版保持一致v1.141.0 起enterprise 自动 vmstorage 发现与 v1.142.0 中存在会阻塞写入的已知 bug同样被多个 Update Note 点名建议相关用户避开。四、新功能纵深2026 年的能力增量4.1 存储与查询引擎时间维度管理全面增强未来时间戳支持v1.141.0vmsingle 与集群 vmstorage/vmselect 新增-futureRetentionflag控制允许写入与查询的未来时间戳范围对应 issue #827。历史回填限制v1.148.0新增-maxBackfillAgeflag用于限制写入历史时间戳样本例如在冷热分层nvme/hdd迁移旧数据后避免误写超期数据。per-partition indexv1.133.0索引随分区一并过期删除显著降低 indexDB 长期占用的磁盘空间。这是 2026 年存储层最重大的架构级变更动机可追溯到 issue #7599配套改动包括缓存轮转策略与-storage.cacheSizeIndexDBDateMetricIDflag 的移除。Unix domain socket 监听v1.151.0所有组件支持-httpListenAddrunix:/run/victoria-metrics.sock便于在无网络命名空间场景下对接本地进程。工作集缓存持久化v1.148.2 / v1.136.16优雅停机时持久化包含活跃工作集的上一轮缓存避免 split-mode 缓存轮转后重启出现缓存冷启动拖慢写入与查询对应 issue #11299。查询侧的新增包括 MetricsQL 的fill修饰符v1.148.0为二元运算两侧缺失序列填充默认值、histogram_fraction()v1.137.0计算落在lowerLe与upperLe之间的桶占比实现在 lib/metricsql、buckets_limit选择算法改进v1.147.0去掉首尾连续空桶以获得更准确的 min/max/api/v1/query_range还新增optimize_repeated_binary_op_subexprs1参数v1.147.0让共享同一优化聚合结果的二元运算两侧顺序执行、复用 rollup 缓存。4.2 vmagent采集与远端写入能力的扩展Monitoring Data eXchangeMDXv1.147.0通过-remoteWrite.mdx.enabletrue将仅来自 VictoriaMetrics 服务自身的指标路由到指定-remoteWrite.url适用于「监控之监控」场景——一个远端存储接收全量指标另一个只接收 VM 自身指标。相关过滤逻辑可在 app/vmagent 的 remotewrite 子目录中追溯。标签混淆v1.149.0-remoteWrite.obfuscateLabels对指定标签值做哈希后再发送可在对外共享指标的同时隐藏敏感标签值。内存队列优先v1.146.0-remoteWrite.inmemoryQueues让新摄入数据优先于文件型持久队列中的历史数据缩短端到端延迟。按 URL 独立配置队列v1.135.0-remoteWrite.queues可对每个 remoteWrite 目标分别设置例如对不支持乱序写入的后端如 Mimir用-remoteWrite.queues1对 VictoriaMetrics 保持高队列数无需再拆分多实例。Unix domain socket 抓取v1.148.0通过目标标签__unix_socket__配置 socket 路径即可抓取本地进程指标__max_scrape_size__标签支持按目标覆盖max_scrape_size。服务发现扩充新增linode_sd_configsv1.150.0、ec2_sd_configs的profile选项v1.140.0、yandexcloud_sd_configs的folder_idsv1.139.0、Hetznerrobot角色的__meta_hetzner_robot_datacenter标签v1.143.0http_sd后台发现性能得到优化v1.148.0。全局 sampleLimitv1.133.0支持全局级sampleLimit且目标级sample_limit可正确覆盖全局值。卡点与保护-remoteWrite.maxHourlySeries/-remoteWrite.maxDailySeries支持-1v1.140.0即只统计不限制便于先评估再落限集群模式下新增-promscrape.cluster.shardByLabelsv1.146.0用于指定分片依据标签。4.3 vmauthJWT / OIDC 认证体系成型2026 年 vmauth 从「基础反向代理」演进为具备完整 JWT 生态的认证网关核心配置结构见 app/vmauth/auth_config.goJWT Token 认证代理v1.137.0基于public_keys做签名校验的 JWT 认证JWT Claim 路由v1.138.0match_claims按 JWT 声明做请求路由v1.139.0 扩展了数组型声明值支持JWT Claim 模板化v1.137.0使用vm_accessclaim 中的字段动态改写上游 URL 与请求头免去为每个租户单独维护配置v1.144.0 补充{{.MetricsAccountID}}、{{.MetricsProjectID}}占位符v1.147.0 增加default_vm_access_claim兜底OIDC Discoveryv1.138.0自动拉取并轮换 OIDC Provider 的公钥免除手动维护公钥deny_pathstip在url_map中对src_paths命中的子路径返回 403/401避免逐一枚举白名单路径请求体缓冲v1.135.0-requestBufferSize缓冲慢客户端如 IoT 设备请求体后再转发降低后端压力-maxQueueDurationv1.133.0并发超限时等待入队执行而非立即触发重试风暴。配合这些能力deployment/docker/rules/alerts-vmauth.yml 在 v1.147.0 新增InvalidAuthTokenRequestErrors告警规则用于识别错误令牌、过期令牌与暴力破解尝试vmauth 同时引入 2~3 秒的 OWASP 建议延迟并支持将无效令牌请求写入 access log。4.4 vmalert 与 vmalert-tool规则编排与回放增强模板新增$interval变量v1.149.0暴露规则组评估间隔可拼接带相对回看窗口的 dashboard 链接与formatTime函数v1.143.0-rule.stripFilePathv1.143.0从日志与 API 响应中剥离规则文件路径/api/v1/rules支持match[]label_selector过滤与search/分页v1.145.0 / v1.139.0组级eval_offset支持负值v1.138.0在[0...groupInterval]内以groupInterval-abs(eval_offset)起始评估v1.140.0 起组评估时间与eval_offset对齐-replay.continueWithExecutionErrv1.149.0允许回放时跳过执行失败的规则v1.150.0 起同时处理 400 Bad Request新增vmalert_remotewrite_sent_rows/vmalert_remotewrite_sent_bytes/vmalert_remotewrite_queue_size/vmalert_remotewrite_queue_capacity等可观测性指标v1.140.0v1.143.0 支持通过 VictoriaMetrics remote write 协议发送数据。4.5 vmctl迁移能力大扩展专用 Thanos 模式v1.140.0支持原始与降采样 Thanos 块及全部聚合类型count/sum/min/max/counter每个聚合以metric_name:5m:count形式的独立指标导入配套--thanos-*前缀 flagsMimir 对象存储迁移v1.145.0新增从 Mimir 对象存储迁移数据的能力Prometheus Native Histograms 迁移v1.149.0remote read 模式下原生直方图转换为_count/_sum/_bucketvmrange序列自定义桶保留原始边界认证与监控v1.146.0 / v1.135.0新增-vm-headers、-vm-bearer-token内置迁移进度指标失败退出时也会推送-pushmetrics.urlv1.146.0。4.6 流式聚合Stream Aggregation流式聚合实现在 lib/streamaggr2026 年主要增量新增sum_samples_total输出v1.146.0将输入 delta 值累加为累计计数器staleness_interval默认值由2*interval改为聚合规则间隔v1.146.0减少样本间隙导致的尖峰新增vm_streamaggr_dedup_dropped_samples_totalv1.146.0与vm_streamaggr_counter_resets_totalv1.141.0用于total*/increase*/rate*输出辅助排查计数器重置刷新延迟由样本 p95 滞后改为最大滞后v1.144.0 / v1.136.10避免极端离群样本被当作「过旧」丢弃。4.7 可观测性与告警规则新指标vm_os_infov1.140.0、vm_fs_infov1.143.0暴露数据目录文件系统类型、vm_filestream_fsync_duration_seconds_total与vm_filestream_fsync_calls_totalv1.140.0检测存储写入瓶颈、vm_data_size_bytes{typestorage/metaindex}与{typeindexdb/metaindex}v1.147.0、vm_app_prev_shutdown_uncleanv1.151.0配合 deployment/docker/rules/alerts-health.yml 中新增的UncleanShutdown告警规则异常停机后触发 10 分钟vm_log_messages_total增加is_printed标签v1.135.0并统计被-loggerLevel抑制的日志便于无日志环境排障告警规则vmbackupmanager 新增 5 条「备份缺失」告警v1.149.0基于新指标vm_backup_last_success_atvmalert 新增AlertingRuleResultsApproachingLimit/RecordingRuleResultsApproachingLimitv1.147.0alert-statistics dashboard 增加 pending/firing 统计v1.140.0。4.8 vmui 与 Dashboardvmui前端源码见 app/vmselect/vmui在 2026 年持续打磨Top Queries 页新增「内存占用最高查询」与人类可读时长/容量显示v1.144.0 / v1.136.0Cardinality Explorer 聚焦指标/标签时展示seriesCountByMetricName表v1.139.0Raw Query 图表显示null/stale markerv1.144.0favicon 颜色可定制v1.150.0时区偏移量常驻显示v1.151.0自动刷新间隔持久化到 URLv1.149.0。Grafana 侧则新增基于 Cardinality Explorer 的 dashboards/metrics-explorer.jsonv1.139.0需 Infinity 插件。五、关键 BUGFIX 实战解读从生产事故中学习5.1 崩溃类建议优先升级sort_by_label_numeric()崩溃v1.151.0标签值含 309 位及以上数字时进程崩溃已修复/api/v1/import/native崩溃v1.151.0约 45 字节的特制请求可触发进程崩溃OpenTelemetry Firehose 无限循环v1.151.0 / v1.148.3/opentelemetry/api/v1/push收到 data 字段含不完整 varint 的畸形记录时 goroutine 永久自旋、持续占满 CPU属典型的资源耗尽型 DoSvmselect 临时结果磁盘不足v1.151.0磁盘空间不足时直接失败查询而非崩溃regexp 深度过大v1.137.0{__name__~a{0,1000}}这类大重复范围正则导致expression nests too deeplypanic。5.2 数据正确性类静默错误危害更大MetricsQL 二元运算顺序 bugv1.140.0 引入v1.141.0 修复10 - (3 3 4)被错误求值为10 - 3 3 4官方明确建议避开 v1.140.0、v1.136.4、v1.122.19比较运算 NaN 语义v1.149.0 / v1.148.1foo ! (bar 100)中内层比较过滤掉的点以 NaN 表示而value ! NaN恒为 true导致意外结果integrate()尾部外推v1.145.0序列结束后不再无限累加最后一个采样值避免积分被严重高估changes()跨窗口误报v1.135.0样本间隙超过回看窗口时可能返回非零值时间戳解析v1.148.2 / v1.149.0小数 Unix 时间戳如12.0曾被当作 12000 秒与亚秒级科学计数法1.784144612388E9的解析修复空标签名覆盖指标名v1.150.0 / v1.148.2metric:{__name__:foo,:bar}此前会把指标名覆盖为bar现统一跳过空名标签。5.3 数据丢失与队列可靠性类持久队列元数据原子写入v1.148.0先 flush chunk 数据再更新元数据、原子写 metainfo避免异常停机后丢队列工作集缓存v1.148.2优雅停机时避免保存空缓存导致重启后写入/查询变慢vmalert 样本时间戳截断v1.151.0 / v1.148.3decimal/scientific 记法的实例查询时间戳曾被静默截断为 0vmalert-tool 连接复用v1.151.0每次写入新建连接导致大量TIME_WAIT套接字、可能耗尽临时端口新增-remoteWrite.maxIdleConnections调节vmctl vm-native 模式连接复用v1.151.0--vm-concurrency超过 2 时此前空闲连接数被限制为每主机 2 个现可复用。5.4 连接与并发类vmselect 连接池复用失效连接v1.145.0 / v1.136.11复用被静默丢弃的 TCP 连接导致偶发write: connection timed out修复为失败时新建连接重试优雅停机排空v1.147.0-http.maxGracefulShutdownDuration到期前主动取消 in-flight 请求避免logger.Fatalf - os.Exit跳过存储 flush 导致内存数据丢失vminsert 缓冲按节点优化v1.141.0依据 CPU、内存与存储节点数自适应调整每 vmstorage 节点缓冲大小降低 OOM 风险。六、升级与验证建议避开已知坏版本v1.140.0、v1.136.4、v1.122.19二元运算 bug使用 enterprise 自动 vmstorage 发现的用户避开 v1.141.0 与 v1.142.0v1.147.0 的 vmagent 用户注意 CPU/内存升高问题LTS 用户v1.148.x / v1.136.x / v1.122.x / v1.110.x 均持续接收重要修复生产环境可优先选择 LTS 线社区最新版则获得全部功能逐条核对 Update Note特别是 v1.150.0 的多租户 Header 默认开启、v1.149.0 的 re-routing 默认开启与 delete_series POST 限制、v1.140.0 的 CSV 表头、v1.137.0 的 dropOriginalLabels 翻转这些都会影响既有脚本与拓扑功能验证新版本中与自身场景相关的修复如 Kafka 消费、S3 备份重试、OpenTelemetry 摄入可在 apptest/tests 下的集成测试中看到配套覆盖例如 ingestprotocols、vmagent_remotewrite、vmctl 系列迁移测试试用 tip需要提前验证最新提交时可参照 docs/victoriametrics/README.md 中各组件的从源码构建说明编译并按 docs/victoriametrics/Single-server-VictoriaMetrics.md 或 docs/victoriametrics/Cluster-VictoriaMetrics.md 部署。总体来看2026 年的版本线以「安全加固 多租户/认证体系完善 存储层索引重构 可观测性补全」为主轴v1.133.0 的 per-partition index 与 v1.137.0 起的 vmauth JWT/OIDC 体系是其中最值得深入研究的架构级演进值得按本指南逐条对照自身环境评估。【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetrics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表