Vector v0.27.0 release notes
- Vector sources do not correctly tag the
component_events_in_totalandcomponent_events_out_totalinternal metrics with their component tags (component_id,component_kind, andcomponent_type). This affects reporting invector top. Fixed in v0.27.1. - The
log_schema.timestamp_keycannot be set to""to suppress adding a timestamp. Fixed in 0.28.2. - TCP-based sources like
socket,logstash, andfluentwould sometimes panic when back-pressure logic calculated a lower limit on the number of incoming connections than 2, which is intended to be the minimum limit. Fixed in 0.28.2.
The Vector team is pleased to announce version 0.27.0!
This release includes the usual litany of smaller enhancements and bug fixes as well as:
- Support for a new metric tag data model that supports a wider range of tags than the simple key/value pairs previously allowed including tags that are not key/value as well as tag keys that appear multiple times, with different values. See the release highlight for more details about this feature and how to enable it.
- Support for tracing memory allocations within Vector to aid in troubleshooting Vector’s memory use. See the announcement blog post for more details about this feature and how to enable it.
Be sure to check out the upgrade guide for breaking changes in this release.
Vector Changelog
3 new features
- Support for a new metric tag data model that supports a wider range of tags than the simple key/value pairs previously allowed including tags that are not key/value as well as tag keys that appear multiple times, with different values. See the release highlight for more details about this feature and how to enable it.
Vector has added support for tracking component memory allocations to help users understand which components may be allocating more memory than expected. This is an opt-in feature, due to ~20% performance overhead, available by passing
--allocation-tracingwhen running Vector. When enabled, theinternal_metricssource will publish newcomponent_allocated_bytes,component_allocated_bytes_total, andcomponent_deallocated_bytes_totalmetrics. These are will then also be viewable invector top.There is a caveat to the reported metrics in that memory passed between components is not tracked as allocations. For example, if a source allocates memory to store incoming events, those events are passed along to a downstream component, the memory will still appear as though owned by the source component that allocated it. We hope to improve this in the future to track memory passed between component boundaries.
See the announcement blog post for more details!
- New
decode_base16andencode_base16functions were added to VRL for interacting with base16 encoding.
Thanks to WilliamApted-Org for contributing this change!
14 enhancements
- A new
pathoption was added tolokisink to override the default URL path of/loki/api/v1/push.
Thanks to Sh4d1 for contributing this change! VRL no longer rejects querying an object returned by the
mergefunction. This fixes programs that look like:.object.key = "some value" . |= parse_key_value!(del(.message)) .object.key = "some other value" # previously would error- Supported enrichment table types are now output by
vector list.
Thanks to w4 for contributing this change! - The
pulsarsource now supports configuring a producer name to use via the newproducer_nameoption.
Thanks to zamazan4ik for contributing this change! - A new
absfunction was added to VRL to calculate the absolute value of a numeric value.
Thanks to zamazan4ik for contributing this change! - The
parse_cefnow has atransform_custom_fieldsparameter that can be set to extract custom key/value fields from the CEF message.
Thanks to ktff for contributing this change! - AWS components now support configuring custom IMDS request parameters that are used
during authentication:
auth.max_attempts,auth.connect_timeout, andauth.read_timeout.
Thanks to kevinpark1217 for contributing this change! - The
pulsarsink now supports compression via the standardcompressionoption.
Thanks to zamazan4ik for contributing this change! - The
kubernetes_logssource now more efficiently parses CRI logs.
Thanks to Ilmarii for contributing this change! - The
natssource now allows adding the subject key to the event as metadata by settingsubject_key_fieldto the name of the field you’d like to store the subject key in.
Thanks to makarchuk for contributing this change! - The
datadog_logssink now allows configuring custom HTTP request headers. This is not typically needed when sending logs directly to Datadog. - The
lokisink is now more efficient by sending events with multiple label sets in the same request rather than separating them.
Thanks to atodekangae for contributing this change! - The
kubernetes_logssource now supports theread_fromandignore_older_secsoptions that exist on thefilesink which offer further control how Vector reads from the pod log files.
Thanks to zamazan4ik for contributing this change! - The
aws_kinesis_firehosesource now supports configuring multiple valid access keys. This is useful during key rotation.
Thanks to dizlv for contributing this change!
13 bug fixes
- The
kafkasource and sink now accepts inline PEM-encoded certificates fortls.crt_fileto match other sources and sinks (and the documented behavior).
Thanks to nabokihms for contributing this change! - Vector avoids panicking when reloading under load.
Thanks to Zettroke for contributing this change! - The
kubernetes_logssource again disabling annotation of namespace labels by settingnamespace_labelsto""again. This was regression in v0.26.0. - Vector now gracefully shutsdown if the Vector API cannot
bind to the configured port.
Thanks to zamazan4ik for contributing this change! - Vector now gracefully shutsdown if the a configured
prometheus_exportercannot bind to the configured port.
Thanks to zamazan4ik for contributing this change! - Vector now gracefully shutsdown if the a configured
httpcannot bind to the configured port.
Thanks to zamazan4ik for contributing this change! - The
elasticsearchsink now accepts reading compressed responses. It uses thecompressionoption to set anAccept-Encodingoption in requests to Elasticsearch. - The
aws_ec2_metadatatransform is now capable of fetching instance tags by specifying the tags to fetch in the newtagsoption.
Thanks to blefevre for contributing this change! - The
aws_cloudwatch_metricsnow supports sending 30 dimensions, rather than 10, as the AWS API now accepts this number of dimensions. - Use of the
filterfunction in the VRL REPL no longer panics. - The
httpsink now allows overriding theContent-Typeheader viarequest.headers.
Thanks to EdMcBane for contributing this change! - Vector now supports being run on operating systems with an older version of GNU libc
(>=2.17) for the x86_64 architecture. This includes OSes such as CentOS 7, Amazon
Linux 1, and Ubuntu 14.04.
Thanks to apollo13 for contributing this change! - The
remaptransform now falls back to using the globally configuredtimezoneif one is not set at theremaptransform level.