The Vector team is pleased to announce version 0.33.0!
Be sure to check out the upgrade guide for breaking changes in this release.
This release marks the switch of the default configuration language for Vector from TOML to YAML. We continue to support both (as well as JSON), but the documentation will prefer YAML in its configuration examples. We think this will lead to more legible configurations as well as more consistency with Vector’s Helm chart which requires YAML configuration. See the associated release highlight for more details on the motivation for this change.
In addition to the usual enhancements and bug fixes, this release includes also includes:
/etc/default/vector and /etc/vector/vector.yaml files. This was fixed in v0.33.1.clickhouse sink health check will fail due to the accidentally inclusion of an extra / in the request URI. This was fixed in v0.34.0.The exec source now allows customization of the environment variables exposed to
the subprocess via two new options:
clear_environment to remove environment variables propagated from Vector processenvironment to set custom environment variables for the subprocessaws_sns sink has been added to send events to AWS SNS.--openssl-no-probe (or VECTOR_OPENSSL_NO_PROBE).kafka source key_field) at config parse time rather than at runtime. This
results in earlier surfacing of errors.http_server source can now have the response code it sends configured via the
new response_code configuration parameter.route transform can now have the _unmatched route disabled via the
reroute_unmatched parameter. This helps with suppressing the warning that is
emitted if this output is not consumed by any other components.websocket sink now accepts any data type that the configured codec accepts.
For example, this means it supports logs, metrics, and traces when the native or
native_json codecs are in use.We now publish armv7hl RPM packages. These are the same as the armv7 packages
but are more accurately named per the RPM packaging guidelines.
As part of this change we are deprecating the armv7 packages. This change should
be transparent to users using yum but if you are mirroring or directly downloading
the RPM files you will want to switch to the new naming scheme:
vector-<version>-1.armv7hl.rpm.
See the upgrade guide for more details.
kubernetes_logs source now has an oldest_first option to configure the
source to always consume the oldest file first. This is the same option that exists
on the file source. It can enable better behavior by releasing file handles to
rotated files before moving on to reading newer files.AWS components now support the AWS FIPS
endpoints
by specifying use_fips_endpoint in your shared AWS config file or by setting
the AWS_USE_FIPS_ENDPOINT environment variable.
Note this does not yet work when accessing the STS endpoints to fetch authentication credentials. This is being tracked by #18382.
The csv codec now allows additional configuration options when encoding:
capacity: the capacity of the internal buffer in bytes (default 4098)delimiter: the delimiter to use (defaults to ,)double_quote: when enabled (default) escapes double quotes by doubling them ("
is encoded as ""). If disabled, then uses the configured escape character to
escape them instead.escape: The escape character to use when escaping quotes (defaults to \).
Only applies when double_quote is false.The deprecated legacy OpenSSL provider support now defaults to disabled. It can be
enabled via --openssl-legacy-provider=true.
The --openssl-legacy-provider flag will be removed in a future release but loading
of this provider will still be available via OPENSSL_CONF as described in the
upgrade guide.
datadog_metrics sink now transmits the origin of the metric to Datadog for display
in metrics explorer. Metrics from the datadog_agent source have their origin passed
through but otherwise an appropriate origin header is set for other metrics sources.kafka sink now builds requests concurrently which is expected to improve
performance.journald source now has an extra_args configuration option to allow
specifying additional arguments to pass through to journalctl when fetching
events.VRL was updated to v0.7.0 which brings the following:
Bug Fixes:
parse_nginx_log doesn’t fail if the values of key-value pairs in error logs are missingencode_gzip and encode_zlib now correctly check that the compression level is valid, preventing a panicparse_aws_vpc_flow_log now handles account-id value as a string, avoiding loss of leading zeros and handling the case where value is unknownFeatures:
parse_key_value can now parse values enclosed in single quote characterspretty parameter for encode_json function to produce pretty-printed JSON stringcommunity_id function for generation of Community IDsparse_aws_vpc_flow_log can now handle VPC logs using version 5 fieldsto_timestamp function was removed (use parse_timestamp and from_unix_timestamp instead)truncate function now takes a suffix argument to control the suffix to append. This deprecates the existing ellipsis functionport field included on events emitted from the
socket source is now correctly marked as an integer rather than a string. This
removes unnecessary casting when the log_namespacing feature is enabled.elasticsearch sink now correctly ignores the pipeline configuration when it
is an empty string ("") to allow disabling this option. Previously it would result
in failed Elasticsearch requests due to an empty pipeline name being passed.kubernetes_logs source when log_namespacing is
enabled. Previously it would emit empty log events.log_namespacing is enabled, the dedupe transform can now access metadata
fields using the %some_field syntax.log_namespacing is enabled, the sample transform now adds the sample_rate
field to metadata rather than to the event itself.log_namespacing is enabled, the remap transform now correctly handles
converting an array result into log events by avoiding wrapping non-object array
elements as {"message": "<the value>"} and instead using the value directly as the
log event.log_namespacing is enabled, the json codec will now allow decoding of
non-object values to create the log event rather than erroring if the incoming
value is not an object.gelf codec now defaults to framing using null byte (\0) when encoding.
Previously it defaulted to newline (\n) but the GELF server implementation
expects the null byte.The published Debian packages no longer contain a conffiles control file as it was
unnecessary (all configuration files are under /etc and are automatically flagged
as conffiles by dh_installdeb).
This existing conffiles file was contained an invalid trailing empty line which
caused issues on some package managers such as Uyuni with SUSE Manager.
component_errors_total metric is no longer incremented for HTTP client errors
that are automatically retried.A few fix related fixes to the New Relic sink handling of metrics were made:
Vector now defaults the worker thread concurrency to the detection provided by the Rust standard library, which attempts to take into account constraints applied by containerization, rather than just the number of detected CPUs. This should result in better resource utilization in container environments.
See the upgrade guide for more details about this.
The following sinks now avoid ballooning in memory consumption in the pretense of back-pressure by limiting request building concurrency:
amqpappsignalazure_monitor_logsclickhousegcp_stackdriverkafkahoneycombhttpnatspulsarThe request.concurrency had a couple of tweaks to fix the documentation:
none now configures “no concurrency” (same as 1). This
was the documented behavior of none, but previously it would actually configure
adaptive concurrency.none was the default for most sinks, to maintain the expected default
behavior of adaptive concurrency, the default for request.concurrency for these
sinks is now adaptive rather than none.See the upgrade guide for more details.
The default configuration language for Vector was updated from TOML to YAML. See the highlight for more details on the motivation for this change.
As part of this migration, Vector will prefer the /etc/vector/vector.yaml as the
default location in the future rather than /etc/vector/vector.toml.
The datadog_logs endpoint configuration is now treated as the “base URL” where
the expected path, /api/v2/logs is appended. This makes this option more
consistent with the endpoint options appearing on the other Datadog sinks.
See the upgrade guide for details.
Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter