Skip to content

Tenzir Node v4.17.0

Download the release on GitHub.

The enrich operator no longer crashes when it is used to replace a field value with a context value of a different type and the context is not able to provide a substitute for all inputs.

By @tobim in #4291.

The new azure-log-analytics operator makes it possible to upload events to supported or custom tables in Microsoft Azure.

By @Dakostu in #4281.

Make the parallel level in lookup configurable

Section titled “Make the parallel level in lookup configurable”

The lookup operator gained a new --parallel <level> option controlling the number of partitions the operator is allowed to open at once for retrospective lookups. This can significantly increase performance at the cost of higher resource usage. The option defaults to 3. To restore the previous behavior, set the option to 1.

By @dominiklohmann in #4300.

The /pipeline/list API now includes a new ttl field showing the TTL of the pipeline. The remaining TTL moved from ttl_expires_in_ns to a remaining_ttl field, aligning the output of the API with the show pipelines operator.

By @dominiklohmann in #4314.

Allow pip to write to stdout in venv creation

Section titled “Allow pip to write to stdout in venv creation”

We fixed bug that caused python-pip to fail when creating the runtime environment for the python operator.

By @tobim in #4279.

Newly created diagnostics returned from the diagnostics now contain a rendered field that contains a rendered form of the diagnostic. To restore the previous behavior, use diagnostics | drop rendered.

By @dominiklohmann in #4290.

context update <name> for lookup-table contexts now supports per-entry timeouts. The --create-timeout <duration> option sets the time after which lookup table entries expire, and the --update-timeout <duration> option sets the time after which lookup table entries expire if they are not accessed.

By @lo-chr in #5126.

The print operator allows for printing record fields as strings with any format.

By @balavinaithirthan in #4265.

The built-in type aliases timestamp and port for time and uint64, respectively, no longer exist. They were an artifact of Tenzir from before it supported schema inference in most parsers, and did not play well with many operators when used together with inferred types from other parsers.

By @dominiklohmann in #4299.

Include hidden pipelines in show pipelines

Section titled “Include hidden pipelines in show pipelines”

show pipelines now includes “hidden” pipelines run by the by the Tenzir Platform or through the API. These pipelines usually run background jobs, so they’re intentionally hidden from the /pipeline/list API.

By @dominiklohmann in #4309.

Make ip == subnet and string == pattern commutative

Section titled “Make ip == subnet and string == pattern commutative”

subnet == ip and pattern == string predicates now behave just like ip == subnet and string == pattern predicates.

By @dominiklohmann in #4280.

Errors during pipeline startup are properly propagated instead of being replaced by error: failed to run in some situations.

By @jachris in #4288.

The -X option for overriding configuration options for librdkafka now works the kafka saver as well. Previously, the option was only exposed for the loader, unlike advertised in the documentation.

By @dominiklohmann in #4317.

We fixed a regression that caused excess CPU usage for some operators when idle. This was most visible with the subscribe, export, metrics, diagnostics, lookup and enrich operators.

By @dominiklohmann in #4297.

The https and related savers now signal an error when the saver-related upload fails.

By @Dakostu in #4281.

Fix using summarize … by x when x is of type null

Section titled “Fix using summarize … by x when x is of type null”

The summarize operator no longer crashes when grpuping by a field of type null, i.e., a field whose type could not be inferred because all of its values were null.

By @dominiklohmann in #4289.

Last updated: