Skip to content

Feb 25, 2025 · @IyeOnline · #5001

The write_xsv family of operators now accepts multi-character separators, instead of being restricted to a single character.

We added the write_kv operator, allowing you to write events as Key-Value pairs.

We added the functions any.print_json() and any.print_yaml() to print any value as a JSON or YAML string.

We added the functions record.print_kv(), record.print_csv(), record.print_ssv(), record.print_tsv() and record.print_xsv() to print records as the respective format.

Feb 21, 2025 · @raxyte · #4985

New functions years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds and nanoseconds convert a numeric value to the equivalent duration. Their counterpart count_* functions calculate how many units can the duration be broken into, i.e. duration / unit.

The abs function calculates the absolute value for a number or a duration.

Implement base option for int() and uint()

Section titled “Implement base option for int() and uint()”

Feb 20, 2025 · @raxyte · #5006

The new base option for int and uint functions allows parsing hexadecimal numbers in strings.

Feb 25, 2025 · @dominiklohmann · #5015

The output of write_ndjson is now more compact and no longer includes unnecessary whitespace. Additionally, write_json no longer prints a trailing whitespace after each comma.

Feb 25, 2025 · @IyeOnline · #5001

The sep argument on the flatten and unflatten functions is now a positional argument, allowing you to simply write record.flatten("-").

The unflatten option found on many read_* operators and parse_* functions is now called unflatten_separator.

The field_sep, list_sep and null_value options on the XSV operators and functions (such as read_xsv, write_csv or parse_tsv) are now named arguments on all of them and are called field_separator, list_separator and null_value.

The field_split and list_split arguments for the read_kv operator and parse_kv function are now named arguments.

Feb 20, 2025 · @raxyte · #5009

The chart_area, chart_bar, and chart_pie operators no longer reject null-values. Previously, gaps in charts were only supported for chart_line.

Fix a crash in {parse,read}_grok for invalid patterns

Section titled “Fix a crash in {parse,read}_grok for invalid patterns”

Feb 25, 2025 · @dominiklohmann · #5018

The read_grok operator and parse_grok functions no longer crash when providing an invalid Grok expression.

Normalize pushed-up predicates in subscribe

Section titled “Normalize pushed-up predicates in subscribe”

Feb 25, 2025 · @dominiklohmann · #5014

We fixed an optimization bug that caused pipelines of the form subscribe <topic> | where <value> in <field> to evaluate the predicate <field> in <value> instead, returning incorrect results from the pipeline.

Feb 24, 2025 · @tobim · #5012

We now include the to_splunk operator in the Tenzir binary packages.

Feb 23, 2025 · @jachris · #5011

A compilation error within an if statement no longer causes pipelines to crash.

Feb 19, 2025 · @dominiklohmann · #5008

We fixed a bug that caused type_id(this) to return inconsistent values for schemas with metadata attached, e.g., after assigning a schema name via @name = "new_name" or using operators like chart_line that add custom metadata to a schema for use of the Tenzir Platform. Unfortunately, this may cause charts or tables added to dashboards before Tenzir Platform v1.7 to break. To fix them, click on the action menu on the chart or table on the dashboard, click “Open in Explorer,” and re-add the chart or table to the dashboard. We are sorry about this inconvenience.

Respect --color option in default implicit events sink

Section titled “Respect --color option in default implicit events sink”

Feb 19, 2025 · @dominiklohmann · #5007

The implicit events sink of the tenzir binary now respects the --color=[always|never|auto] option and the NO_COLOR environment variable. Previously, color usage was only determined based on whether stdout had a TTY attached.