github VictoriaMetrics/VictoriaLogs v1.49.0

7 hours ago

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_filters instead 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 _stream field. This allows importing raw logs received from /select/logsql/query endpoint, without the need in additional transformations. See #1122.

  • FEATURE: data ingestion: verify the _stream field correctness when ingesting data via native and internal protocols (native protocol is used by vlagent for sending the data to VictoriaLogs, while internal protocol is used by vlinsert for sending the data to vlstorage in VictoriaLogs cluster ). See #38.

  • FEATURE: data ingestion: introduce /insert/multitenant/native endpoint for accepting logs with mixed tenants from vlagent according to these docs. Previously vlagent was using /internal/insert endpoint for sending logs with mixed tenants. It is recommended using /insert/multitenant/native endpoint instead, since /internal/insert endpoint is intended for internal communcations between vlinsert and vlstorage in cluster mode. See #1189.

  • FEATURE: /select/logsql/query HTTP 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 inside stats pipe 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_filter option. 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 stddev stats 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_names pipe by using field_names filter "substring" syntax - it returns field names containing the given substring.

  • FEATURE: LogsQL: add an ability to filter the field values returned from the field_values pipe by using field_values some_field filter "substring" syntax - it returns values containing the given substring for the given some_field.

  • FEATURE: /select/logsql/field_names HTTP endpoint: add support for an optional filter=substring query arg, which allows returning only the field names containing the given substring. See #1186.

  • FEATURE: /select/logsql/field_values HTTP endpoint: add support for an optional filter=substring query arg, which allows returning only the field values containing the given substring. See #1186.

  • FEATURE: /select/logsql/stream_field_names HTTP endpoint: add support for an optional filter=substring query arg, which allows returning only the field names containing the given substring. See #1186.

  • FEATURE: /select/logsql/stream_field_values HTTP endpoint: add support for an optional filter=substring query arg, which allows returning only the field values containing the given substring. 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 _time field without the real timestamp, and this field is not mentioned in the _time_field query arg or in the VL-Time-Field request header according to these docs. Previously this could lead to unexpected errors during querying such as missing _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"} and vl_merge_bytes{type="storage/inmemory"} metrics. See #836.

  • BUGFIX: delete API: properly evaluate relative _time filters 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 vlselect in cluster setup. Previously the options were sent to vlstorage, but were ignored at vlselect. This could lead to incorrect query results.

  • BUGFIX: LogsQL: fix count_uniq() and count_uniq_hash() in cluster setup for vlstorage nodes with 128 or more CPU cores. Previously such queries could fail during state merge at vlselect with errors such as cannot import state for count_uniq(...). See #1225.

  • BUGFIX: Kubernetes Collector: add support for interleaved stdout/stderr partial CRI log lines merging. Previously, if a CRI log file contained interleaved stdout and stderr lines, vlagent treated them as a same log stream, which could lead to incorrect partial log merging. See #1215. Thanks to @charlie0129 for the pull request #1218.

  • BUGFIX: Kubernetes Collector: skip invalid CRI log entries instead of failing with FATAL: cannot process line from file. This error can occur after an unclean Node shutdown when a log entry is partially written. See #1217 and #1076.

  • BUGFIX: Journald data ingestion: fix -journald.useRemoteIP flag not saving the remote IP address in the remote_ip field for single-hop reverse proxies, and also fix the tests. Thanks to @NaturalSpottingSmite for the pull request.

  • BUGFIX: live tailing API: validate refresh_interval for /select/logsql/tail and return 400 Bad Request on invalid values. Previously, refresh_interval=0s or a negative duration could trigger a panic and crash the process. See #1234. Thanks to @cuongleqq for the fix.

  • BUGFIX: web UI: fix UI freeze when selecting a long time range.

  • BUGFIX: web UI: truncate long active filter badges and show full values in tooltip. See #369

  • BUGFIX: web UI: show active filters in Stream Fields empty state instead of "No stream fields found".

  • BUGFIX: LogsQL: properly apply offset when returning the last N logs sorted by _time desc, so queries like | sort by (_time) desc | offset X | limit Y return empty results when X is greater than or equal to the number of matched logs. Previously, such queries could incorrectly return all matched logs. See #1190.

  • BUGFIX: All VictoriaLogs components: Fix unsupported metric type display in exposed metric metadata for summaries and quantiles. This unsupported type exists when a summary is not updated within a certain time window. See #120 for details.

Don't miss a new VictoriaLogs release

NewReleases is sending notifications on new releases.