Skip to content

Tenzir Node v4.6.0

Download the release on GitHub.

The new apply operator includes pipelines defined in other files.

By @jachris in #3677.

The new, experimental parse operator applies a parser to the string stored in a given field.

By @jachris in #3665.

The operators from, to, load, and save support using URLs and file paths directly as their argument. For example, load https://example.com means load https https://example.com, and save local-file.json means save file local-file.json.

By @eliaskosunen in #3608.

The syslog parser allows reading both RFC 5424 and RFC 3164 syslog messages.

By @eliaskosunen in #3645.

The new yield operator extracts nested records with the ability to unfold lists.

By @jachris in #3651.

Introduce an experimental python pipeline operator

Section titled “Introduce an experimental python pipeline operator”

The python operator adds the ability to perform arbitrary event to event transformations with the full power of Python 3.

By @lava in #3592.

We added a new tcp connector that allows reading raw bytes from TCP or TLS connections.

By @dominiklohmann in #3664.

When using from <URL> and to <URL> without specifying the format explicitly using a read/write argument, the default format is determined by the file extension for all loaders and savers, if possible. Previously, that was only done when using the file loader/saver. Additionally, if the file name would indicate some sort of compression (e.g. .gz), compression and decompression is performed automatically. For example, from https://example.com/myfile.yml.gz is expanded to load https://example.com/myfile.yml.gz | decompress gzip | read yaml automatically.

By @eliaskosunen in #3653.

Use show without an aspect to return information about all aspects of a node.

By @dominiklohmann in #3650.

Implement context backends for the contextualizer

Section titled “Implement context backends for the contextualizer”

The closed-source context plugin offers a backend functionality for finding matches between data sets.

The new lookup-table built-in is a hashtable-based contextualization algorithm that enriches events based on a unique value.

The JSON format has a new --arrays-of-objects parameter that allows for parsing a JSON array of JSON objects into an event for each object.

By @Dakostu in #3684.

Add ‘min_events’ parameters to /serve endpoint

Section titled “Add ‘min_events’ parameters to /serve endpoint”

We optimized the behavior of the ‘serve’ operator to respond quicker and cause less system load for pipelines that take a long time to generate the first result. The new min_events parameter can be used to implement long-polling behavior for clients of /serve.

By @lava in #3666.

Use --allow-comments with the xsv parser (incl. csv, tsv, and ssv) to treat lines beginning with '#' as comments.

By @eliaskosunen in #3681.

The new --internal flag for the export operators returns internal events collected by the system, for example pipeline metrics.

By @jachris in #3619.

We renamed the name of our python package from pytenzir to tenzir.

By @lava in #3660.

We renamed the --bind option of the zmq connector to --listen.

By @dominiklohmann in #3664.

Consider discard, export, and import as internal operators

Section titled “Consider discard, export, and import as internal operators”

Ingress and egress metrics for pipelines now indicate whether the pipeline sent/received events to/from outside of the node with a new internal flag. For example, when using the export operator, data is entering the pipeline from within the node, so its ingress is considered internal.

By @dominiklohmann in #3658.

export --live now respects a subsequent where <expr> instead of silently discarding the filter expression.

By @jachris in #3619.

Support lists and null values and empty strings in XSV parser

Section titled “Support lists and null values and empty strings in XSV parser”

The csv, ssv, and tsv parsers now correctly support empty strings, lists, and null values.

The tail operator no longer hangs occasionally.

By @dominiklohmann in #3687.

Using the sort operator with polymorphic inputs no longer leads to a failing assertion under some circumstances.

By @jachris in #3655.

Last updated: