Releases: VictoriaMetrics/VictoriaLogs
Release list
v1.52.0
Released at 2026-07-16
Update note 1: the base Docker image has been changed from Alpine to distroless in order to reduce an attack surface (The distroless base image doesn't contain any executables contrary to the Alpine base image). For debugging VictoriaLogs containers in Kubernetes it is recommended to use kubectl debug.
Update note 2: VictoriaLogs no longer provides a Docker image for the linux/386 platform because the distroless base image doesn't support this platform. Executable files for linux/386 platform are still published at the VictoriaLogs releases page.
-
SECURITY: upgrade Go builder from Go1.26.4 to Go1.26.5. See the list of issues addressed in Go1.26.5.
-
FEATURE: switch base Docker image from Alpine to distroless for VictoriaLogs,
vlagentandvlogscli. This reduces the image size and attack surface. See #1228. -
FEATURE: LogsQL: add
json_array_concatpipe for joining JSON array items stored in the given log field into a string with the given delimiter. See #712. -
FEATURE: data ingestion: adjust
_streamfield value according to the actual log fields. This simplifies importing of previously modified VictoriaLogs-exported data. See #1122. -
FEATURE: vlagent: add
-remoteWrite.basicAuth.usernameFilecommand-line flag for dynamically reloading basic auth username for the corresponding-remoteWrite.urlfrom the given file. See operator#2371. -
FEATURE: web UI: improve hits chart tooltip timestamp display by hiding excessive precision. See #1533.
-
FEATURE: web UI: add Quick start examples to autocomplete suggestions and show recent query history items alongside field and value suggestions. See #1498.
-
FEATURE: web UI: persist query history in browser local storage and show the last run time for history items. See #1498.
-
FEATURE: web UI: improve hits chart interval selector by using curated interval options and choosing a more suitable default step for the selected time range. See #1511.
-
FEATURE: web UI: sync grouping in raw logs panel with Hits chart. Raw Logs are no longer grouped by
_streamby default, and both panels now use the sameGroup bysetting. See #1534. -
FEATURE: web UI: persist the selected auto-refresh interval in the URL. See #1310.
-
BUGFIX: LogsQL: fix panic when using
uniq_values()in thestatspipe in VictoriaLogs cluster when somevlstoragenodes return no values for the requested field while othervlstoragenodes return values for the same group. See #1383. -
BUGFIX: LogsQL: properly select the top
Nlog entries in thejson_valuesstats function withsort by (...) limit Nwhen more thanNlogs match per group. Previously an arbitrary subset of the matching logs could be returned instead of the topNones. The returned entries were correctly sorted, but they could be the wrong entries. See #1311. -
BUGFIX: syslog data ingestion: avoid stamping RFC3164 messages received right after the new year with the previous year (which could drop them under a short
-retentionPeriod), and compute the year in-syslog.timezoneinstead of the server local timezone. See #1556. -
BUGFIX: LogsQL: fix
field_namespipe not respectinghidden_fields_filters. Fields listed inhidden_fields_filtersstill appeared infield_namesoutput, leaking their existence to the caller. See #1574. -
BUGFIX: LogsQL: fix a
vlselectcrash in cluster mode on some valid queries. This happened when amathpipe operand had the same name as a function (such asabs,roundorfloor), or whenfromwas used as a separator in thesplitpipe. See #1518. -
BUGFIX: LogsQL: allow
filterpipes without thefilterprefix when the filter starts with a non-word token or thenotkeyword, such as... | !foo,... | {host="x"},... | >5,... | =fooor... | not foo. These were unintentionally rejected withunexpected pipein v1.51.0. A non-word token (and thenotoperator) cannot clash with a pipe name, so it is unambiguously a filter. See #1522. -
BUGFIX: LogsQL: reject
field*wildcards in the comma-separated (no parens) form ofuniq,topandunrollpipes, consistently with their parens form, which already rejects wildcards. Previously a query such asuniq by foo*was accepted but could not be parsed back from its string representation. See #1487. -
BUGFIX: cluster version:
vlstoragenow returns the error and stops processing an/internal/select/*request when the request cannot be parsed, instead of continuing to handle it and writing the response twice. -
BUGFIX: cluster version: bump the internal protocol version for the delete endpoints, which switched to multipart encoding in v1.51.0 but kept the previous version. A version mismatch between
vlselectandvlstoragefor delete requests is now reported instead of silently mishandled. All cluster components must be upgraded together to use delete. -
BUGFIX: cluster version: avoid
cannot connect to storage node at ...: EOFerrors aftervlselectorvlinsertwas idle for more than 60 seconds. See #1440. -
BUGFIX: vlselect: respect
-search.maxQueueDurationfor queued requests. Previously, when the number of concurrent requests exceeded-search.maxConcurrentRequests, the extra requests could be queued for much longer than-search.maxQueueDuration(up to-search.maxQueryDuration) before being rejected, so a few slow queries could stall other requests for everyone. See #1554. -
BUGFIX: vlselect: properly register
-vmalert.proxyURLas a secret flag. Previously, this flag was registered after logger initialization and printed in plaintext on application startup. -
BUGFIX: vlselect: return
502 Bad GatewayHTT...
v1.51.0
Released at 2026-06-17
Update Note 1: LogsQL: disallow using filter pipes without the filter prefix if the filter doesn't start with field_name: prefix. For example, foo | bar is disallowed now. It must be rewritten to one of the following equivalents: foo bar, foo | "bar", foo | _msg:bar or foo | filter bar. This reduces the chances of incorrectly written queries like in the #1454. However, this may be a breaking change if you have queries that filter without the filter prefix, such as ... | !foo, ... | {host="x"}, ... | >5 or ... | =foo - these now fail with unexpected pipe and must add the filter prefix (e.g. ... | filter !foo).
Update Note 2: cluster version: this release bumps the internal vlselect and vlstorage protocol version (see the queries-longer-than-10MB fix in #1462). A version mismatch between vlselect and vlstorage fails the request, so queries are expected to fail during a rolling upgrade while the cluster runs mixed versions. All the cluster components must be upgraded to this release or newer.
-
SECURITY: upgrade Go builder from Go1.26.2 to Go1.26.4. See the list of issues addressed in Go1.26.3 and the list of issues addressed in Go1.26.4.
-
FEATURE: vmalert: add
-vmalert.proxyURLcommand-line flag, which allows proxying/select/vmalert/*requests from VictoriaLogs tovmalert. See #90 and these docs. -
FEATURE: metrics: expose filesystem type for storage paths via the
vm_fs_infometric. This helps identify filesystem-specific issues during troubleshooting. See #1435. -
FEATURE: LogsQL: allow putting
;in the end of the query. This is useful for detecting the end of multi-line query. -
FEATURE: LogsQL: add
coalescepipe, which returns the first non-empty value from the given list of fields. This is useful when the same value may be stored under different field names across logs, such asuser_id,usernameoremail. The pipe can also return a default value when all the fields are empty. See #690. Thanks to @warkadiusz for the pull request #904. -
FEATURE: querying API: allow using
limitandoffsetpipes after thestatspipe in queries to/select/logsql/stats_query. This enables the usage for these pipes in alerting and recording rules for VictoriaLogs. See #1296. -
FEATURE: alerts: add new alerting rules
PersistentQueueRunsOutOfSpaceIn12HoursandPersistentQueueRunsOutOfSpaceIn4Hoursforvlagentpersistent queue capacity. These alerts help users to take proactive actions beforevlagentstarts dropping logs due to insufficient persistent queue space. See #10193 -
FEATURE: web UI: remove the
Date formatsetting and always display timestamps with nanosecond precision. See #1161. -
FEATURE: web UI: add search for filtering fields by name and value in expanded log entries in the Group tab. See #1378
-
FEATURE: web UI: rename the "Filters" button to "Show/Hide filters" and update its icon. See #1247.
-
FEATURE: web UI: rename field
Query timetoHits queryon the Hits chart panel. The change makes it clear duration of which query is displayed. -
FEATURE: web UI: add log level detection for displayed log entries. This feature can be toggled in the Group View settings. See #1245.
-
FEATURE: web UI: support nanosecond precision for timestamps. This allows selecting time ranges and displaying log timestamps without rounding them to milliseconds. See #745.
-
FEATURE: web UI: improve
Log contextwindow user experience:- change sorting from older (top) to newer (bottom) log entries to make the experience similar to browsing logs in the shell;
- replace manual load newer/older controls with an infinite scroll. The scroll will automatically search for logs before or after gradually extending the search window for up to 7d. See #1397.
- display warning if there are logs with identical timestamps, as their sorting order can't be guaranteed. Such logs will be additionally highlighted in the list.
-
FEATURE: dashboards/kubernetes-explorer: add new dashboard for exploring Kubernetes logs via VictoriaLogs datasource in Grafana. Thanks to @sias32 for the contribution!
-
FEATURE: File Collector: enhance glob pattern support with additional syntax: double-star
/**/for matching nested directories (e.g./var/log/**/*.log), alternatives{a,b}for matching multiple specific names (e.g.{access,error}.log), character classes[a-z]and?wildcard for single-character matching. See #1393 and these docs for the full pattern syntax reference. -
BUGFIX: VictoriaLogs cluster: return a clear error message when
vlselectrequests cannot be parsed byvlstorage. Previously the unclear error was generated whenvlselectsends too long query tovlstorage:unexpected protocol version=""; want "v4". See #1462. -
BUGFIX: VictoriaLogs cluster: properly send and parse queries longer than 10MB, which are sent from
vlselecttovlstorage. Such a long queries may be generated if they contain a subquery filter, which expands to a long list of items. See #1462. -
BUGFIX: LogsQL: fix
unrollpipe andjson_array_lenpipe ignoring JSON arrays preceded by whitespace. See #1427. -
BUGFIX: LogsQL: properly calculate
rate()andrate_sum()stats functions in cluster mode for queries grouped by_timebuckets, such as... | stats by (_time:5m, status) rate(). Previously these functions could divide results by the whole query time range instead of the_timebucket duration, which could make Grafana range query values unexpectedly low. See #1451. -
BUGFIX: LogsQL: allow
unpack_jsonto parse JSON objects starting with spaces. See #1416. -
BUGFIX: LogsQL: properly quote field filter values whose leading token is a reserved keyword such as
in, so the query can be parsed back from its string representation. See #1434. -
BUGFIX: [vlagent](https://docs.victoriame...
v1.50.0
v1.50.0
Released at 2026-04-14
-
SECURITY: upgrade Go builder from Go1.26.1 to Go1.26.2. See the list of issues addressed in Go1.26.2.
-
FEATURE: data ingestion: add an ability to send logs via Splunk data ingestion protocol. See these docs. See #710.
-
FEATURE: vlagent: add an ability to collect logs from arbitrary files by specifying the glob pattern. See these docs and #1195.
-
FEATURE: LogsQL: improve validation for
stats switch(...)by rejecting emptyswitch()expressions and multipledefaultbranches. This helps catch invalid queries earlier and avoids confusing results. See #1300. -
FEATURE: LogsLQ: add an ability to search across multiple log fields with the
field_name_prefix*:filtersyntax. See these docs for details. See #82. -
FEATURE: Loki data ingestion: Add an ability to add the given prefix to log field names parsed from JSON message. This may be used for avoiding clash between log stream labels and the automatically parsed log field names. See these docs for details. See #1127.
-
FEATURE: Datadog: support default Datadog ingestion paths such as
/api/v2/logsand/api/v1/validatein addition to the existing/insert/datadog/...paths. This eliminates the need to put vmauth in front of VictoriaLogs for adding/insert/datadog/prefix to the paths requested by DataDog agent. -
BUGFIX: LogsQL: properly return the field value for the log with the maximum
_timefield fromfield_max(_time, field). Previously incorrect value could be returned. See #1294. -
BUGFIX: LogsQL: properly return the log entry with the maximum
_timefield fromrow_max(_time). Previously incorrect log could be returned. -
BUGFIX: LogsQL: consistently match logs on the interval
[t-d ... t)when using_time:dfilter at the timestampt. This aligns with the semantics ofstartandendquery args at querying API, which select logs on the[start ... end)time range. This also makes more consistent and expected the results returned from vmalert. See #1226 and #9753 at VictoriaMetrics. -
BUGFIX: LogsQL: return a parse error for invalid weekday names in the
week_rangefilter. Previously they were silently treated asSunday, which could lead to incorrect query results. See #1269. -
BUGFIX: Datadog data ingestion: properly ingest logs with tags without values, such as
env:prod,foo, by storingfoowith theno_label_valuevalue. Previously this could crash VictoriaLogs during log ingestion. See #1303. -
BUGFIX: Kubernetes Collector: honor
-defaultMsgValuefor logs without message fields. Previouslyvlagentstored the hard-codedmissing _msg field; ...text instead of the configured value when logs were collected viakubernetesCollector. See #1283. -
BUGFIX: /select/logsql/hits: fix
invalid memory address or nil pointer dereferencepanic when thequerypassed to/select/logsql/hitscontainsunion rows(...). The panic has been introduced in v1.49.0. -
BUGFIX: /select/logsql/hits: fix panic when the internal
statspipe generated for this endpoint useshitsboth as a grouping field and as the result name. See #1278. -
BUGFIX: OpenTelemetry data ingestion: replace custom
severityfield withseverity_numberandseverity_textto be compatible with other solutions. See #1246. -
BUGFIX: vlagent: hide sensitive values passed via
-remoteWrite.headersin/metrics,/flags, and startup logs. Previously these values could be exposed in plain text. -
BUGFIX: storage: fix
cannot read directory contents: open ... .DS_Store: not a directorypanic when restarting VictoriaLogs on MacOS. See #996. -
BUGFIX: partitions lifecycle: fix querying logs after detaching, removing and then re-creating the same per-day partition before VictoriaLogs restart. Previously newly ingested logs could be missing from normal queries and from
_stream:{...}filters until restart. See #657. -
BUGFIX: web UI: fix incorrect border colors. The issue was introduced in v1.49.0. See #1271.
v1.49.0
v1.49.0
Released at 2026-04-03
-
FEATURE: web UI: make legend click perform default action (hide/show series) and move additional actions to hover context menu.
-
FEATURE: web UI: improve alert component and simplify error messages for stats view. See #1128.
-
FEATURE: web UI: use
extra_filtersinstead of modifying query when adding legend filters. See #411. -
FEATURE: web UI: support CSV format for logs download See #1143.
-
FEATURE: web UI: add include/exclude filter actions for log fields in log details. See #369.
-
FEATURE: web UI: add a query examples modal with categories. See #1085.
-
FEATURE: data ingestion: accept logs with the correctly formatted
_streamfield. This allows importing raw logs received from/select/logsql/queryendpoint, without the need in additional transformations. See #1122. -
FEATURE: data ingestion: verify the
_streamfield correctness when ingesting data via native and internal protocols (nativeprotocol is used byvlagentfor sending the data to VictoriaLogs, whileinternalprotocol is used byvlinsertfor sending the data tovlstoragein VictoriaLogs cluster ). See #38. -
FEATURE: data ingestion: introduce
/insert/multitenant/nativeendpoint for accepting logs with mixed tenants fromvlagentaccording to these docs. Previouslyvlagentwas using/internal/insertendpoint for sending logs with mixed tenants. It is recommended using/insert/multitenant/nativeendpoint instead, since/internal/insertendpoint is intended for internal communcations betweenvlinsertandvlstoragein cluster mode. See #1189. -
FEATURE:
/select/logsql/queryHTTP endpoint: allow returning results in CSV format for arbitrary query without any restrictions according to these docs. See See #1143. -
FEATURE: LogsQL: support
switch(case ..., default ...)syntax syntax insidestatspipe for calculating the stats for logs matching the given set of filters. See these docs for more details. See #1184. -
FEATURE: LogsQL: add an ability to set global filters, which must be applied to all the subqueries in the current query, via
global_filteroption. See #1183. -
FEATURE: LogsQL: add an ability to enrich the selected logs with pre-defined static fields. See these docs for details.
-
FEATURE: LogsQL: add an ability to append pre-defined static rows to the selected logs. See these docs for details.
-
FEATURE: LogsQL: add
stddevstats function for calculating standard deviation over the given log fields. See #41. -
FEATURE: LogsQL: add an ability to filter the field names returned from the
field_namespipe by usingfield_names filter "substring"syntax - it returns field names containing the givensubstring. -
FEATURE: LogsQL: add an ability to filter the field values returned from the
field_valuespipe by usingfield_values some_field filter "substring"syntax - it returns values containing the givensubstringfor the givensome_field. -
FEATURE:
/select/logsql/field_namesHTTP endpoint: add support for an optionalfilter=substringquery arg, which allows returning only the field names containing the givensubstring. See #1186. -
FEATURE:
/select/logsql/field_valuesHTTP endpoint: add support for an optionalfilter=substringquery arg, which allows returning only the field values containing the givensubstring. See #1186. -
FEATURE:
/select/logsql/stream_field_namesHTTP endpoint: add support for an optionalfilter=substringquery arg, which allows returning only the field names containing the givensubstring. See #1186. -
FEATURE:
/select/logsql/stream_field_valuesHTTP endpoint: add support for an optionalfilter=substringquery arg, which allows returning only the field values containing the givensubstring. See #1186. -
BUGFIX: /select/logsql/query: fix panic when exporting query results in CSV format if a field contains multiple quoted segments. See #1220.
-
BUGFIX: data ingestion: properly handle the case when the ingested logs contain
_timefield without the real timestamp, and this field is not mentioned in the_time_fieldquery arg or in theVL-Time-Fieldrequest header according to these docs. Previously this could lead to unexpected errors during querying such asmissing _time field in the query results. See #1168. -
BUGFIX: data ingestion: eliminate the data race, which could lead to improper update for the
vl_rows_merged_total{type="storage/inmemory"}andvl_merge_bytes{type="storage/inmemory"}metrics. See #836. -
BUGFIX: delete API: properly evaluate relative
_timefilters for delayed delete tasks according to the task start time instead of the later execution time. Previously this could lead to deleting an unexpected time range or to deleting nothing. See #1213. -
BUGFIX: LogsQL: properly apply query options at
vlselectin cluster setup. Previously the options were sent tovlstorage, but were ignored atvlselect. This could lead to incorrect query results. -
BUGFIX: LogsQL: fix
count_uniq()andcount_uniq_hash()in cluster setup forvlstoragenodes with 128 or more CPU cores. Previously such queries could fail during state merge atvlselectwith errors such ascannot import state for count_uniq(...). See [#1225](https://github.com/VictoriaMetrics/VictoriaLogs/...
v1.48.0
Released at 2026-03-11
-
SECURITY: upgrade Go builder from Go1.26.0 to Go1.26.1. See the list of issues addressed in Go1.26.1.
-
FEATURE: web UI: add a sidebar for quick filtering by log stream fields and values. See #1084.
-
FEATURE: Kubernetes Collector: add an ability to include Namespace labels and annotations in log entries. This metadata is also available for filtering via
-kubernetesCollector.excludeFiltercommand-line flag. See #1158 and these docs for details. -
FEATURE: publish SPDX SBOM attestations for container images on
docker.ioandquay.io. See SECURITY.md, #1102. -
FEATURE:
/select/logsql/queryendpoint: support returning query results in CSV format whenformat=csvquery arg is passed to this endpoint according to these docs. This functionality is going to be used for downloading query results as CSV files in the built-in web UI for VictoriaLogs. See #1143. -
FEATURE: LogsQL: add support for
offsetmodifier tofirstandlastfunctions at thetotal_statspipe. -
FEATURE: LogsQL: add
lastfunction at therunning_statspipe. This can be used for comparing sequential log field values. See #932. -
FEATURE: querying: allow limiting the length of the query, which can be passed to querying endpoints, with
-search.maxQueryLencommand-line flag. This flag can be used for preventing from excess resource usage, which could be needed for parsing and processing too long queries. See #1159. -
FEATURE: querying: support the ability to ignore pipes in the
querypassed to HTTP querying enpoints ifignore_pipes=1query arg is passed there. This is needed for implementing the filtering by log stream fields in #1084. See #1156. -
FEATURE: data ingestion: skip logs with
_streamor_stream_idfields, since these fields clash with the automatically generated fields by VictoriaLogs according to these docs. VictoriaLogs generates a warning per each such skipped log, so it could be noticed and fixed by users. See #1122. -
BUGFIX: LogsQL: fix panic when executing the query
_stream_id:in. See #1136. -
BUGFIX: fix VictoriaLogs Docker OCI labels
org.opencontainers.image.sourceandorg.opencontainers.image.documentation: point them to VictoriaLogs repo/docs instead of VictoriaMetrics. -
BUGFIX: Kubernetes Collector: fix spurious
cannot parse WatchEvent json response: EOFerrors in logs. These errors were harmless but could cause confusion when monitoring application health. -
BUGFIX: LogsQL: preserve existing target field values for
extract if (...)andextract_regexp if (...)when theif (...)condition doesn't match. See #1153. -
BUGFIX: web UI: fix incorrect bar width in the Hits graph in Stats view mode. See #1149.
-
BUGFIX: vlagent: include missing
_timefield for outgoing logs when using jsonline format. Previously,vlagentomitted the_timefield when sending logs to remote storage in this format.
v1.47.0
Released at 2026-02-25
-
FEATURE: LogsQL: add
json_array_contains_anyfilter for matching fields containing JSON arrays by the presence of the given values in the array. This is useful for JSON-encoded logs containing fields such astags=["prod","canary"]. See #853. Thanks to @caicancai for the pull request #1080. -
FEATURE: LogsQL: add
firstandlastfunctions tototal_statspipe. This can be used for analysis of a sequence of events. See #932. -
FEATURE: LogsQL: add
any,field_maxandfield_minfunctions tostatspipe. -
FEATURE: LogsQL: allow using
total_stats by (...)with fields that are a subset of labels produced by the precedingstatspipe in/select/logsql/stats_queryand/select/logsql/stats_query_range. See #1088. -
FEATURE: web UI: add an
Intervalselector instead ofBarsfor the logs hits chart. See #1054. -
FEATURE: web UI: add ability to set the time range by clicking on a graph bar. See #1057.
-
FEATURE: web UI: add minimum drag threshold for graph zoom selection. See #1057.
-
BUGFIX: LogsQL: fix panic for valid query
_msg:~"."in VictoriaLogs cluster. See #1132. -
BUGFIX: web UI: fix autocomplete popper positioning. The regression has been introduced in v1.46.0.
-
BUGFIX: web UI: fix select dropdown width. The regression has been introduced in v1.46.0.
v1.46.0
Released at 2026-02-23
-
FEATURE: upgrade Go builder from Go1.25.7 to Go1.26.0. See Go 1.26 release notes.
-
FEATURE: querying: sort response fields by their name unless the query ends with a pipe, which preserves the order of the returned fields such as
fieldsandstats. Previously the order of the returned fields was undefined. See #1011. -
FEATURE: vlagent: add an ability to send logs to remote storage in
jsonlineformat. This is useful for sending logs to other systems (for example, Vector, Fluent Bit, ClickHouse). See these docs for more details. -
FEATURE: web UI: add support for resizing and reordering columns in Table View. See #76 and #714.
-
FEATURE: web UI: improve group view readability with zebra rows. See #1058.
-
FEATURE: web UI: add
noneoption for hit chart grouping and set it as the default. See #1086. -
FEATURE: web UI: change group-by toggle behavior to clear grouping instead of resetting it to
_stream. See #1059. -
FEATURE: web UI: add stream fields chips to the Log context modal. See #1065.
-
BUGFIX: LogsQL: prevent from
cannot parse already verified regexppanic when special regexp is passed to regexp filter. See #1112. -
BUGFIX: web UI: fix markdown parsing for log lines starting with tabs in group view.
-
BUGFIX: web UI: fix timestamp rendering according to the selected timezone. See #63.
-
BUGFIX: web UI: fix copy action to copy only selected columns instead of the full log entry.
-
BUGFIX: web UI: fix auto-suggest popup description panel changing when moving the mouse from a hovered item to the description. The description panel is now displayed to the right of the options list, so navigating to it no longer triggers hover events on other list items. See #1117.
v1.45.0
Released at 2026-02-05
-
SECURITY: upgrade Go builder from Go1.25.6 to Go1.25.7. See the list of issues addressed in Go1.25.7.
-
SECURITY: upgrade base docker image (Alpine) from 3.23.2 to 3.23.3. See Alpine 3.23.3 release notes.
-
FEATURE: dashboards/single-node, dashboards/cluster: add clickable source code links to the
VictoriaLogs internal loggingpanel inOverview. Users can use it to navigate directly to the source code location that generated those logs, making debugging and code exploration easier. See #1074. -
FEATURE: LogsQL: add
ipv6_rangefilter for filtering logs by IPv6 address fields and CIDR ranges. This is an IPv6 counterpart to the existingipv4_rangefilter and allows efficient matching over stored IPv6 addresses. See #84. Thanks to @caicancai for the implementation. -
FEATURE:
/select/logsql/stats_query_rangeendpoint: support optionaloffsetquery arg, which can contain timezone offset for the returned timestamps. This is needed for the consistency with the/select/logsql/hitsendpoint. -
FEATURE: dashboard/single-node and dashboard/cluster: improve and fix dashboard descriptions, make them more compatible with the Prometheus datasource, and add a
clustervariable for easier selection of components from the same cluster. See #933. -
FEATURE: web UI: add the
offsetparameter so bar chart data is aligned with the user-selected timezone. See #1039. -
FEATURE: web UI: add support for toggling line comments with
Ctrl/Cmd + /. See #1030. -
BUGFIX:
/select/logsql/hitsendpoint: properly applyoffsetarg. Previously it resulted in incorrect calculations for the returned timestamps. -
BUGFIX: Loki data ingestion: properly parse JSON-encoded log fields inside Loki log message if it ends with whitespace chars such as
\n. See #1044. -
BUGFIX: dashboard/single-node: include
internalinsert(/internal/insert) inLogs ingestion ratepanels, so they work for data ingested viavlagentconfigured with-remoteWrite.url=.../internal/insert. See #1053. -
BUGFIX: web UI: fix autocomplete insertion to prevent overwriting remaining input and preserve newline characters. See #917.
-
BUGFIX: web UI: fix unexpected query expression reset to the previous value when clicking on "Hide chart" button. See #1063.
-
BUGFIX: web UI: fix cumulative bar chart by carrying over previous value for nullish bars. This ensures that the cumulative bar chart doesn't decrease over time.
-
BUGFIX: web UI: fix missing first bar when it starts before the selected range but ends within it.
-
BUGFIX: web UI: fix redundant
/select/logsql/query_time_rangerequests. -
BUGFIX: web UI: fix responsive layout and styles.
v1.44.0
v1.44.0
Released at 2026-01-27
-
SECURITY: upgrade base docker image (Alpine) from 3.22.2 to 3.23.2. See Alpine 3.23.2 release notes.
-
SECURITY: upgrade Go builder from Go1.25.5 to Go1.25.6. See the list of issues addressed in Go1.25.6.
-
FEATURE: add an ability to delete snapshots via
/internal/partition/snapshot/deleteendpoint. See these docs and #828. -
FEATURE: add an ability to delete stale snapshots via
/internal/partition/snapshot/delete_stale?max_age=<d>endpoint. Snapshots older than<d>are automatically deleted. For example,max_age=1dremoves snapshots older than one day. See these docs. -
FEATURE: add an ability to automatically delete stale snapshots older than the value passed to
-snapshotsMaxAgecommand-line flag. See #829 and these docs. Thanks to @withlin for the initial implementation. -
FEATURE: add an ability to create snapshots for multiple per-day partitions matching the given
partition_prefixpassed to/internal/partition/snapshot/create. For example,/internal/partition/snapshot/create?partition_prefix=202601creates snapshots for all the active per-day partitions for January 2026. -
FEATURE: Journald data ingestion: add
-journald.useRemoteIPflag for saving the remote IP address in theremote_ipfield. Thanks to @NaturalSpottingSmite for the pull request. -
FEATURE: data ingestion: add an ability to avoid flattening of JSON values for the given keys enumerated via
preserve_json_keysquery arg or viaVL-Preserve-JSON-Keyshttp request header. This may be useful if the input JSON-encoded logs contain high-cardinality key names such assku-*in the{"items":{"sku-1":{...},...,"sku-N":{...}}}. Thenpreserve_json_keys=itemswould preserve theitemsfield value as is, e.g. it will be equal to the string{"sku-1":{...},...,"sku-N":{...}}. See more details about these options at these docs and at #1002. -
FEATURE: dashboards/internal: add Grafana dashboard for monitoring VictoriaLogs internal state. The source of the dashboard is available here.
-
FEATURE: LogsQL: add
pattern_match_prefix()andpattern_match_suffx()filters for matching the given pattern at the beginning or at the end of the log field value. See these docs and #762. -
FEATURE: Kubernetes Collector: add an ability to change default
_streamfields via-kubernetesCollector.streamFieldscommand-line flag. See #998. -
FEATURE: querying HTTP API: accept
steparg with nanosecond precision at/select/logsql/hitsand/select/logsql/stats_query_rangeendpoints. Previously these endpoints were accepting thestepquery arg only with millisecond precision. -
FEATURE: web UI: add pipe titles with links to docs.victoriametrics.com in autocomplete popup.
-
FEATURE: web UI: add a cumulative view option to hits bar chart. See #955.
-
FEATURE: web UI: add configurable bar count for hits chart. See #956.
-
BUGFIX: LogsQL: properly apply time offset according to the docs for the
day_rangeandweek_rangefilters. Previouslyoffset 2hwas incorrectly translated into-02:00timezone offset instead of the expected+02:00timezone offset. See #796. -
BUGFIX: LogsQL: use local time zone for the VictoriaLogs server when the
day_rangeorweek_rangefilter doesn't contain explicitly specifiedoffset ...suffix. This aligns with the behaviour when the timezone information is missing in the_timefilter. -
BUGFIX: LogsQL: fix panic when executing
"_stream":="","_stream_id":=""or"_time":fooqueries. See #717. Thanks to @withlin for the pull request. -
BUGFIX: web UI: fix bars width calculation and visual misalignment relative to time axis. See #900.
-
BUGFIX: metrics: fix
vl_http_errors_total{path="..."}metric name mismatch for/internal/select/*endpoints (it was exposed asvl_http_request_errors_total{path="..."}). See #1005. -
BUGFIX: Kubernetes Collector: add support for dynamic token and certificates reloading. Previously, vlagent only read credentials at startup, which led to authentication errors after token rotation. See #995.
-
BUGFIX: Kubernetes Collector: properly parse Kubernetes system log timestamps. This prevents future logs issues that occurred during the New Year transition.
-
BUGFIX: Kubernetes Collector: add additional file fingerprint validation when resuming from a stale checkpoint file. This prevents
cannot parse Container Runtime Interface log lineerrors that could occur if multiple log rotations happened while vlagent was down. -
BUGFIX: HTTP data ingestion: properly handle empty items in comma-separated HTTP ingestion params such as
VL-Stream-Fields,VL-Time-Field,VL-Msg-Field,VL-Ignore-FieldsandVL-Decolorize-Fields. Previously, empty items inVL-Stream-Fields(e.g.foo,,bar) could unexpectedly add_msgto stream fields and lead to unexpectedly high number of log streams. See #966.
v1.43.1
Released at 2025-12-26
- BUGFIX:
/select/logsql/facetsendpoint: fixexpecting 3 columns; got 4 columnspanic when/select/logsql/facetsendpoint is queried at cluster version of VictoriaLogs. See #940. The issue has been introduced in this commit in the release v1.35.0. - BUGFIX: Kubernetes Collector: properly handle "410 Gone" responses from the Kubernetes API server. Previously, vlagent could report 410 errors and fail to collect logs from newly discovered Pods. The bug has been introduced in v1.43.0.
- BUGFIX: HTTP querying API: properly add labels from the
by (...)clause to responses returned from/select/logsql/stats_queryand/select/logsql/stats_query_rangeendpoints forhistogram()stats function results. See this comment for details.