Event listener#
Trino supports custom event listeners that are invoked for the following events:
Query creation
Query completion (success or failure)
Split completion (success or failure)
Event details include session, query execution, resource utilization, timeline, and more.
This functionality enables development of custom logging, debugging and performance analysis plugins.
Implementation#
EventListenerFactory
is responsible for creating an
EventListener
instance. It also defines an EventListener
name which is used by the administrator in a Trino configuration.
Implementations of EventListener
implement methods for the event types
they are interested in handling.
The implementation of EventListener
and EventListenerFactory
must be wrapped as a plugin and installed on the Trino cluster.
Configuration#
After a plugin that implements EventListener
and
EventListenerFactory
has been installed on the coordinator, it is
configured using an etc/event-listener.properties
file. All of the
properties other than event-listener.name
are specific to the
EventListener
implementation.
The event-listener.name
property is used by Trino to find a registered
EventListenerFactory
based on the name returned by
EventListenerFactory.getName()
. The remaining properties are passed
as a map to EventListenerFactory.create()
.
Example configuration file:
event-listener.name=custom-event-listener
custom-property1=custom-value1
custom-property2=custom-value2
Multiple event listeners#
Trino supports multiple instances of the same or different event listeners.
Install and configure multiple instances by setting
event-listener.config-files
in Config properties to a comma-separated
list of the event listener configuration files:
event-listener.config-files=etc/event-listener.properties,etc/event-listener-second.properties