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