The Vector team is pleased to announce version 0.31.0!
Be sure to check out the upgrade guide for breaking changes in this release.
In addition to the usual smaller enhancements and bug fixes, this release includes an opt-in beta of a new log event data model that we think will make it easier to process logs by moving event metadata out of the log event itself. We are looking for feedback on this new feature before beginning towards making it the default and eventually removing the old log event data model.
By way of example, an example event from the datadog_agent
source currently looks like:
{
"ddsource": "vector",
"ddtags": "env:prod",
"hostname": "alpha",
"foo": "foo field",
"service": "cernan",
"source_type": "datadog_agent",
"bar": "bar field",
"status": "warning",
"timestamp": "1970-02-14T20:44:57.570Z"
}
Will now look like:
{
"foo": "foo field",
"bar": "bar field"
}
(just the event itself)
with additional buckets for source added metadata:
{
"ddsource": "vector",
"ddtags": "env:prod",
"hostname": "alpha",
"service": "cernan",
"status": "warning",
"timestamp": "1970-02-14T20:44:57.570Z"
}
accessible via %<datadog_agent>.<field>
, and Vector added metadata:
{
"source_type": "datadog_agent",
"ingest_timestamp": "1970-02-14T20:44:58.236Z"
}
accessible via %vector.<field>
.
We think this new organization will be easier to reason about for users as well as avoid key conflicts between event fields and metadata.
You can opt into this feature by setting schema.log_namespace
as a global setting or the
log_namespace
option now available on each source itself. See the blog
post for an expanded explanation and details. Let us know what you think on this issue.
aws_s3
source now support bucket notifications in SQS that originated as SNS
messages. It still does not support receiving SNS messages directly.
Thanks to
sbalmos
for contributing this change!from_unix_timestamp
function was added to VRL to decode timestamp values from
unix timestamps. This deprecates the to_timestamp
function, which will be removed
in a future release.parse_nginx_log
function now supports ingress_upstreaminfo
as a format.format_timestamp
function now supports an optional timezone
argument to
control the timezone of the encoded timestamp.--graceful-shutdown-limit-secs
) and able to be disabled (via
--no-graceful-shutdown-limit
). See the CLI
docs for more.zstd
compression was added to sinks support compression.
Thanks to
akoshchiy
for contributing this change!prometheus_remote_write
sink now supports zstd
and gzip
compression in
addition to snappy
(the default).
Thanks to
zamazan4ik
for contributing this change!journald
source now supports a journal_namespace
option to restrict the namespace of the units that the source consumes logs from.gelf
, native_json
, syslog
, and json
decoders (configurable as
decoding.codec
on sources) now have corresponding options for lossy UTF-8
decoding via decoding.<codec name>.lossy = true|false
. This can be used to
accept invalid UTF-8 where invalid characters are replaced before decoded.aws_kinesis_firehose
and aws_kinesis_streams
sinks are now able to retry requests
with partial failures by setting request_retry_partial
to true. The default is
false
to avoid writing duplicate data if proper event idempotency is not in place.
Thanks to
dengmingtong
for contributing this change!component_sent_event_bytes_total
and component_sent_event_total
metrics can
now optionally have a service
and source
tag added to them, driven from event
data, from the added telemetry
global config
options. This can be used
to break down processing volume by service and source.internal_metrics
and internal_logs
sources now shutdown last in order to
capture as much telemetry as possible during Vector shutdown.fluent
source now correctly sends back message acknowledgements in msgpack
rather than JSON. Previously fluentbit would fail to process them.
Thanks to
ChezBunch
for contributing this change!\0
null byte escape sequence in strings.statsd
sink now correctly encodes all counters as incremental, per the spec.http_client
no longer corrupts binary data by always trying to interpret as UTF-8 bytes. Instead options were added to encoders for lossy UTF-8 decoding (see above entry).Proxy-Authorization
header is now added to HTTP requests from components
that support HTTP proxies when authentication is used.
Thanks to
syedriko
for contributing this change!The following components now log template render errors at the warning level rather
than error and does not increment component_errors_total
. This fixes a regression
in v0.30.0 for the loki
sink.
loki
sinkpapertrail
sinksplunk_hec_logs
sinksplunk_hec_metrics
sinkthrottle
transformlog_to_metric
transformdatadog_metrics
sink now incrementally encodes sketches. This avoids issues
users have seen with sketch payloads exceeding the limits and being dropped.datadog_agent
reporting of events and bytes received was fixed so it no longer
double counted incoming events.log_schema
global configuration fields can now appear in a different file than
defined sources.
Thanks to
Hexta
for contributing this change!file
sources were defined.
Thanks to
honganan
for contributing this change!component_kind
,
component_id
, component_type
).Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter