Vector v0.32.0 release notes

The Vector team is pleased to announce version 0.32.0!

Be sure to check out the upgrade guide for breaking changes in this release.

In addition to the usual enhancements and bug fixes, this release includes:

  • a new greptimedb sink for sending metrics to GreptimeDB
  • a new protobuf codec that can be used on sources that support codecs to decode incoming protobuf data
Upgrading Vector
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.


Known issues

  • A number of sinks emit incorrect telemetry for the component_sent_* metrics:

    • WebHDFS
    • GCP Cloud Storage
    • AWS S3
    • Azure Blob Storage
    • Azure Monitor Logs
    • Databend
    • Clickhouse
    • Datadog Logs

    This is fixed in v0.32.1.

  • The newly added --openssl-legacy-provider flag cannot actually be disabled by setting it to false via --openssl-legacy-provider=false. Instead it complains of extra arguments. This is fixed in v0.32.1.
  • For AWS components, using assume_role for authentication without an external_id caused a panic. This is fixed in v0.32.2`.


7 enhancements

  • The clickhouse sink database and table options are now templatable.
  • The prometheus_scrape source now scrapes configured targets in parallel. Thanks to nullren for contributing this change!
  • The prometheus_scrape source now has a scrape_timeout_secs option to configure how long Vector should wait for each request. Thanks to nullren for contributing this change!
  • Vector’s debian Docker images are now based on Debian 12 (Bookworm).
  • Vector sources that support codecs now support protobuf as an option. A Protobuf descriptor file must also be provided to use to decode the data. Thanks to Daniel599 for contributing this change!
  • VRL’s encrypt and decrypt functions now support additional algorithms:

    • CHACHA20-POLY1305
    • XCHACHA20-POLY1305
    • XSALSA20-POLY1305
    • AES-*-CTR-BE (to disambiguate endianess of AES-*-CTR)
    • AES-*-CTR-LE (to disambiguate endianess of AES-*-CTR)
    Thanks to alisa101rs for contributing this change!
  • The nats source and sink have been switched to use a more modern NATS library to lay the groundwork for a JetStream source. Thanks to paolobarbolini makarchuk for contributing this change!

2 new features

  • A new greptimedb sink was added allowing Vector to send metrics to GreptimeDB. Thanks to sunng87 for contributing this change!
  • Configuration fields that are field lookups (such as log_schema.timestamp_key) are now parsed at boot-time rather than run-time. In addition to better performance, this also means that invalid paths return an error at start time rather than being silently ignored at runtime.

16 bug fixes

  • The lua transform now sets the source_id metadata to its own component ID if an event is emitted by the transform that has no origin source_id (e.g. events constructed in the transform itself).
  • VRL conditions included in configurations (e.g. the filter transform) are now checked at boot-time to ensure that they return a boolean instead of treating all non-boolean return values as false .
  • The vector sink now considers DataLoss responses to be hard errors at indicates the a sink in the downstream vector source rejected the data. The vector sink will now not retry these errors and also reject them in any connected sources (when acknowledgements are enabled). Thanks to sbalmos for contributing this change!
  • The vector sink now correctly applies configured HTTPS proxy settings. Previously it would fail to validate the downstream certificate. Thanks to joemiller for contributing this change!
  • The splunk_hec source now treats the fields on incoming events as “flat” rather than interpreting them as field paths. For example, an incoming field is now inserted as {"": "..."} rather than {"foo": {"bar": "..."}}. This avoids panics that were caused by invalid paths.
  • Fractional second configuration options are now correctly parsed as fractional. Previously they would round to the nearest second. Thanks to sbalmos for contributing this change!
  • The Vector API can now correctly be disabled during reload by setting api.enabled to false. Thanks to KH-Moogsoft for contributing this change!
  • The component_received_event_bytes_total and component_sent_event_bytes_total metrics for sinks are now calculated after any encoding.only_fields or encoding.except_fields options are applied.
  • The websocket sink now correctly sends data as binary for “binary” codecs: raw, native, and avro. Previously it would always interpret the bytes as text (UTF-8). Thanks to zhongchen for contributing this change!
  • The syslog source now correctly handles escape sequences appearing the structured data segment.
  • Numeric compression levels can now be set when using TOML. Previously Vector would fail to parse the configuration. This already worked for YAML and JSON configurations.
  • Sinks that support Adaptive Request Concurrency options now support configuring an initial_concurrency to start the concurrency limit at rather than starting at a limit of 1. Thanks to blake-mealey for contributing this change!
  • VRL’s encode_logfmt function now escapes all values including =s.
  • VRL’s parse_nginx_log function now handles more combined formats. Thanks to scMarkus for contributing this change!
  • The azure_blob_storage sink now sets the correct content-type based on the configured encoding options. Thanks to stemjacobs for contributing this change!
  • The vector source no longer fails to decode large payloads. This was a regression in 0.31.0 when a 4 MB limit was inadvertently applied.

Download Version 0.32.0

Linux (deb)
Linux (rpm)
Windows (MSI)