Releases: VictoriaMetrics/VictoriaMetrics
v0.17.0-victorialogs
Released at 2024-06-05
-
FEATURE: add
pack_logfmt
pipe for formatting log fields into logfmt messages. -
FEATURE: allow using IPv4 addresses in range comparison filters. For example,
ip:>'12.34.56.78'
is valid filter now. -
FEATURE: add
ceil()
andfloor()
functions tomath
pipe. -
FEATURE: add support for bitwise
and
,or
andxor
operations atmath
pipe. -
FEATURE: add support for automatic conversion of RFC3339 time and IPv4 addresses into numeric representation at
math
pipe. -
FEATURE: add ability to format numeric fields into string representation of time, duration and IPv4 with
format
pipe. -
FEATURE: set
format
field torfc3164
orrfc5424
depending on the Syslog format parsed viaunpack_syslog
pipe. -
BUGFIX: always respect the limit set in
limit
pipe. Previously the limit could be exceeded in some cases.
v0.16.0-victorialogs
Released at 2024-06-04
- FEATURE: add
unpack_syslog
pipe for unpacking syslog messages from log fields. - FEATURE: parse timestamps in
_time
filter with nanosecond precision. - FEATURE: return the last
N
matching logs from/select/logsql/query
HTTP API with the maximum timestamps iflimit=N
query arg is passed to it. Previously a random subset of matching logs could be returned, which could complicate investigation of the returned logs. - FEATURE: add
drop_empty_fields
pipe for dropping log fields with empty values.
v0.15.0-victorialogs
Released at 2024-05-30
-
FEATURE: add
row_any
function forstats
pipe. This function returns a sample log entry per every calculated group of results. -
FEATURE: add
default
operator tomath
pipe. It allows overridingNaN
results with the given default value. -
FEATURE: add
exp()
andln()
functions tomath
pipe. -
FEATURE: allow omitting result name in
math
pipe expresions. In this case the result name is automatically set to string representation of the corresponding math expression. For example,_time:5m | math duration / 1000
is equivalent to_time:5m | math (duration / 1000) as "duration / 1000"
. -
FEATURE: allow omitting result name in
stats
pipe. In this case the result name is automatically set to string representation of the corresponding stats function expression. For example,_time:5m | count(*)
is valid LogsQL query now. It is equivalent to_time:5m | stats count(*) as "count(*)"
. -
BUGFIX: properly calculate the number of matching rows in
* | field_values x | stats count() rows
and in* | unroll (x) | stats count() rows
queries.
v0.14.0-victorialogs
Released at 2024-05-29
-
FEATURE: allow specifying fields, which must be packed into JSON in
pack_json
pipe viapack_json fields (field1, ..., fieldN)
syntax. -
BUGFIX: properly apply
if (...)
filters to calculated results instats
pipe when grouping by fields is enabled. For example,_time:5m | stats by (host) count() logs, count() if (error) errors
now properly calculates per-host
errors
.
v0.13.0-victorialogs
Released at 2024-05-28
- FEATURE: add
extract_regexp
pipe for extracting arbitrary substrings from log fields with RE2 egular expressions. - FEATURE: add
math
pipe for mathematical calculations over log fields. - FEATURE: add
field_values
pipe, which returns unique values for the given log field. - FEATURE: allow omitting
stats
prefix instats
pipe. For example,_time:5m | count() rows
is a valid query now. It is equivalent to_time:5m | stats count() as rows
. - FEATURE: allow omitting
filter
prefix infilter
pipe if the filter doesn't clash with pipe names. For example,_time:5m | stats by (host) count() rows | rows:>1000
is a valid query now. It is equivalent to_time:5m | stats by (host) count() rows | filter rows:>1000
. - FEATURE: allow
head
pipe without number. For example,error | head
. In this case 10 last values are returned ashead
Unix command does by default. - FEATURE: allow using comparison filters with strings. For example,
some_text_field:>="foo"
matches log entries withsome_text_field
field values bigger or equal tofoo
.
v0.12.1-victorialogs
Released at 2024-05-26
-
FEATURE: add support for comments in multi-line LogsQL queries. See these docs.
-
BUGFIX: properly apply
in(...)
filter insideif (...)
conditions at various pipes. This bug has been introduced in v0.12.0.
v0.12.0-victorialogs
Released at 2024-05-26
-
FEATURE: add
pack_json
pipe, which packs all the log fields into a JSON object and stores it into the given field. -
FEATURE: add
unroll
pipe, which can be used for unrolling JSON arrays stored in log fields. -
FEATURE: add
replace_regexp
pipe, which allows updating log fields with regular expressions. -
FEATURE: improve performance for
/select/logsql/field_names
HTTP API. -
BUGFIX: prevent from panic in
sort
pipe when VictoriaLogs runs on a system with one CPU core. -
BUGFIX: do not return referenced fields if they weren't present in the original logs. For example,
_time:5m | format if (non_existing_field:"") "abc"
could return emptynon_exiting_field
, while it shuldn't be returned because it is missing in the original logs. -
BUGFIX: properly initialize values for
in(...)
filter insidefilter
pipe if thein(...)
contains other filters. For example,_time:5m | filter ip:in(user_type:admin | fields ip)
now works correctly.
v0.11.0-victorialogs
Released at 2024-05-25
- FEATURE: add
replace
pipe, which allows replacing substrings in log fields. - FEATURE: support comparing log field values with special numeric values. For example,
duration:>1.5s
andresponse_size:<15KiB
are valid filters now. - FEATURE: properly sort durations and short numeric values in
sort
pipe. For example,10s
goes in front of1h
, while10KB
goes in front of1GB
. - FEATURE: add an ability to preserve the original non-empty field values when executing
extract
,unpack_json
,unpack_logfmt
andformat
pipes. - FEATURE: add an ability to preserve the original field values if the corresponding unpacked values are empty when executing
extract
,unpack_json
,unpack_logfmt
andformat
pipes.
v0.10.0-victorialogs
Released at 2024-05-24
-
FEATURE: return the number of matching log entries per returned value in HTTP API results. This simplifies detecting field / stream values with the biggest number of logs for the given LogsQL query.
-
FEATURE: improve performance for regexp filter in the following cases:
- If the regexp contains just a phrase without special regular expression chars. For example,
~"foo"
. - If the regexp starts with
.*
or ends with.*
. For example,~".*foo.*"
. - If the regexp contains multiple strings delimited by
|
. For example,~"foo|bar|baz"
. - If the regexp contains multiple words. For example,
~"foo bar baz"
.
- If the regexp contains just a phrase without special regular expression chars. For example,
-
FEATURE: allow disabling automatic unquoting of the matched placeholders in
extract
pipe. See these docs. -
BUGFIX: properly parse
!
in front of exact filter, exact-prefix filter and regexp filter. For example,!~"some regexp"
is properly parsed asnot ="some regexp"
. Previously it was incorrectly parsed as'~="some regexp"'
phrase filter. -
BUGFIX: properly sort results by
_time
field whenlimit
pipe is applied. For example,_time:5m | sort by (_time) desc | limit 10
properly works now.