0.37 Upgrade Guide

An upgrade guide that addresses breaking changes in 0.37.0

Vector’s 0.37.0 release includes breaking changes:

  1. Vector defaults to requiring non-optional environment variables
  2. The dnstap source now requires the mode parameter

and potentially impactful changes:

  1. geoip enrichment tables no longer fallback to the GeoIP-City type

We cover them below to help you upgrade quickly:

Upgrade guide

Breaking Changes

Vector defaults to requiring non-optional environment variables

Vector has the ability to interpolate environment variables into its configuration as a means of templating configuration. Now, if an environment variable is undefined, unless the - interpolation syntax is used to provide a default, Vector will output an error and stop. This behavior can be opted out of by setting the --strict-env-vars flag (or VECTOR_STRICT_ENV_VARS environment variable) to false when running Vector; however, this behavior is deprecated and this flag to opt out will be removed in a future release. If you want to have Vector start-up even if an environment variable is undefined you can provide a default like ${FOO-bar} to default FOO to bar if it is unset.

The reasoning for this change is that users often miss the undefined variable warning and are confused by Vector not behaving as the expected. In particular, this happens when using $1 in regex capture groups in VRL without realizing they need to be escaped as $$1 to avoid interpolation.

The dnstap source now requires the mode parameter

The dnstap source now requires the mode parameter with the addition of support for reading events over a TCP socket. Set this to unix to continue reading from the Unix socket configured as socket_path.

Potentially impactful changes

geoip enrichment tables no longer fallback to the GeoIP-City type

With the addition of the new mmdb enrichment table type, the existing geoip2 enrichment table type no longer falls back assuming the database is a GeoIP-City database when the type is unknown. We don’t expect this to affect anyone, but the fix is to ensure that the MMDB database type is correctly set to GeoIP2-City if the database is a GeoIP2-City database.

For custom MMDBs, that are not GeoIP2 databases, the new mmdb enrichment table can be used instead to read the MMDB records exactly as they are.