[27]Presto Event Listener Plugin开发简述

一、Event Listener

presto事件监听器Event Listener,作为plugin监听以下事件:

  • Query creation
    查询建立相关信息
  • Query completion (success or failure)
    查询执行相关信息,包含成功查询的细节信息,失败查询的错误码等信息
  • Split completion (success or failure)
    split执行信息,同理包含成功和失败的细节信息.

备注

一个presto集群中只能有一个Event Listener plugin

二、Implementation

如何实现一个Event Listener:

1)通过EventListenerFactory建立EventListener
2)实现EventListener,根据需要实现所需方法

public interface EventListener
{
   
    default void queryCreated(QueryCreatedEvent queryCreatedEvent)
    {
   
    }

    default void queryCompleted(QueryCompletedEvent queryCompletedEvent)
    {
   
    }

    default void splitCompleted(SplitCompletedEvent splitCompletedEvent)
    {
   
    }
}

其中:

  • 事件 QueryCreatedEvent 包含query建立的详细信息
  • 事件 QueryCompletedEvent 包含query执行的详细信息
  • 事件 SplitCompletedEvent 包含split执行的详细信息

备注
如果希望将自定义的异常信息监听至 QueryCompletedEvent中的failureInfo QueryFailureInfo中,自定义异常需要继承spi中标准异常,如PrestoException

3)实现一个Plugin,实现 getEventListenerFactories() 方法
Plugin的使用方式,可参见Presto函数开发简述.
4) 添加配置信息etc/event-listener.properties.
event-listener.properties 至少应配置event-listener.name , presto结合该属性和EventListenerFactory.getName() 中获得的值找到事件监听插件
Example configuration file:

event-listener.name=custom-event-listener
custom-property1=custom-value1
custom-property2=custom-value2  

三、Example

由于集群运维治理需要,有时需要将presto执行日志分类落盘。这里简单给出一个日志事件监听器插件的样例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值