The Vector team is excited to announce version 0.51.0!
Please refer to the upgrade guide for breaking changes in this release.
otlp codec, enabling
bidirectional conversion between Vector events and OTLP format for seamless integration with
OpenTelemetry collectors and instrumentation.config_reload_rejected and config_reloaded counters,
and fixed issues where utilization metrics reported negative values and buffer counters underflowed.expired output for exporting expired cache items,
and made enrichment table outputs accessible via vector tap.Environment variable interpolation in configuration files now rejects values containing newline characters. This prevents configuration
injection attacks where environment variables could inject malicious multi-line configurations. If you need to inject multi-line
configuration blocks, use a config pre-processing tool like envsubst instead
or update your configuration files so that they don’t rely on block injections.
Vector’s internal topology debug! and trace! logs now use the component_id field name instead of component or key.
If you are monitoring or filtering Vector’s internal logs based on these field names, update your queries to use component_id.
The utilization metric is now capped at 4 decimal digit precision.
Support for legacy fingerprints in the file source was dropped. Affected users may be
ones that have been running Vector since version 0.14 or earlier. Consult the upgrade guide for more details.
Following this announcement, we will no longer publish x86_64-apple-darwin builds.
this means we will not be validating if Vector builds and works correctly on that platform.
truncate options to file sink to truncate output files after some time.vector test when running non-interactively. Honor --color {auto|always|never} and VECTOR_COLOR; VRL diagnostics no longer include ANSI sequences when color is disabled.compression setting.expired output to the memory enrichment table source, to export items as they expire in the cache.journald source now provides better error visibility by capturing and displaying stderr output from the underlying journalctl process as warning messages.config_reload_rejected and config_reloaded counters.otlp codec for decoding OTLP format to Vector events, complementing the existing OTLP encoder.otlp codec for encoding Vector events to OTLP format.
The codec can be used with sinks that support encoding configuration.path configuration option to prometheus_remote_write source to allow accepting metrics on custom URL paths instead of only the root path. This enables configuration of endpoints like /api/v1/write to match standard Prometheus remote write conventions.split_metric_namespace option to the datadog_agent source to
optionally disable the existing default metric name split behavior.The aws_s3 source now uses exponential backoff when retrying failed SQS receive_message operations. Previously, the source used a fixed 500ms delay between retries.
The new behavior starts at 500ms and doubles with each consecutive failure, capping at 30 seconds. This prevents excessive API calls during prolonged AWS SQS outages, invalid IAM permissions, or throttling scenarios, while still being responsive when the service recovers.
use_json_names option to protobuf encoding and decoding.
When enabled, the codec uses JSON field names (camelCase) instead of protobuf field names (snake_case).
This is useful when working with data that uses JSON naming conventions.mqtt sink.vector tap command.azure_blob sink by enabling a missing required crate feature.docker_logs source where the docker_host option and DOCKER_HOST environment variable were ignored if they started with unix:// or npipe://. In those cases the default location for the Docker socket was usedfluent source.opentelemetry source bug where HTTP payloads were not decompressed according to the request headers.
This only applied when use_otlp_decoding (recently added) was set to true.prometheus_remote_write source now has a metadata_conflict_strategy option so you can determine how to handle conflicting metric metadata. By default, the source continues to reject requests with conflicting metadata (HTTP 400 error) to maintain backwards compatibility. Set metadata_conflict_strategy to ignore to align with Prometheus/Thanos behavior, which silently ignores metadata conflicts.file source legacy checkpoints stored in the checkpoints folder (Vector < 0.11) which is located inside the data_dir.< 0.15).fingerprint.bytes option was also removed.You can stop reading if you
file source on or after version 0.15, ordata_dir on or after version 0.15, orcheckpoints.json files nested inside data_dir fail to load due to legacy/corrupted data.You are only affected if your Vector version is:
>= 0.11 and < 0.15, then your checkpoints are using the legacy checkpoint checksum CRC format.>= 0.11 and < 0.15, then the checksum key is present under checkpoints.fingerprint in your checkpoints.json (instead of first_lines_checksum).< 0.11 and you are using the legacy checkpoints folder and/or the unknown key is present under checkpoints.fingerprint in any checkpoints.json files nested inside data_dir.#1 or #2
Run the file source with any version of Vector >= 0.15, but strictly before 0.51 and the checkpoints should be automatically updated.
For example, if you’re on Vector 0.10 and want to upgrade, keep upgrading Vector until 0.14 and Vector will automatically convert your checkpoints.
When upgrading, we recommend stepping through minor versions as these can each contain breaking changes while Vector is pre-1.0. These breaking changes are noted in their respective upgrade guides.
Odds are the file source automatically converted checkpoints to the new format if you are using a recent version and you are not affected by this at all.
#3
You should manually delete the unknown checkpoint records from all checkpoints.json files nested inside data_dir
and then follow the upgrade guide for #1 and #2. If you were using a recent version of Vector and unknown
was present it wasn’t being used anyways.
envsubst instead.debug! and trace! logs now use the component_id field name instead of component or key.
If you are monitoring or filtering Vector’s internal logs based on these field names, update your queries to use component_id.utilization metric is now capped at 4 decimal digit precision.x86_64-apple-darwin builds.
This means we will not be validating if Vector builds and works correctly on that platform.find function has been changed to null instead of -1 if there is no match.authors: titaneric (https://github.com/vectordotdev/vrl/pull/1514)
basename function to get the last component of a path.authors: titaneric (https://github.com/vectordotdev/vrl/pull/1531)
dirname function to get the directory component of a path.authors: titaneric (https://github.com/vectordotdev/vrl/pull/1532)
split_path function to split a path into its components.authors: titaneric (https://github.com/vectordotdev/vrl/pull/1533)
http_proxy and https_proxy parameters to http_request for setting the proxies used for a request. (https://github.com/vectordotdev/vrl/pull/1534)Integer into a protobuf double when using encode_protoauthors: thomasqueirozb (https://github.com/vectordotdev/vrl/pull/1545)
parse_glog to accept space-padded thread-id. (https://github.com/vectordotdev/vrl/pull/1515)Sign up to receive emails on the latest Vector content and new releases
Thank you for joining our Updates Newsletter