🚀 Features
Section titled “🚀 Features”Implement some print_* functions
Section titled “Implement some print_* functions”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.
Implement sub-duration functions
Section titled “Implement sub-duration functions”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.
🔧 Changes
Section titled “🔧 Changes”Compact NDJSON output
Section titled “Compact NDJSON output”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.
Implement some print_* functions
Section titled “Implement some print_* functions”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.
Allow values to be null when charting
Section titled “Allow values to be null when charting”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.
🐞 Bug Fixes
Section titled “🐞 Bug Fixes”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.
Add to_splunk to the ce binary packages
Section titled “Add to_splunk to the ce binary packages”We now include the to_splunk operator in the Tenzir binary packages.
Fix compilation error handling inside if
Section titled “Fix compilation error handling inside if”Feb 23, 2025 · @jachris · #5011
A compilation error within an if statement no longer causes pipelines to
crash.
Remove type layering
Section titled “Remove type layering”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.