This PR fixes an issue where parsing long `_msg` values caused errors, resulting in some log records not being displayed. The error occurred due to partial processing of strings. In some cases, a long record could be split into multiple chunks, causing only part of the record to be processed instead of the entire entry. #6281 Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
20 KiB
sort | weight | title | menu | aliases | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | 7 | VictoriaLogs changelog |
|
|
VictoriaLogs changelog
The following tip
changes can be tested by building VictoriaLogs from the latest commit of VictoriaMetrics repository
according to these docs
tip
-
FEATURE: allow using
~"some_regexp"
regexp filter instead ofre("some_regexp")
. -
FEATURE: allow using
="some phrase"
exact filter instead ofexact("some phrase")
. -
FEATURE: allow using
="some prefix"*
exact prefix filter instead ofexact("some prefix"*)
. -
FEATURE: add ability to generate output fields according to the provided format string. See these docs.
-
FEATURE: add ability to extract fields with
extract
pipe only if the given condition is met. See these docs. -
FEATURE: add ability to unpack JSON fields with
unpack_json
pipe only if the given condition is met. See these docs. -
FEATURE: add ability to unpack logfmt fields with
unpack_logfmt
pipe only if the given condition is met. See these docs. -
FEATURE: add
fields_min
andfields_max
functions forstats
pipe, which allow returning all the log fields for the log entry with the minimum / maximum value at the given field. -
FEATURE: add
/select/logsql/streams
HTTP endpoint for returning streams from results of the given query. See these docs for details. -
FEATURE: add
/select/logsql/stream_label_names
HTTP endpoint for returning stream label names from results of the given query. See these docs for details. -
FEATURE: add
/select/logsql/stream_label_values
HTTP endpoint for returning stream label values for the given label from results of the given query. See these docs for details. -
FEATURE: web UI: change time range limitation from
_time
in the expression tostart
andend
query args. -
BUGFIX: fix
invalid memory address or nil pointer dereference
panic when usingextract
,unpack_json
orunpack_logfmt
pipes. See this issue. -
BUGFIX: web UI: fix an issue where logs with long
_msg
values might not display. See this issue.
v0.8.0
Released at 2024-05-20
-
FEATURE: add ability to extract JSON fields from log fields. See these docs.
-
FEATURE: add ability to extract logfmt fields from log fields. See these docs.
-
FEATURE: add ability to extract arbitrary text from log fields into the output fields. See these docs.
-
FEATURE: add ability to put arbitrary queries inside
in()
filter. -
FEATURE: add support for post-filtering of query results with
filter
pipe. -
FEATURE: allow applying individual filters per each stats function. See these docs.
-
FEATURE: allow passing string values to
min
andmax
functions. Previously only numeric values could be passed to them. -
FEATURE: speed up
sort ... limit N
pipe for typical cases. -
FEATURE: allow using more convenient syntax for
range
filters if upper or lower bound isn't needed. For example, it is possible to writeresponse_size:>=10KiB
instead ofresponse_size:range[10KiB, inf)
, ortemperature:<42
instead oftemperature:range(-inf, 42)
. -
FEATURE: add
/select/logsql/hits
HTTP endpoint for returning the number of matching logs per the given time bucket over the selected time range. See tese docs for details. -
FEATURE: add
/select/logsql/field_names
HTTP endpoint for returning field names from results of the given query. See these docs for details. -
FEATURE: add
/select/logsql/field_values
HTTP endpoint for returning unique values for the given field obtained from results of the given query. See these docs for details. -
BUGFIX: properly take into account
offset
atsort
pipe when it already haslimit
. For example,_time:5m | sort by (foo) offset 20 limit 10
.
v0.7.0
Released at 2024-05-15
- FEATURE: add support for optional
start
andend
query args to HTTP querying API, which can be used for limiting the time range for LogsQL query. - FEATURE: add ability to return the first
N
results fromsort
pipe. This is useful whenN
biggest orN
smallest values must be returned from large amounts of logs. - FEATURE: add
quantile
andmedian
stats functions.
v0.6.1
Released at 2024-05-14
-
FEATURE: use natural sort order when sorting logs via
sort
pipe. -
BUGFIX: properly return matching logs in streams with small number of entries. Previously they could be skipped. The issue has been introduced in the release v0.6.0.
-
BUGFIX: fix
runtime error: index out of range
panic when usingsort
pipe like_time:1h | sort by (_time)
. See this issue.
v0.6.0
Released at 2024-05-12
-
FEATURE: return all the log fields by default in query results. Previously only
_stream
,_time
and_msg
fields were returned by default. -
FEATURE: add support for returning only the requested log fields. See these docs.
-
FEATURE: add support for calculating various stats over log fields. Grouping by arbitrary set of log fields is supported. See these docs for details.
-
FEATURE: add support for sorting the returned results. See these docs.
-
FEATURE: add support for returning unique results. See these docs.
-
FEATURE: add support for limiting the number of returned results. See these docs.
-
FEATURE: add support for copying and renaming the selected log fields. See these and these docs.
-
FEATURE: allow using
_
inside numbers. For example,score:range[1_000, 5_000_000]
forrange
filter. -
FEATURE: allow numbers in hexadecimal and binary form. For example,
response_size:range[0xff, 0b10001101101]
forrange
filter. -
FEATURE: allow using duration and byte size suffixes in numeric values inside LogsQL queries. See these docs.
-
FEATURE: improve data ingestion performance by up to 50%.
-
FEATURE: optimize performance for LogsQL query, which contains multiple filters for words or phrases delimited with
AND
operator. For example,foo AND bar
query must find log messages withfoo
andbar
words at faster speed. -
BUGFIX: prevent from possible corruption of short log fields during data ingestion.
-
BUGFIX: prevent from additional CPU usage for up to a few seconds after canceling the query.
-
BUGFIX: prevent from returning log entries with emtpy
_stream
field in the form"_stream":""
in search query results. See this issue.
v0.5.2
Released at 2024-04-11
- BUGFIX: properly register new log streams under high data ingestion rate. The issue has been introduced in v0.5.0.
v0.5.1
Released at 2024-04-04
- BUGFIX: properly apply time range filter for queries containing
OR
operators. See this issue. - BUGFIX: do not log debug lines
DEBUG: start trimLines
andDEBUG: end trimLines
. This bug has been introduced in v0.5.0 in this commit.
v0.5.0
Released at 2024-03-01
-
FEATURE: support the ability to limit the number of returned log entries from HTTP querying API by passing
limit
query arg. Previously all the matching log entries were returned until closing the response stream. See this feature request. Thanks to @dmitryk-dk for the pull request. -
BUGFIX: do not panic on incorrect regular expression in stream filter. Thanks to @XLONG96 for the bugfix.
-
BUGFIX: properly determine when the assisted merge is needed. Previously the logs for determining whether the assisted merge is needed was broken. This could lead to too big number of parts under high data ingestion rate. Thanks to @lujiajing1126 for the fix.
-
BUGFIX: properly stop execution of aborted query when the query doesn't contain
_stream
filter. Previously such a query could continue consuming resources after being aborted by the client. Thanks to @z-anshun for the fix.
v0.4.2
Released at 2023-11-15
- BUGFIX: properly locate logs for the requested streams. Previously logs for some streams may be missing in query results. See this issue. Thanks to @XLONG96 for the fix!
- BUGFIX: web UI: properly sort found logs by time. See this issue.
v0.4.1
Released at 2023-10-04
- BUGFIX: fix the free space verification process in VictoriaLogs that was erroneously shifting to read-only mode, despite there being sufficient free space available. See this issue.
v0.4.0
Released at 2023-10-03
-
FEATURE: add
-elasticsearch.version
command-line flag, which can be used for specifying Elasticsearch version returned by VictoriaLogs to Filebeat at elasticsearch bulk API. This helps resolving this issue. -
FEATURE: expose the following metrics at /metrics page:
vl_data_size_bytes{type="storage"}
- on-disk size for data excluding log stream indexes.vl_data_size_bytes{type="indexdb"}
- on-disk size for log stream indexes.
-
FEATURE: add
-insert.maxFieldsPerLine
command-line flag, which can be used for limiting the number of fields per line in logs sent to VictoriaLogs via ingestion protocols. This helps to avoid issues like this. -
FEATURE: expose
vl_http_request_duration_seconds
histogram at the /metrics page. Thanks to @crossoverJie for this pull request. -
FEATURE: add support of
-storage.minFreeDiskSpaceBytes
command-line flag to allow switching to read-only mode when running out of disk space at-storageDataPath
. See this issue. -
BUGFIX: fix possible panic when no data is written to VictoriaLogs for a long time. See this issue. Thanks to @crossoverJie for filing and fixing the issue.
-
BUGFIX: add
/insert/loky/ready
endpoint, which is used by Promtail for healthchecks. This should removeunsupported path requested: /insert/loki/ready
warning logs. See this comment. -
BUGFIX: prevent from panic during background merge when the number of columns in the resulting block exceeds the maximum allowed number of columns per block. See this issue.
v0.3.0
Released at 2023-07-20
- FEATURE: add support for data ingestion via Promtail (aka default log shipper for Grafana Loki). See these and these docs.
v0.2.0
Released at 2023-07-17
- FEATURE: support short form of
_time
filters over the last X minutes/hours/days/etc. For example,_time:5m
is a short form for_time:(now-5m, now]
, which matches logs with timestamps for the last 5 minutes. See these docs for details. - FEATURE: add ability to specify offset for the selected time range. For example,
_time:5m offset 1h
is equivalent to_time:(now-5m-1h, now-1h]
. See these docs for details. - FEATURE: LogsQL: replace
exact_prefix("...")
withexact("..."*)
. This makes it consistent with i() filter, which can accept phrases and prefixes, e.g.i("phrase")
andi("phrase"*)
. See these docs.
v0.1.0
Released at 2023-06-21
Initial release