The Vector team is pleased to announce version 0.40.0!
Be sure to check out the upgrade guide for breaking changes in this release.
This release contains a mix of enhancements and bug fixes. See the changelog below.
jetstream
option (default is false).VRL was updated to v0.17.0. This includes the following changes:
Breaking Changes & Upgrade Guide
parse_logfmt
now processes 3 escape sequences when parsing:
, "
and \
.
This means that for example,
in the input will be replaced with an actual
newline character in parsed keys or values.
(https://github.com/vectordotdev/vrl/pull/777)sqs.read_timeout_seconds
, sqs.connect_timeout_seconds
, and sqs.operation_timeout_seconds
.statsd
source now has a configuration option to disable key sanitization: sanitize
. The default is true
to maintain backwards compatibility.datadog_agent
source to accept payloads that have been compressed with zstd
.demo_logs
source now adds host
(or the configured log_schema.host_key
) with the value of
localhost
to emitted logs.vector tap
command now has an optional duration_ms
flag that allows you to specify the duration of the
tap. By default, the tap will run indefinitely, but if a duration is specified (in milliseconds) the tap will
automatically stop after that duration has elapsed.vector validate
.log_schema
timestamp. This is required when log_namespacing
is enabled.set_secret
and remove_secret
VRL functions no longer complain about their return value not
being consumed. These functions don’t return any value.Now the GELF codec with stream-based sources uses null byte (\0
) by default as messages delimiter instead of newline (\n
) character. This better matches GELF server behavior.
In order to maintain the previous behavior, you must set the framing.method
option to the character_delimited
method and the framing.character_delimited.delimiter
option to \n
when using GELF codec with stream-based sources.
sources:
my_source_id:
type: "socket"
address: "0.0.0.0:9000"
mode: "tcp"
decoding:
codec: "gelf"
sources:
my_source_id:
type: "socket"
address: "0.0.0.0:9000"
mode: "tcp"
decoding:
codec: "gelf"
framing:
method: "character_delimited"
character_delimited:
delimiter: "
"
Reduce transforms can now properly aggregate nested fields.
This is a breaking change because previously, merging object elements used the “discard” strategy. The new behavior is to use the default strategy based on the element type.
group_by = [ "id" ]
merge_strategies.id = "discard"
merge_strategies."a.b[0]" = "array"
{
"id": 777,
"an_array": [
{
"inner": 1
}
],
"message": {
"a": {
"b": [1, 2],
"num": 1
}
}
}
{
"id": 777,
"an_array": [
{
"inner": 2
}
],
"message": {
"a": {
"b": [3, 4],
"num": 2
}
}
}
Old behavior:
{
"id": 777,
"an_array": [
{
"inner": 2
}
],
"message": {
"a": {
"b": [1, 2],
"num": 1
}
}
}
New behavior:
{
"id": 777,
"an_array": [
{
"inner": 1
}
],
"message": {
"a": {
"b": [
[1, 2],
[3,4]
],
"num": 3
}
}
}
Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter