0.40 Upgrade Guide
An upgrade guide that addresses breaking changes in 0.40.0
Vector’s 0.40.0 release includes three breaking changes:
- GELF codec defaults to null-delimited messages for stream-based sources
- Reduce transforms now properly aggregate nested fields
- Vector no longer supports CentOS 7
We cover them below to help you upgrade quickly:
Upgrade guide
Breaking Change
GELF codec defaults to null-delimited messages for stream-based sources
The GELF codec with stream-based sources now uses null byte (\\0
) by default as messages delimiter
instead of newline (\\n
) character. This better matches GELF server behavior.
Configuration changes
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.
Example configuration change for socket source
Previous
sources:
my_source_id:
type: "socket"
address: "0.0.0.0:9000"
mode: "tcp"
decoding:
codec: "gelf"
Current
sources:
my_source_id:
type: "socket"
address: "0.0.0.0:9000"
mode: "tcp"
decoding:
codec: "gelf"
framing:
method: "character_delimited"
character_delimited:
delimiter: "\n"
Reduce transforms now properly aggregate nested fields
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.
Example
Config
group_by = [ "id" ]
merge_strategies.id = "discard"
merge_strategies."a.b[0]" = "array"
Event 1
{
"id": 777,
"an_array": [
{
"inner": 1
}
],
"message": {
"a": {
"b": [1, 2],
"num": 1
}
}
}
Event 2
{
"id": 777,
"an_array": [
{
"inner": 2
}
],
"message": {
"a": {
"b": [3, 4],
"num": 2
}
}
}
Reduced Event
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
}
}
}
Vector no longer supports CentOS 7
With this release, Vector has dropped support for CentOS 7 because CentOS 7 became EOL on June 30th, 2024.