The Vector team is pleased to announce version 0.35.0!
Be sure to check out the upgrade guide for breaking changes in this release.
In addition to the usual enhancements and bug fixes, this release also includes
avro
decoder that can used to decode AVRO data in
sourcesThis release is also the first release only published to the new apt.vector.dev
and
yum.vector.dev
OS package repositories and not to the deprecated repositories.timber.io
.
A reminder that the repositories.timber.io
package repositories will be decommissioned on
February 28th, 2024. Please see the release
highlight for details about this change and
instructions on how to migrate.
buffer_send_duration_max_seconds
, was added
to measure the time that a component spends waiting to push events to downstream
components. This is a useful metric to use to identify back pressure in your topology.For the throttle
transform, make the key
tag added to events_discarded_total
opt-in. This key can be of unbounded cardinality so should only be opted in if you
are confident the cardinality is bounded to avoid runaway memory growth.
See upgrade guide for details.
File-based components (file
source, kubernetes_logs
source, file
sink) now
include a internal_metrics.include_file_tag
config option that determines whether
the file
tag is included on the component’s corresponding internal metrics. This
config option defaults to false
, as this tag
is likely to be of high
cardinality.
See upgrade guide for details.
file
, aws_s3
, and gcp_cloud_storage
sink now use the configured timezone
when templating out timestamps as part of creating object key names. It will use the
globally configured timezone
option or the newly added timezone
option on each
of these sinks. Previously it always used UTC when templating timestamps.
Thanks to
kates
for contributing this change!request.retry_jitter_mode
to none
.Sink request behavior was improved by:
request.retry_max_duration_secs
request.max_concurrency_limit
that can be used to cap the maximum
number of concurrent requests when adaptive request concurrency is in-usekeepalive.max_connection_age_secs
configuration option, which defaults to 5 minutes (300 seconds). When enabled, this
closes incoming TCP connections that reach the maximum age by sending a Connection: close
header in the response. While this parameter is crucial for managing the
lifespan of persistent, incoming connections to Vector and for effective load
balancing, it can be disabled by setting keepalive.max_connection_age_secs
to
a large number like 100000000
.splunk_hec_logs
, splunk_hec_metrics
, and humio
sinks now allow accessing
event metadata when specifying host_key
and timestamp_key
when log
namespacing is enabled.
Thanks to
sbalmos
for contributing this change!http_server
source now allows a glob wildcard to be used when specifying the
headers to capture to use as fields to received events. For example, setting
headers
to ["X-*"]
will capture all headers starting with X-
and add them as
fields on the event (or in the metadata when log
namespacing is enabled).
Thanks to
sonnens
for contributing this change!datadog_logs
,datadog_metrics
, and datadog_traces
sinks now default the
values of the default_api_key
and site
configuration options to the values of
environment variables DD_API_KEY
and DD_SITE
, respectively.jemalloc
memory allocator, which Vector uses on Linux systems, is now also
used by any native dependencies, like librdkafka
, on Linux systems as well. This
results in improved memory use by, for example, the kafka
source and sink.
Thanks to
Ilmarii
for contributing this change!aws_cloudwatch_logs
sink now allows for the log group retention to be
configured for any log groups created by Vector via the new retention
options.
Thanks to
AndrewChubatiuk
for contributing this change!log_to_metric
now has the ability to convert logs that have the same structure
as metrics directly into metrics rather than only deriving metrics from logs. This
“mode” can be enabled by setting the all_metrics
configuration option. Incoming
metrics should match the structure described by the native
codec.
Thanks to
dygfloyd
for contributing this change!log_fields
). See unit tests for
details.
Thanks to
MichaHoffmann
for contributing this change!VRL was updated to 0.9.1. This includes the following changes:
parse_regex_all
pattern parameter can now be resolved from a variableparse_json
data corruption issue for numbers greater or equal to i64::MAX
decoding.codec
to avro
on components that support it. Additional
AVRO-specific codec options are configurable via decoding.avro
.
Thanks to
Ion-manden
for contributing this change!kafka
source and sink now add component tags to published Kafka consumer and
producer metrics.heroku_logs
, http_server
, prometheus_remote_write
, and splunk_hec
sources now correctly report decompressed bytes, rather than compressed bytes, for
the component_received_bytes_total
internal metric.elasticsearch
sink was improved through reduced buffering.appsignal
, datadog_metrics
, greptimedb
, gcp_stackdriver
, honeycomb
,
and http
sinks now correctly report uncompressed bytes, rather than compressed
bytes, for the component_sent_bytes_total
internal metric.kafka
source and sink now correctly propagate the component-level
tls.verify_certificate
setting. Previously this was always set to true
.
Thanks to
zjj
for contributing this change!vector tap
now performs better by not recompiling glob matches on each fetch interval.
Thanks to
aholmberg
for contributing this change!tag_cardinality_limit
transform has improved performance in probabilistic
mode via caching the count of entries in the bloom filter.remap
transform no longer emits errors or increments
component_discarded_events_total
when reroute_dropped
is true and events error
during processing as the events are not actually dropped, but instead routed to the
dropped
output.file
source now emits logs with the correct offset
field when aggregating
multiline events.
Thanks to
jches
for contributing this change!aws_kinesis_firehose
sink now has a partition_key_field
that can be used to
configure a log event field to use as the Kinesis partition key. By default, Kinesis
will use a unique identifier.
Thanks to
gromnsk
for contributing this change!remap
transform now filters out the source contents from error messages when
the VRL program is read from a file
. This removes the ability to use Vector to
execute an attack to read files that the user wouldn’t otherwise have permissions to
(e.g. /etc/passwd
).-v
and -vv
to output debug
and trace
logs, respectively,
or -q
and -qq
to output warn
and fatal
logs, respectively, now behaves the
same as setting VECTOR_LOG
to debug
, trace
, warn
, and fatal
, respectively.
Previously the CLI flags would only apply to some of Vector’s internal modules and
dependencies unlike VECTOR_LOG
which applied to everything.Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter