VRL is a scripting language for processing observability data (logs, metrics, traces). Although VRL was originally created for use in Vector, it was designed to be generic and re-usable in many contexts.
VRL is broken up into multiple components, which can be enabled as needed.
Feature | Default | Description |
---|---|---|
compiler | yes | The contains the core functionality of VRL. Compiling and running VRL programs. |
parser | yes | Creates an abstract syntax tree (AST) from VRL source code. |
value | yes | Contains the primary data type used in VRL. |
diagnostic | yes | Logic related to errors and displaying info about them. |
path | yes | Contains the parser, datatypes, and functions related to VRL paths. |
stdlib | yes | All of the VRL functions from the standard library. |
stdlib_* | yes | Each stdlib function has it's own feature to enable/disable them. |
core | yes | Various data structures and utility methods (these may be renamed / moved in the future). |
datadog_filter | yes | Implements the Datadog log search query filter syntax. |
datadog_grok | yes | Implements the Datadog grok parser. (used with parse_grok and parse_groks in the stdlib). |
datadog_search | yes | Implements the Datadog log search syntax. |
cli | no | Contains functionality to create a CLI for VRL. |
test_framework | no | Contains the test framework for testing VRL functions. Useful for testing custom functions. |
lua | no | Makes the Value type compatible with the mlua crate. |
arbitrary | no | Implements Arbitrary (from the quickcheck crate) for the Value type |
All of the core features, and most of the standard library functions can be compiled with the wasm32-unknown-unknown
target.
There are a few stdlib functions that are unsupported. These will still compile, but abort at runtime.
Unsupported functions:
parse_grok
parse_groks
log
get_hostname
reverse_dns