# Tenzir Node v4.17.0

## 🚀 Features

### Fix healthcheck in docker-compose.yaml

Apr 18, 2025 · [@lo-chr](https://github.com/lo-chr) · [#5126](https://github.com/tenzir/tenzir/pull/5126)

`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.

### Add the `ttl` to the `/pipeline/list` API

Jun 20, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4314](https://github.com/tenzir/tenzir/pull/4314)

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.

### Make the parallel level in `lookup` configurable

Jun 18, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4300](https://github.com/tenzir/tenzir/pull/4300)

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.

### Fix a potential crash in `enrich --replace`

Jun 12, 2024 · [@tobim](https://github.com/tobim) · [#4291](https://github.com/tenzir/tenzir/pull/4291)

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.

### Add a `rendered` field to diagnostics

Jun 12, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4290](https://github.com/tenzir/tenzir/pull/4290)

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`.

### Print Operator

Jun 7, 2024 · [@balavinaithirthan](https://github.com/balavinaithirthan) · [#4265](https://github.com/tenzir/tenzir/pull/4265)

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

### Implement the `azure-log-analytics` plugin

Jun 7, 2024 · [@Dakostu](https://github.com/Dakostu) · [#4281](https://github.com/tenzir/tenzir/pull/4281)

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

### Allow pip to write to stdout in venv creation

Jun 6, 2024 · [@tobim](https://github.com/tobim) · [#4279](https://github.com/tenzir/tenzir/pull/4279)

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

## 🔧 Changes

### Include hidden pipelines in `show pipelines`

Jun 19, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4309](https://github.com/tenzir/tenzir/pull/4309)

`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.

### Remove built-in type aliases

Jun 17, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4299](https://github.com/tenzir/tenzir/pull/4299)

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.

## 🐞 Bug Fixes

### Add missing `-X` option for `kafka` saver

Jun 21, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4317](https://github.com/tenzir/tenzir/pull/4317)

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.

### Tone down execution node backoff behavior

Jun 17, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4297](https://github.com/tenzir/tenzir/pull/4297)

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.

### Fix start abort error message

Jun 12, 2024 · [@jachris](https://github.com/jachris) · [#4288](https://github.com/tenzir/tenzir/pull/4288)

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

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

Jun 12, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4289](https://github.com/tenzir/tenzir/pull/4289)

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`.

### Implement the `azure-log-analytics` plugin

Jun 7, 2024 · [@Dakostu](https://github.com/Dakostu) · [#4281](https://github.com/tenzir/tenzir/pull/4281)

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

### Make `ip == subnet` and `string == pattern` commutative

Jun 6, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4280](https://github.com/tenzir/tenzir/pull/4280)

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

[ Download on GitHub ](https://github.com/tenzir/tenzir/releases/tag/v4.17.0)

[Get the release artifacts and source code.](https://github.com/tenzir/tenzir/releases/tag/v4.17.0)