Vector’s pipeline model is based on a directed acyclic graph of components that contains independent subgraphs. Events must flow in a single direction from sources to sinks and can’t create cycles. Each component in the graph can produce zero or more events.
A Vector pipeline is defined through a TOML, YAML, or JSON configuration file. For maintainability, many Vector users use configuration and data templating languages like Jsonnet or CUE.
Configuration is checked at pipeline compile time (when Vector boots). This prevents simple mistakes and enforces DAG properties.
Vector’s configured pipeline can be adjusted in real time without restarting Vector.
Vector supports hot reloading to apply any configuration changes. This is achieved by sending a
SIGHUP process signal to Vector’s process.
Vector also includes an API that allows for real-time observation and manipulation of a running Vector instance.