Vector provides a subcommand validate which checks the validity of any number of configuration files and then exits:

vector validate /etc/vector/vector.toml

The validate subcommand checks the correctness of fields for components defined within a configuration file, including:

  1. All sources, transforms, and sinks include all non-optional fields.
  2. All fields are of the proper type.

If validation fails, Vector will exit with a 78, and if validation succeeds Vector will exit with a 0.

These checks can be expanded with flags such as --topology, which causes validate to also verify that the configuration file contains a valid topology, expanding the above checks with the following:

  1. At least one source is defined.
  2. At least one sink is defined.
  3. All inputs values contain at least one value (cannot be empty).
  4. All inputs values reference valid and upstream source or transform components.

To see other customization options for the validate subcommand run vector validate --help.

Validating Environment

Vector also provides a --dry-run option which prevents regular execution and instead validates a configuration file as well as the runtime environment:

vector --config /etc/vector/vector.toml --dry-run

If a dry run fails, Vector will exit with a 78, and if it succeeds Vector will exit with a 0.

A dry run expands upon the validation checks above with the following:

  1. All components are capable of running (data directories exist, are writable, etc).

You'll notice in the second example above you can pass the --require-healthy flag to also run health checks for all defined sinks.

  1. All sinks are able to connect to their targets.