NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #809 by repository stars
Last release 3 days ago
06 Oct 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 28 of 28 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
255 releases · first in 2025
One column per month.
Nothing published for this version
Nothing published for this version
FEATURE: querying: add the ability to return partial responses in VictoriaLogs cluster setup when some of the vlstorage nodes are unavailable. See the
Released at 2025-09-22
FEATURE: querying: add the ability to return partial responses in VictoriaLogs cluster setup when some of the vlstorage nodes are unavailable. See these docs for details. See #72.
FEATURE: LogsQL: add the ability to configure the number of parallel readers to use during query execution for reading the queried data from storage. This may help improve query performance for high-latency storage systems such as NFS, Ceph or S3. See these docs for details.
FEATURE: vlselect: add -storageNode.usernameFile command-line flag for dynamically reloading basic auth username for the corresponding -storageNode from the given file. See #459.
BUGFIX: /select/logsql/query endpoint at VictoriaLogs cluster: properly execute the query with the limit=N query arg. Such queries are issued by the built-in web UI for VictoriaLogs and by Grafana plugin for VictoriaLogs for returning the last N logs for the given query on the given time range. Previously, it could return unexpected results. The issue has been introduced in v1.30.0 while fixing #587.
BUGFIX: LogsQL: disallow incorrectly written filters such as foo = bar, foo != bar, foo > bar, etc. They must be written as foo:=bar, foo:!=bar, foo:>bar. See #590.
BUGFIX: LogsQL: allow using unquoted pipe names inside LogsQL filters. For example, fields.foo:bar is allowed now, while previously it should have been written as "fields.foo":bar. See #669.
BUGFIX: LogsQL: properly account for result_prefix in unpack_json, unpack_logfmt and unpack_syslog when determining the list of log fields to select. See #671.
BUGFIX: vlselect: avoid unexpected number of imported shards error in count_uniq and count_uniq_hash stats functions when vlselect and vlstorage instances have different numbers of CPU cores. See #682.
BUGFIX: properly delete unneeded directories at Ossfs2 filesystem. See #649. Thanks to @xiaozongyang for the initial pull request.
BUGFIX: all Enterprise version of VictoriaLogs: fix support for automatic issuing of TLS certificates for HTTPS server via Let's Encrypt service using TLS-ALPN-01 challenge. See Automatic issuing of TLS certificates for more info.
BUGFIX: all components: lower severity of the log message for unavailable Pressure Stall Information (PSI) metrics from ERROR to INFO level. See this issue for details.
BUGFIX: all components: properly expose metadata for summaries and histograms in VictoriaMetrics components with enabled -metrics.exposeMetadata cmd-line flag. See metrics#98 for details.
BUGFIX: OpenTelemetry ingestion: fix log processor name from "opentelelemtry_protobuf" to "opentelelemtry_protobuf". This changes the type label value for ingestion metrics such as vl_rows_ingested_total, vl_bytes_ingested_total, and vl_insert_flush_duration_seconds for OpenTelemetry data ingestion.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: LogsQL: optimize queries containing | offset X | limit Y for VictoriaLogs cluster. It also improves the performance of queries in vmui and Gr
Released at 2025-09-11
FEATURE: LogsQL: optimize queries containing | offset X | limit Y for VictoriaLogs cluster. It also improves the performance of queries in vmui and Grafana when retrieving sorted logs. See #620.
BUGFIX: /select/logsql/query endpoint: properly optimize the query execution when the limit query arg is set, while the offset query arg isn't set. It wasn't addressed properly in v1.33.0. See #620.
BUGFIX: /select/logsql/hits endpoint: take into account results from the union pipe while calculating log hits. See #641.
BUGFIX: /select/logsql/hits endpoint: take into account results from the join pipe while calculating log hits.
BUGFIX: Syslog data ingesting: keep nanosecond precision when parsing RFC3339 timestamp. See #303.
Nothing published for this version
FEATURE: `extract` pipe: the <...> placeholder now matches quoted strings in single quotes in addition to strings in double quotes and backticks. For
Released at 2025-09-10
FEATURE: extract pipe: the <...> placeholder now matches quoted strings in single quotes in addition to strings in double quotes and backticks. For example, the <login> placeholder at the ... | extract "login=<login>," now matches foo,bar for the log message with the text login='foo,bar'.
FEATURE: LogsQL: add pattern match filter for searching logs by the given patterns such as <DATETIME>: user_id=<N>, ip=<IP4>, trace_id=<UUID>. These filters are needed for #518.
FEATURE: Syslog data ingestion: support for receiving Syslog messages from Unix sockets of SOCK_STREAM and SOCK_DGRAM types via -syslog.listenAddr.unix=/path/to/socket and -syslog.listenAddr.unix=unixgram:/path/to/socket command-line flags. See #570.
BUGFIX: querying: -search.maxQueryTimeRange command-line flag now supports day (d), week (w) and year (y) suffixes in addition to the supported hour (h), minute (m) and second (s) suffixes. See #50.
BUGFIX: /select/logsql/query endpoint: improve query performance when the limit query arg is set, while the offset query arg is missing. The issue has been introduced in v1.28.0. See #620.
BUGFIX: /select/logsql/facets endpoint: prevent incorrect swap of hits and field_values fields in VictoriaLogs cluster. See #648.
BUGFIX: querying in VictoriaLogs cluster: properly handle queries with pipe executed only at the vlstorage side without the need to post-process at the vlselect side. The issue has been introduced in v1.31.0 while working on #52.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: LogsQL: add `split` pipe for splitting log fields by the given separator. It is useful for parsing CSV or tab-separated data stored in log va
Released at 2025-09-03
split pipe for splitting log fields by the given separator. It is useful for parsing CSV or tab-separated data stored in log values.running_stats pipe for calculating running sum, running min, running max and running count over query results.total_stats pipe for calculating global sum, global min, global max and global count over query results.json_values stats function via ... | stats json_values() sort by (...) syntax. The sorting can be combined with limit N to get the top N logs. For example, the following query returns up to the 3 most recent logs for every host over the last 5 minutes: _time:5m | stats json_values() sort by (_time desc) limit 3 as last_3_host_logs.foo=~"bar", foo~="bar", foo=bar, foo!=bar, foo>bar, foo==bar, etc. See #590.vl_storage_per_query_found_rows histogram at the /metrics page, which shows the number of log entries found per query.Nothing published for this version
Nothing published for this version
FEATURE: querying: add -search.maxQueryTimeRange command-line flag, which can be used for limiting resource usage by queries with too broad time range
Released at 2025-08-31
FEATURE: querying: add -search.maxQueryTimeRange command-line flag, which can be used for limiting resource usage by queries with too broad time range filters. See resource usage limits docs for details. See #50 and #611.
FEATURE: LogsQL: add query_stats pipe for analyzing query execution statistics. This pipe may help you understand why the given query is slow and how to optimize it. See #52.
FEATURE: querying: expose vl_storage_per_query_read_values histogram at the /metrics page, which shows the number of log field values read per query.
FEATURE: querying: expose vl_storage_per_query_read_timestamps histogram at the /metrics page, which shows the number of log timestamps read per query.
FEATURE: querying: expose vl_storage_per_query_uncompressed_values_processed_bytes histogram at the /metrics page, which shows the amount of bytes processed for uncompressed field values per query.
FEATURE: querying: expose vl_storage_per_query_processed_rows histogram at the /metrics page, which shows the number of log entries processed per query.
FEATURE: web UI: always sort field names in alphabetical order in the JSON view. This simplifies exploring logs with a large number of fields (such as wide events). See #87.
FEATURE: add /internal/partition/snapshot/create HTTP endpoint for creating instant snapshots for per-day partitions. See these docs for details.
FEATURE: add /internal/partition/snapshot/list HTTP endpoint, which returns the list of absolute paths to snapshots created via /internal/partition/snapshot/create. See these docs for details.
FEATURE: add /internal/partition/list HTTP endpoint, which returns the list of currently active partitions. See partition lifecycle docs for details.
BUGFIX: querying HTTP APIs: properly return VL-Request-Duration-Seconds HTTP response header from /select/logsql/query endpoint when it returns an empty result. Previously, this header wasn't set for empty results. This is needed for #602.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: HTTP querying APIs: return the actual query execution time in the VL-Request-Duration-Seconds HTTP response header. This will be used for dis
Released at 2025-08-27
FEATURE: HTTP querying APIs: return the actual query execution time in the VL-Request-Duration-Seconds HTTP response header. This will be used for displaying the query execution time at vlogscli, at the built-in web UI and at Grafana plugin for VictoriaLogs.
FEATURE: /select/logsql/stats_query_range and /select/logsql/hits: return VL-Selected-Time-Range HTTP response header, which contains the original time range specified in the query without taking into account start and end query args. The time range is returned as [start, end], where start and end are Unix timestamps in nanoseconds. This header is needed for built-in web UI in order to adjust the displayed time range to the time range specified by the user in the query. See #558.
FEATURE: /select/logsql/hits: take into account pipes, which do not modify the _time field, when calculating hits for the given query on the given time range. Previously, all the pipes in the query were ignored. This could lead to unexpected results. For example, * | extract "statusCode=<statusCode>," | filter statusCode:200 query was returning hits for all the logs instead of returning hits only for the logs containing the given statusCode. See this comment.
FEATURE: querying HTTP APIs: take into account all the pipes specified in the query when returning the requested field names, field values and log streams from /select/logsql/field_names, /select/logsql/field_values, /select/logsql/stream_field_names, /select/logsql/stream_field_values, /select/logsql/streams and /select/logsql/stream_ids HTTP endpoints. This makes the auto-completion results at the built-in web UI and at the Grafana plugin for VictoriaLogs more expected. See this comment.
FEATURE: web UI: show query execution time. See #602 for details.
BUGFIX: LogsQL: properly match newlines with '.' char in regular expressions used by extract_regexp and replace_regexp pipes. See #88.
BUGFIX: querying HTTP APIs: properly parse end query arg if it contains a numeric timestamp, which can be represented as RFC3339 timestamp with zero nanoseconds (e.g. only microseconds, milliseconds or seconds are non-zero). See #587.
BUGFIX: vlselect: return 502 Bad Gateway HTTP response code when one of the vlstorage servers is unavailable. Previously 400 Bad Request HTTP response code was incorrectly returned in this case. This helps build a proper failover scheme in high-availability setups for VictoriaLogs. See #576.
BUGFIX: web UI: fix incorrect logs sorting on the Group tab. See #579 for details.
BUGFIX: web UI: add button to control offset of live tailing. See #577 for details.
BUGFIX: web UI: escape value with double quotes when converting to a field filter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: introduce Enterprise version of VictoriaLogs. See the list of Enterprise features. See also #120.
Released at 2025-08-22
vl_total_disk_space_bytes metric at /metrics page, which shows the disk space size for the -storageDataPath directory. This metric can be used for calculating the percentage of the free disk space via the following MetricsQL query: vl_free_disk_space_bytes / vl_total_disk_space_bytes.generate_sequence pipe, which allows generating logs with messages containing integer sequence numbers. This pipe is useful for debugging and testing LogsQL pipes. See these docs.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: LogsQL: optimize queries ending with `| first N by (_time desc)` and `| last N by (_time)` in the same way as queried ending with `| sort by
Released at 2025-08-13
FEATURE: LogsQL: optimize queries ending with | first N by (_time desc) and | last N by (_time) in the same way as queried ending with | sort by (_time desc) limit N are optimized. This is a follow-up for #46.
FEATURE: LogsQL: add support for applying a global time offset to the <q> query via options(time_offset=<duration>) <q> syntax. This is useful for comparing query results on some time range to query results on the same time range with the given offset (similar to the offset modifier in PromQL). See these docs and #78 for details.
FEATURE: LogsQL: add | time_add <duration> pipe, which allows adding the given <duration> to _time field (and to any other field). See these docs. This is a part of #78.
FEATURE: LogsQL: speed up queries that select a large number of logs and end with | sort by (_time) desc offset M limit N pipe. These queries allow building simple pagination over the selected logs. See #96.
FEATURE: VictoriaLogs cluster: use HTTP POST instead of HTTP GET method for internal VictoriaLogs cluster communication to avoid hitting too long URI limits when too long queries are passed to VictoriaLogs. See #545.
FEATURE: Syslog data ingestion: support rsyslog high-precision timestamps. See #303.
BUGFIX: sort pipe: properly sort logs for | sort by (_time desc) limit N. Previously, they were incorrectly sorted in the ascending order of _time, instead of in the descending order of _time. The bug has been introduced in v1.27.0 when adding an optimized execution path for the | sort by (_time desc) limit N. See #46.
BUGFIX: /select/logsql/query: properly return limit=N logs when they have identical _time value. Previously, an empty result could be returned in this case.
BUGFIX: Syslog data ingestion: properly parse FreeBSD dialect of Syslog messages, which may miss hostname. See #571.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
SECURITY: upgrade Go builder from Go1.24.5 to Go1.24.6. See the list of issues addressed in Go1.24.6.
Released at 2025-08-08
SECURITY: upgrade Go builder from Go1.24.5 to Go1.24.6. See the list of issues addressed in Go1.24.6.
SECURITY: upgrade base docker image (Alpine) from 3.22.0 to 3.22.1. See Alpine 3.22.1 release notes.
FEATURE: LogsQL: speed up execution of queries that select a large number of logs and end with | sort by (_time) desc limit N pipe. These queries return up to N logs with the largest _time field values from a large number of selected logs (tens of millions and more). See #46.
FEATURE: web UI: update legend behavior in hits chart. The menu now opens on left-click, and visibility actions are moved to menu items. See #58.
FEATURE: web UI: add the ability to show stream context for each log line. See #113.
FEATURE: web UI: improve visibility of the Query History button. See #540.
FEATURE: Syslog data ingestion: add the ability to record the remote IP address from received syslog messages into the remote_ip log field. See these docs for details. Thanks to @biancalana for the pull request. See #40.
FEATURE: retention: support disk space percentage-based retention (-retention.maxDiskUsagePercent), which helps dynamically manage total disk space usage. Only one of -retention.maxDiskSpaceUsageBytes or -retention.maxDiskUsagePercent can be set; otherwise, the application will panic. See #513.
FEATURE: add the ability to dynamically attach and detach per-day partitions. This simplifies creating multi-tier storage schemes when recently ingested logs are stored on fast storage (such as NVMe or SSD), while historical logs are gradually migrated to less expensive storage with bigger capacity (such as HDD). See these docs and #432.
FEATURE: querying: expose vl_storage_per_query_processed_blocks histogram, which shows the number of data blocks processed per query. This histogram can be used for analyzing query performance issues. See #45.
FEATURE: querying: expose histograms on the number of bytes read from disk for various data types per query (see #45):
vl_storage_per_query_total_read_bytes - the total number of bytes read during query execution.vl_storage_per_query_values_read_bytes - the number of bytes read for log field values.vl_storage_per_query_timestamps_read_bytes - the number of bytes read for the _time field.vl_storage_per_query_bloom_filters_read_bytes - the number of bytes read for bloom filters (bloom filters are built from words seen in log fields and are used for quickly skipping blocks without the given words).vl_storage_per_query_block_headers_read_bytes - the number of bytes read for block headers (block headers contain various metadata about the data block).vl_storage_per_query_columns_headers_read_bytes - the number of bytes read for column headers (column headers contain information about column names in every data block).vl_storage_per_query_columns_header_indexes_read_bytes - the number of bytes read for column header indexes (these indexes contain the location of the per-column information in the column headers).FEATURE: data ingestion: expose additional metrics, which can be used for troubleshooting data ingestion performance issues (see #45):
vl_active_merges{type="indexdb/inmemory"} - the number of active merges for in-memory indexdb (indexdb is used for indexing log stream fields).vl_active_merges{type="indexdb/file"} - the number of active merges for file-based indexdb.vl_merges_total{type="indexdb/inmemory"} - the total number of background merges for in-memory indexdb parts.vl_merges_total{type="indexdb/file"} - the total number of background merges for file-based indexdb parts.vl_rows_merged_total{type="indexdb/inmemory"} - the total number of in-memory indexdb entries merged during the background merge.vl_rows_merged_total{type="indexdb/file"} - the total number of file-based indexdb entries merged during the background merge.vl_pending_rows{type="storage"} - the number of in-memory log entries, which were ingested, but weren't stored to disk yet.vl_pending_rows{type="indexdb"} - the number of in-memory indexdb entries, which were ingested, but weren't stored to disk yet.vl_merge_duration_seconds{type="storage/inmemory"} - the summary, which shows the duration of background merges for in-memory data parts.vl_merge_duration_seconds{type="storage/small"} - the summary, which shows the duration of background merges for small file-based data parts.vl_merge_duration_seconds{type="storage/big"} - the summary, which shows the duration of background merges for big file-based data parts.vl_merge_bytes{type="storage/inmemory"} - the summary, which shows the size of the created in-memory data parts.vl_merge_bytes{type="storage/small"} - the summary, which shows the size of the created small file-based data parts.vl_merge_bytes{type="storage/big"} - the summary, which shows the size of the created big file-based data parts.BUGFIX: web UI: fix broken "Collapse all" button in Group view. See #509. The bug has been introduced in v1.26.0.
BUGFIX: web UI: fix chart axis label color on theme switch. See #541.
BUGFIX: web UI: fix applying legend filter when using pipe filters. See #546.
BUGFIX: data ingestion: prevent from possible crash when ingesting logs for dates, which are concurrently removed because of the configured retention. See #505.
BUGFIX: data ingestion: support numbers and null in Loki structured metadata. See #547.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: vlogscli: add ability to configure auth options and TLS options for connections to the -datasource.url. See auth options docs and TLS options
Released at 2025-07-18
FEATURE: vlogscli: add ability to configure auth options and TLS options for connections to the -datasource.url. See auth options docs and TLS options docs. See this feature request. Thanks to @thom-vend for the initial pull request.
FEATURE: web UI: add the ability to hide the logs panel to view only the graph. When the logs panel is hidden, the /query request is not executed.
FEATURE: web UI: improve autocomplete functionality with enhanced quick autocomplete via hotkey support and removed special characters from autocomplete suggestions. See this comment for details.
BUGFIX: web UI: prevent groups from automatically expanding on list updates if all groups were previously collapsed. See #92.
BUGFIX: data ingestion: restore logging of too long ingested lines in order to simplify debugging of such cases. See #430. The regression has been introduced in v1.24.0-victorialogs.
BUGFIX: properly persist newly created data on unclean shutdown, such as power off, hardware crash or operating system crash. See #505.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →