- Add support for linode_sd_configs in vmagent and vmsingle for discovering scrape targets from Linode instances
- Add an option in vmui to customize the favicon color to distinguish between different installations opened in multiple browser tabs
- Reduce CPU usage up to 30% when matching relabeling rules with multiple if expressions containing exact metric names by skipping expressions for other metric names before evaluating their remaining label filters
- Extend vmalert -replay.continueWithExecutionErr to also handle the 400 Bad Request response code
- Set default value of -enableMultitenancyViaHeaders to true in vmselect and vminsert in VictoriaMetrics cluster and vmagent to enable multitenancy via headers support by default
- Avoid suggesting the unrelated -enableTCP6 command-line flag when scraping a target over a Unix domain socket fails in vmagent and vmsingle
- Skip labels with empty name at /api/v1/import in vmsingle and vminsert to prevent empty name labels from replacing the metric name
- Properly parse small fractional Unix timestamps in timestamp args such as start and end in /api/v1/query_range and vmctl filter time arguments
- Persist the previous working set cache during graceful shutdown in vmsingle, vmstorage and vmselect to prevent saving an empty or cold cache after split-mode cache rotation
- Upgrade Go builder from Go1.26.5 to Go1.26.6
From VictoriaMetrics
Released at 2026-08-14
Update Note 1: vmselect and vminsert in VictoriaMetrics cluster, and vmagent: default value of -enableMultitenancyViaHeaders command-line flag has changed from false to true. This change enables support of multitenancy via headers for cluster and for vmagent by default. With this change, mentioned components will start supporting URLs with omitted tenant ID in the path: https://<vmselect>:8481/select/prometheus/api/v1/query will become a valid URL. To disable multitenancy via headers and simplified URLs set --enableMultitenancyViaHeaders=false on vmagent, vminsert and vmselect.
-
SECURITY: upgrade Go builder from Go1.26.5 to Go1.26.6. See the list of issues addressed in Go1.26.6.
-
FEATURE: relabeling: reduce CPU usage up to 30% when matching relabeling rules with multiple
ifexpressions containing exact metric names. Expressions for other metric names are now skipped before evaluating their remaining label filters. See #11341. Thanks to @nevgeny for contribution. -
FEATURE: vmagent and vmsingle: add support for linode_sd_configs for discovering scrape targets from Linode instances. See #9118. Thanks to @cxdy for contribution.
-
FEATURE: vmalert: extend
-replay.continueWithExecutionErrto also handle the400 Bad Requestresponse code, since it is used for Prometheus querying API requests when request parameters are missing or incorrect. See #11352. -
FEATURE:
vmselectandvminsertin VictoriaMetrics cluster, andvmagent: set default value of-enableMultitenancyViaHeaderstotrue. This change enables support of multitenancy via headers for cluster and for vmagent by default, aligning VictoriaMetrics multitenancy behavior with multitenancy in VictoriaLogs. See related ticket #11365. -
FEATURE: vmui: add an option to customize the favicon color. This makes it easier to distinguish between different installations opened in multiple browser tabs. See #11329.
-
BUGFIX: vmagent and vmsingle: avoid suggesting the unrelated
-enableTCP6command-line flag when scraping a target over a Unix domain socket fails. See #11320. Thanks to @lwmacct for contribution. -
BUGFIX: vmsingle and
vminsertin VictoriaMetrics cluster: skip labels with empty name at /api/v1/import. Previously such a label replaced the metric name, so a series sent with"metric":{"__name__":"foo","":"bar"}was stored under the namebar. Other ingestion protocols already skip such labels. See #4962. Thanks to @Vandit1604 for contribution. -
BUGFIX: vmsingle,
vmselectin VictoriaMetrics cluster and vmctl: properly parse small fractional Unix timestamps in timestamp args such asstartandendin/api/v1/query_rangeand--vm-native-filter-time-startand--vm-native-filter-time-endinvmctl. Previously, fractional Unix timestamps with the integer part below9223372were interpreted with the wrong unit, for example12.0was parsed as12000seconds instead of12seconds. See #11324. -
BUGFIX: vmsingle,
vmstorageandvmselectin VictoriaMetrics cluster: persist the previous working set cache during graceful shutdown when it is likely to contain the active working set. This prevents saving an empty or cold current cache right after split-mode cache rotation, which could otherwise slow down ingestion or queries after restart until the cache warms up again. See #11299. -
BUGFIX: vmsingle and
vmselectin VictoriaMetrics cluster: change the HTTP response code for Prometheus querying API requests from422 Unprocessable Entityto400 Bad Requestwhen request parameters are missing or incorrect. See #11330. -
BUGFIX: vmui: respect the custom query step specified via
g0.step_inputwhen opening a URL. Previously, it could be reset to the automatically calculated step and potentially cause dashboards to freeze. See #11137. -
BUGFIX: vmagent and vmsingle: properly assign scrape target IP address at IPv6-only networks for docker_sd_configs. See #10965.
-
BUGFIX: vmalert: rename
vmalert_rule_group_results_limitback tovmalert_group_rule_results_limit. The metric was introduced in v1.147.0 but was accidentally given the wrong name. See #11179. -
BUGFIX: vmalert: properly update group-level
eval_delayandeval_alignmentfor existing groups during runtime when config reload is triggered periodically or manually via/-/reload. Previously, these settings weren't updated after config reload during runtime. See #11374. -
BUGFIX:
vmselectin VictoriaMetrics cluster: scale the default-search.maxConcurrentRequestswith the number of available CPU cores instead of capping it at 16. See #11191. Thanks to @Dhru1Tanna for contribution.