Releases: VictoriaMetrics/VictoriaLogs
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.
v1.43.0
Released at 2025-12-22
-
FEATURE: Kubernetes Collector: add an ability to include and exclude Pod/Node labels and annotation fields from logs. This metadata is also available for filtering. See #923 and these docs for details.
-
FEATURE: Kubernetes Collector: reduce a load on the Kubernetes API by using resource versions to ignore already processed events when a TCP connection is dropped. In the previous version, vlagent would request the full state of the current node from the control plane every 5 minutes, which could lead to an increased load on the central API server in large clusters.
-
BUGFIX: vlstorage: fix incorrect warning logs about time field in
/internal/insertand/internal/nativeAPIs. Thanks to @cyberzz-dev for the issue #937.
v1.42.0
Released at 2025-12-20
-
FEATURE: HTTP querying API: convert
histogramstats results to VictoriaMetrics histogram buckets in responses from/select/logsql/stats_queryand/select/logsql/stats_query_rangefunctions. This allows usinghistogram()stats in recording rules for VictoriaLogs. See #10184 at VictoriaMetrics, #86 and #62 at VictoriaLogs plugin for Grafana. -
FEATURE: Kubernetes Collector: add support for metadata-based filtering for Kubernetes logs via
-kubernetesCollector.excludeFiltercommand-line flag. The flag accepts any LogsQL filter which is applied to Pod labels, namespaces, and other metadata before reading the log files. This enables early exclusion of unwanted log records, reducing CPU usage and I/O overhead. See #923 and these docs for details. -
FEATURE: Kubernetes Collector: automatically parse Kubernetes system logs as structured data. Previously, vlagent wrote these logs as unstructured text.
-
FEATURE: vlagent: add
-tmpDataPathcommand-line flag, that defines default root path for all vlagent data, that requires persistance: remote write persistent queue, collector checkpoints path. -
FEATURE: vlinsert: implement
/insert/nativeendpoint for public access to the internal VictoriaLogs ingestion protocol. See #38 and these docs. -
FEATURE: web UI: add
localStorageavailability checks with error reporting. See #843. -
FEATURE: web UI: add
VLUI:-prefixedlocalStoragekeys and legacy key migration. -
BUGFIX: web UI: fix incorrect y-axis scaling in stats charts when displaying negative values. See #905.
v1.41.1
Released at 2025-12-17
- BUGFIX: data ingestion: accept timestamps with timezone offsets in
±HHMMformat (e.g.2025-12-15T02:12:34.977+0100) in addition to±HH:MM(RFC3339) format. See #902. - BUGFIX: OpenTelemetry data ingestion: fix a memory leak during ingestion of logs with complex attributes. See this comment at #869.
v1.41.0
Released at 2025-12-13
-
FEATURE: LogsQL: return
_streamfield fromblock_statspipe. This allows detecting log streams, which occupy the most of disk space according to this query. -
FEATURE: OpenTelemetry data ingestion: parse
scopeinside ScopeLogs and store it into log fields starting withscope.prefix. See #826. -
FEATURE: ElasticSearch data ingestion: return stub responses for the requests to
/insert/elasticsearch/_rollup*endpoints. Thanks to @Sakalya for the pull request #890. -
FEATURE: web UI: implement "Stats view" mode for the graph using
stats_query_rangeto display log stats. See #34. -
BUGFIX: OpenTelemetry data ingestion: properly handle
nullvalues inside arrays. Previously, such arrays could cause a panic during ingestion. See #869. The issue has been introduced in v1.40.0. -
BUGFIX: OpenTelemetry data ingestion: properly skip attributes with missing key. See this report.
-
BUGFIX: OpenTelemetry data ingestion: reduce memory usage after v1.40.0 release. See #869.
-
BUGFIX: Kubernetes Collector: properly handle unset
-kubernetesCollector.msgFieldand-kubernetesCollector.timeFieldflags. Previously, vlagent didn't apply the default values described in the documentation.
v1.40.0
Released at 2025-12-05
-
SECURITY: upgrade Go builder from Go1.25.4 to Go1.25.5. See the list of issues addressed in Go1.25.5.
-
FEATURE: vlagent: add an ability to collect logs from Kubernetes Pods. See these docs for details. Thanks to @vadimalekseev for the pull request. See #538.
-
FEATURE: OpenTelemetry data ingestion: reduce CPU usage by up to 10x. Thanks to @vadimalekseev for the pull request #720.
-
FEATURE: OpenTelemetry data ingestion: parse
EventNamein theLogRecordand store it into log stream fields. See #826. -
FEATURE: HTTP querying API: automatically convert the results of
row_any(),row_min()androw_max()stats functions to labels in/select/logsql/stats_queryand/select/logsql/stats_query_rangefunctions. This allows obtaining a sample of log message in alerting rules with the following query:... | stats count() as hits, row_any(_msg) as msg_sample. See #81. -
FEATURE: web UI: show VictoriaLogs version in the vmui's footer. See #116.
-
FEATURE: web UI: sync selected tenant with AccountID/ProjectID returned in response headers. See #656.
-
FEATURE: web UI: add hotkeys to toggle series in the hit chart.
-
BUGFIX: web UI: fix mobile layout styles.