Skip to content

Tenzir Node v4.12.0

Download the release on GitHub.

The suricata parser’s schema now more accurately reflects Suricata’s Eve JSON output, adding many fields that were previously missing.

By @satta in #4133.

Add value grouping to chart and remove --title

Section titled “Add value grouping to chart and remove --title”

Some charts supported by the chart operator (bar, line, and area) now have a --position argument, with the possible values of grouped and stacked.

By @jachris in #4119.

Add a --timeout <duration> option to batch

Section titled “Add a --timeout <duration> option to batch”

The batch operator gained a new --timeout <duration> option that controls the maixmum latency for withholding events for batching.

By @dominiklohmann in #4095.

You can now define contexts and their creation parameters in the tenzir.contexts section of the configuration file.

By @tobim in #4126.

Add show schemas to display all available schemas

Section titled “Add show schemas to display all available schemas”

The show schemas operator lists all unique schemas of events stored at the node.

By @dominiklohmann in #4131.

The bitz format resembles Tenzir’s internal wire format. It enables lossless and quick transfer of events between Tenzir nodes through any connector.

By @dominiklohmann in #4079.

Stopping a failed pipeline now moves it into the stopped state in the app and through the /pipeline/update API, stopping automatic restarts on failure.

Pipelines now restart on failure at most every minute. The new API parameter retry_delay is available in the /pipeline/create, /pipeline/launch, and /pipeline/update APIs to customize this value. For configured pipelines, the new restart-on-error option supersedes the previous autostart.failed option and may be set either to a boolean or to a duration, with the former using the default retry delay and the latter using a custom one.

The output of show pipelines and the /pipeline/list API now includes the start time of the pipeline in the field start_time, the newly added retry delay in the field retry_delay, and whether the pipeline is hidden from the overview page on app.tenzir.com in the field hidden.

By @Dakostu in #4108.

The unroll operator transforms an event that contains a list into a sequence of events where each output event contains one of the list elements.

By @jachris in #4078.

The new udp connector comes with a loader and saver to read bytes from and write bytes to a UDP socket.

By @mavam in #4067.

The 0mq connector now supports inproc socket endpoint URLs, allowing you to create arbitrary publish/subscribe topologies within a node. For example, save zmq inproc://foo writes messages to the in-process socket named foo.

By @mavam in #4117.

Generalize every to work with all operators

Section titled “Generalize every to work with all operators”

The every <duration> operator modifier now supports all operators, turning blocking operators like tail, sort or summarize into operators that emit events every <duration>.

By @dominiklohmann in #4109.

Syslog messages spanning multiple lines are now supported.

By @eliaskosunen in #4080.

The deduplicate operator allows removing duplicate events based on specific fields.

By @eliaskosunen in #4068.

The 0mq connector no longer automatically monitors TCP sockets to wait until at least one remote peer is present. Explicitly pass --monitor for this behavior.

By @mavam in #4117.

The show pipelines operator and /pipeline/list endpoint no longer include pipeline metrics. We recommend using the metrics operator instead, which offers the same data in a more flexible way.

By @dominiklohmann in #4114.

Add value grouping to chart and remove --title

Section titled “Add value grouping to chart and remove --title”

In the chart operator, unless otherwise specified, every field but the first one is taken to be a value for the Y-axis, instead of just the second one.

If the value for -x/--name or -y/--value is explicitly specified, the other one must now be too.

The --title option is removed from chart. Titles can instead be set directly in the web interface.

By @jachris in #4119.

The tenzir-ctl count <expr> command no longer exists. It has long been deprecated and superseded by pipelines of the form export | where <expr> | summarize count(.).

The deprecated tenzir-ctl status command and the corresponding /status endpoint no longer exist. They have been superseded by the show and metrics operators that provide more detailed insight.

The deprecated tenzir.aging-frequency and tenzir.aging-query options no longer exist. We recommend using the compaction or disk monitor mechanisms instead to delete persisted events.

By @dominiklohmann in #4103.

Lines of input containing an invalid syslog messages are now assumed to be a continuation of a message on a previous line, if there’s any.

By @eliaskosunen in #4080.

Remove events output from many context operators

Section titled “Remove events output from many context operators”

The context create, context reset, context update, and context load operators no return information about the context. Pipelines ending with these operators will now be considered closed, and you will be asked to deploy them in the Explorer. Previously, users commonly added discard after these operators to force this behavior.

By @dominiklohmann in #4143.

The feather format now reads and writes Arrow IPC streams in addition to Feather files, and no longer requires random access to a file to function, making the format streamable with both read feather and write feather.

By @balavinaithirthan in #4089.

The parquet format more efficiently reads and writes Parquet files. The format is streamable for write parquet.

By @balavinaithirthan in #4116.

Make python operator not discard fields that start with an underscore

Section titled “Make python operator not discard fields that start with an underscore”

The python operator no longer discards field that start with an underscore.

By @jachris in #4085.

The tcp connector now supports accepting multiple connections in parallel when used with the from operator, parsing data separately per connection.

By @dominiklohmann in #4084.

Fix shutdown of connected pipelines alongside node

Section titled “Fix shutdown of connected pipelines alongside node”

Pipelines run with the tenzir binary that connected to a Tenzir Node did sometimes not shut down correctly when the node shut down. This now happens reliably.

By @dominiklohmann in #4093.

Tenzir Docker images no longer expose 5158/tcp by default, as this prevented running multiple containers in the same network or in host mode.

By @dominiklohmann in #4099.

Fix unflattening of empty records and null records

Section titled “Fix unflattening of empty records and null records”

Empty records and null values of record type are now correctly unflattened.

By @jachris in #4104.

Remove events output from many context operators

Section titled “Remove events output from many context operators”

The enrich operator sometimes stopped working when it encountered an event for which the specified fields did not exist. This no longer happens.

By @dominiklohmann in #4143.

Fix verification of large FlatBuffers tables

Section titled “Fix verification of large FlatBuffers tables”

Lookup tables with more than 1M entries failed to load after the node was restarted. This no longer happens.

By @dominiklohmann in #4137.

We fixed a bug that caused the explorer to sometimes show 504 Gateway Timeout errors for pipelines where the first result took over two seconds to arrive.

By @dominiklohmann in #4123.

Shut down node a configured pipeline fails to start

Section titled “Shut down node a configured pipeline fails to start”

Nodes now shut down with a non-zero exit code when pipelines configured as part of the tenzir.yaml file fail to start, making such configuration errors easier to spot.

By @dominiklohmann in #4097.

The http saver now correctly sets the Content-Length header value for HTTP POST requests.

By @mavam in #4134.

The schema name of events returned by show contexts sometimes did not match the type of the context. This now works reliably.

By @dominiklohmann in #4082.

The JSON printer previously printed invalid JSON for inf and nan, which means that serve could sometimes emit invalid JSON, which is not handled well by platform/app. Instead, we now emit null.

By @jachris in #4087.

We fixed a bug in the http saver that prevented sending HTTP PUT requests with an empty request body.

By @mavam in #4092.

The python operator no longer deadlocks when given an empty program.

By @jachris in #4086.

Last updated: