0.27 Upgrade Guide
An upgrade guide that addresses breaking changes in 0.27.0
Vector’s 0.27.0 release includes breaking changes:
statsdcomponents now support enhanced metric tagsdatadog_agentsource now supports enhanced metric tags- Changes to
nativeandnative_jsoncodecs
and potentially impactful changes:
and deprecations:
We cover them below to help you upgrade quickly:
Upgrade guide
Breaking changes
statsd components now support enhanced metric tags
Prior to this release, the statsd source parsed incoming empty tags (tags with a key
but no value), as having a boolean value “true”. For example, in the tagset
“atag,btag:bvalue” , the tag “atag” would be parsed to a value of “true”.
With this release, that behavior is now changed and the statsd source parses empty tags
as empty tags.
Similarly, prior to this release, the statsd sink encoded metric tags with a boolean value
of “true”, to being an empty tag.
With this release, the statsd sink now correctly encodes a value of “true” to “true”, and
empty tags as empty tags.
datadog_agent source sink now supports enhanced metric tags
Prior to this release, the datadog_agent source parsed incoming empty tags (tags with
a key but no value) as empty strings. With this release, empty tags are properly parsed
as empty tags.
Changes to native and native_json codecs
The native and native_json codecs have been modified to include support for enhanced tags (bare
tags or multi-valued tags) on metrics by optionally encoding tag values as arrays of values. This
will cause Vector, when using these codecs and a metric source or transform that generates enhanced
tags, to emit metrics that are not backwards compatible with previous versions. Vector can continue
to load in events emitted by older versions.
This has two potential implications that you should consider:
Disk buffers should be backed up if you want to be able to roll back to an older Vector version since new disk buffer entries may not be readable by older Vector versions. The disk buffers location can be found under the Vector data directory.
When upgrading Vector to Vector communication using the
vectorsource and sink or thenativeornative_jsoncodecs, make sure you upgrade the consumers first followed by the producers to ensure newer versions of Vector aren’t sending data to older versions, which may not be able to be read.
Potentially impactful changes
Increase in possible tags sent with aws_cloudwatch_metrics sink
Before this release, the aws_cloudwatch_metrics sink would only send up to ten
tags to AWS as metric dimensions. This limit has been increased to thirty based
on the current documentation.
This could increase the cardinality of your metrics by including previously dropped tags. The following VRL program would allow you to drop tags when there are more than ten, maintaining the original behavior.
count = 10
tags = {}
for_each(object!(.tags)) ->|key, value| {
if count > 0 {
count = count - 1
tags = set!(tags, [key], value)
}
}
.tags = tags
Deprecation Notices
aws_kinesis_firehose source’s access_key deprecated in favor of access_keys
Before this release, the aws_kinesis_firehose source would only allow matching against
single configured access keys. Now multiple access keys can be configured via access_keys configuration option.
For now, both access_key and access_keys are supported, via merging them to the single output parameter.
Afterwards, only access_keys will be supported.