Changelog
Please see the upgrade guide for guidance on upgrading from the preview version.
Version 3.5 includes major improvements to observability, through the introduction of a new message system between system components.
Agent Changes
- Agents gain an additional API for communication with Pipes, which by default listens on
127.0.0.1:4041
.- This setting can be controlled via:
- The command line option
--agent-api-bind-address
, or - The environment variable
HOTROD_AGENT_API_BIND_ADDRESS
- The command line option
- The default bind address is
127.0.0.1:4041
on Agents, and127.0.0.1:3041
the Server Agent
- This setting can be controlled via:
Server Changes
- Server Agent changes
- The Server now always includes the Server Agent, where previously it was an optional Server feature
- The Server Agent has been renamed:
- previously,
Hotrod Server Agent
(with IDhotrod-server-agent
) - now
Built-In Agent
(with IDbuilt-in-agent
) - When upgrading a Server, the previous name and id will be retained for backwards compatibility
- previously,
- The built-in Agent's default setting for it's existing Pipe API changed from
127.0.0.1:4040
to127.0.0.1:3040
- This change avoids port conflicts with default settings when an Agent is co-located with the Server process on the same host
Pipe Language & Runtime Changes
Inputs and Outputs
The new
internal-messages
input introduces a powerful capability to subscribe to various telemetry events generated by the Server, Agents and Pipes.The new
message
output allows for generating custom events, which can be subscribed to with the newinternal-messages
inputThe
s3
andazure-blob
inputs:- support a new
preprocessors
option, which enables:- handling gzip-compressed input objects
- handling parquet-encoded input objects
- automatically applying either of the above, depending on file extensions (
.gz
or.parquet
)
- supports a new
fingerprinting-db-path
option which allows customizing the path of the YAML state file
- support a new
The
s3
andazure-blob
outputs:- support a new
preprocessors
option, which supports compression of output objects with gzip - support a new
input-field
option
- support a new
The
file
output supports a newappend-to-existing
option, for appending data to existing filesThe
http-poll
andscuba
inputs support a newtimeout
parameter, for controlling the timeout on HTTP requestsNew: initial MQTT client and virtual broker support (authentication or TLS not yet available)
The
kafka
input and output support a newconfig
option for specifying rdkafka configuration parametersThe
azure-monitor
output supports a newtime_generated_field
optionThe
scuba
input now supports specifying either a query response id or BQL queryThe
azure-monitor
input now has improved feedback from errorsThe
splunk-hec
output supports a newremove
option that can remove certain default fields from the output payloadThe
splunk-hec
output supports newindex
andindex-field
metadata options
Actions
A new LUA method,
batch_number()
, is available in thescript
action and other actions that can evaluate LUA expressions- This method returns the last batch number of a Pipe's output, or 1 if the Pipe's output doesn't use batch mode
- This feature should not be used for generating output file or object names; timing differences in processing between Pipe actions and outputs may cause unpredictable behaviour, due to timing differences in the processing of actions and output components of Pipes.
The
add
action supports a newjsonpath-fields
option, which allows for extracting data using JSONPath expressionsThe
transaction
action supports a newcombined-payload
option, which combines collected events into a single event and concatenate payloadsThe
transaction
action now supports looking for transaction start and end markersThe
filter
action gets a new option to drop empty JSON (nil, arrays, strings, etc)The
collapse
action now has improved handling for the creation of CSV data