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.
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.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.log_fields). See unit tests for
details.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::MAXdecoding.codec to avro on components that support it. Additional
AVRO-specific codec options are configurable via decoding.avro.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.request.retry_jitter_mode to none.Sink request behavior was improved by:
request.retry_max_duration_secsrequest.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.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).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.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.vector tap now performs better by not recompiling glob matches on each fetch interval.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.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.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.The requests_completed_total, request_duration_seconds, and
requests_received_total internal metrics were removed in the 0.35.0 release.
See upgrade guide for details.
Vector now has the ability to turn all undefined variable warnings into errors by
using the --strict-env-vars flag (or VECTOR_STRICT_ENV_VARS environment
variable) when running Vector. If any environment variables that are used in
configurations are
undefined, Vector will raise an error rather than a silent warning.
In a future release, this will “strict environment variable” mode will be the default. This release deprecates the current behavior of only outputting a warning for undefined variables.
See upgrade guide for details.
Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter