The Vector team is pleased to announce version 0.23.0!
Be sure to check out the upgrade guide for breaking changes in this release.
In addition to the new features, enhancements, and fixes listed below, this release adds:
json and logfmt) and framings (like newline-delimited and
length-delimited) to be used on more sinks. See the release highlight
for details.decoding.codec) receives invalid data. Fixed in v0.23.1.elasticsearch sink doesn’t evaluate templated configuration options like the index configuration before applying the only_fields and except_fields options, causing templates to fail to be evaluated if they used a field that was dropped. Fixed in v0.23.1.datadog_traces sink APM stats calculation does not correctly aggregate the stats in the way that is expected by the APM backend of Datadog, causing incorrect individual span metrics observed in the Datadog UI. Fixed in v0.25.2.json and logfmt) and framings (like
newline-delimited and octet-framing) to be used on more sinks. See the release
highlight for details.aws_cloudwatch_logs sink now allows configuration of request headers via the headers option.
This was primarily added to allow setting the x-amzn-logs-format header when sending Embedded Metric
Format
logs to AWS CloudWatch Logs.socket source can now be configured to annotate events with the TLS client
certificate of the connection the events came from via setting the tls.peer_key configuration option.splunk_hec_logs sink can now be configured to send to the Splunk HEC raw
endpoint
via the added endpoint_target option. The default is still the event
endpoint.is_json function now takes a variant argument making
it easier to assert the type of the JSON value; for example that the text is a JSON object.The kubernetes_logs source now annotates logs with node labels. This requires updating to the version
= 0.11.0 of the helm chart or adding the
noderesource to the allowed actions for the Vector pod. See the upgrade guide for more details.
parse_nginx_log function now parses out the upstream value if it exists in the log line.The geoip transform now includes the following additional fields:
country_nameregion_coderegion_namemetro_codeThis brings the transform up to parity with the fields enriched by Logstash’s geoip filter (though the field names are not the same).
datadog_metrics sink now achieves a better compression ratio, when compression is enabled, due to
sorting the metrics before compression when transmitting them.azure_blob sink now supports loading credentials from environment variables and via the managed
identity service. To use this, set the new storage_account
parameter.prometheus_scrape source now sets the Accept header to text/plain when requesting metrics.
This improves compatibility with Prometheus exporters like keyclock which require this header.datadog_agent source is now able to accept traces from newer Datadog Agents (version >= 7.33).VRL’s parse_nginx_log function now correctly parses:
VRL’s diagnostic error messages have had a number of improvements in this release which should help users more quickly identify errors in their VRL code.
See the originating RFC for full details about the improvements that were made.
log function now correctly independently rate limits multiple log calls in a single remap
transform. Previously they were mistakenly rate limited all together.splunk_hec_logs sink now has a new option to configure Vector to not set a timestamp on the event
when sending it to Splunk: suppress_timestamp. This allows Splunk to set the timestamp during
ingestion.The following sinks now allow configuration of end-to-end acknowledgements (via acknowledgements):
consolenatswebsocketpulsar sink now allows authentication via OAuth2 via new auth.oauth2 configuration option.gcp_pubsub source has been improved by automatically scaling up the number of
consumers within Vector to a maximum of the newly added max_concurrency option (defaults to
10).auth.api_key option. This was previously only supported by
the gcp_pubsub source and sink and ignored by all other GCP components.kubernetes_logs source no longer leaks resources (Tokio tasks) during configuration reload.vector source now reports the correct number of bytes received in component_received_bytes_total.aws_ec2_metadata transform now has a lower default request timeout, 1 second rather than 60
seconds, to allow Vector to fail more quickly if the IMDSv2 is unavailable. This can be configured via
the new refresh_timeout_secs option.tag_cardinality_limit now correctly deserializes the action option. Previously it would return an
error when trying to configure this option.There were some situations where VRL didn’t calculate the correct type definition of values which were fixed in this release. In some cases this can cause VRL compilation errors when upgrading if the code relied on the previous behavior due to unneeded type assertions. The VRL diagnostic error messages should guide you towards resolving them.
This affects the following:
| or |=) on objects that share keys with different typesabort expressiondel functionSee the upgrade guide for more details.
When end-to-end acknowledgements are enabled, the following sources now correctly handle negative acknowledgements by halting processing :
kafkajournaldfilePreviously these sources would continue processing, potentially resulting in dropped data.
datadog_traces sink now calculates statistics from incoming and forwards them to Datadog for use by the APM product.datadog_agent source now correctly parses the namespace of incoming metrics from the agent by
looking for the first .. For example a metric of system.bytes_read would have a namespace of
system and a name of bytes_read. This fixes interoperability issues with the datadog_metrics sink
which is capable of adding a default namespace if the incoming metrics do not have one.parse_aws_cloudwatch_log_subscription_message type definition was corrected so the .events
field is correctly identified as an array of objects rather than an object.parse_int function now correctly parses the string 0 as 0 without setting the base.
Previously it would return an error.syslog source, the syslog codec, and the parse_syslog VRL function.gcp_pubsub source now sends heartbeats to the server to avoid inactivity timeouts. The default for
this is 75 seconds but can be configured via the added keepalive_secs parameter.gcp_pubsub source configuration options ending in _seconds were renamed to end in _secs to
match other Vector configuration options that take a number of seconds. The original names are aliased,
but deprecated so configuration should be updated to use the new names.datadog_logs sink now correctly retries requests due to aborted connections.pulsar sink now sends the event timestamp as the message timestamp, if the event has one.syslog source and VRL’s parse_syslog structured data fields were made consistent in their
handling. See the upgrade guide for more
details.The parse_grok function now always omits fields from the pattern that did not match the input, dropping the remove_empty parameter.
See the upgrade guide for details.
Due to changes to the tool we use for cross-compiling Vector,
support for operating systems with old versions of libc and libstdc++ were dropped for the
x86-unknown_linux-gnu target. Vector now requires that the host system has libc >= 2.18 and
libstdc++ >= 3.4.21 with support for ABI version 1.3.8.
Known OSes that this affects:
We will be looking at options to re-add support for these OSes in the future.
opentelemetry source and sink in
Q3 (starting from the contribution from
caibirdme)!.Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter