Skip to content

Latest commit

 

History

History
102 lines (69 loc) · 4.86 KB

2023-09-26-0-33-0-upgrade-guide.md

File metadata and controls

102 lines (69 loc) · 4.86 KB
date title description authors release hide_on_release_notes badges
2023-09-26
0.33 Upgrade Guide
An upgrade guide that addresses breaking changes in 0.33.0
spencergilbert
neuronull
pront
dsmith3197
0.33.0
false
type
breaking change

Vector's 0.33.0 release includes breaking changes:

  1. Behavior of the datadog_logs sink's endpoint setting
  2. Disable OpenSSL legacy provider by default

and deprecations:

  1. Default config location change
  2. Renaming the armv7 rpm package
  3. Metadata field in the Vector protobuf definition

and potentially impactful changes:

  1. Async runtime default number of worker threads
  2. Setting request.concurrency = "none"

We cover them below to help you upgrade quickly:

Upgrade guide

Breaking changes

Behavior of the datadog_logs sink's endpoint setting {#datadog-logs-endpoint}

The endpoint configuration setting is common to each of the Datadog sinks. Before this change, when endpoint was set, the logs sink took the provided endpoint as the complete URL (including API path) to use for posting HTTP requests. This behavior is inconsistent with the other Datadog sinks, which use the endpoint as a base URL that the API path (eg. "/api/v2/logs"), is appended to.

With this release, the datadog_logs sink's behavior is now consistent with the other Datadog sinks for the endpoint setting.

Disable OpenSSL legacy provider by default {#openssl-legacy-provider}

Vector upgraded the version of OpenSSL that it statically compiles in to v3.1.x in the 0.32.0 release. Following our deprecation policy, v0.33.0 now disables the legacy OpenSSL provider by default. It can be enabled via an OpenSSL configuration file. The file location defaults to /usr/local/ssl/openssl.cnf or can be specified with the OPENSSL_CONF environment variable.

Deprecations

Default config location change {#default-config-location-change}

The default config location /etc/vector/vector.toml which is used by Vector 0.32.0 is now deprecated. This location will still be used in 0.33.0. The new default path is /etc/vector/vector.yaml, please migrate to this new default path or specify the config path explicitly.

Vector 0.33.0 will attempt to load /etc/vector/vector.toml first, and if it is not present, it will fallback to /etc/vector/vector.yaml. However, Vector release 0.34.0 will automatically load /etc/vector/vector.yaml only.

Renaming the armv7 rpm package {#armv7-rename}

The armv7 rpm package, vector-<version>-1.armv7.rpm, is now published as vector-<version>-1.armv7hl.rpm to better follow rpm guidelines. The armv7 package will be no longer be published beginning in the 0.34.0 release.

Metadata field in the Vector protobuf definition {#vector-proto-metadata}

This release adds a new Metadata proto Message which is appended to the end of the Metric message of the Vector proto. Prior to this release, the existing metadata field contained only a single field from Vector's EventMetadata structure. The newly added field (event_metadata) represents a structure that can contain any field added that needs to be included from EventMetadata.

In order to preserve backwards comatability, the existing metadata field is available to use as-is, but is noted as deprecated.

In a future release, this field index (19) will be fully unsupported and marked as a reserved field in the proto definition. Any users setting the Value metadata field at index 19 should change to populate the event_metadata.value instead.

Potentially impactful changes

Async runtime default number of worker threads {#runtime-worker-threads}

We've changed the default number of worker threads spawned by Vector's async runtime from being the number of CPUs on the host machine to the value returned by std::thread::available_parallelism(). This should be a better default value for containerized environments where the container has limited quotas, but note this change may impact performance.

The number of worker threads used can be seen by enabling debug logging, and the value can be overriden by setting the VECTOR_THREADS environment variable.

Setting request.concurrency = "none" {#request-concurrency}

Explicitly setting request.concurrency = "none" in a sink configuration now properly configures the sink to have a fixed concurrency limit of 1, as was stated in the documentation. Previously, the above configuration would result in the sink using adaptive request concurrency. The default setting remains unchanged (adaptive request concurrency).