이벤트 리스너

이벤트 리스너 (Event listener)

Trino는 다음 이벤트에서 호출되는 커스텀 이벤트 리스너를 지원해요.

  • 쿼리 생성
  • 쿼리 완료 (성공 또는 실패)

이벤트 상세에는 세션, 쿼리 실행, 리소스 사용량, 타임라인 등이 포함돼요.

이 기능 덕분에 커스텀 로깅, 디버깅, 성능 분석 플러그인을 개발할 수 있어요.

출처: 문서

본문

구현 (Implementation)

EventListenerFactoryEventListener 인스턴스를 만드는 책임을 가져요. 그리고 관리자가 Trino 설정에서 사용하는 EventListener 이름도 정의해요. EventListener 구현체는 자신이 처리하고 싶은 이벤트 유형에 대한 메서드를 구현해요.

EventListenerEventListenerFactory의 구현은 플러그인으로 감싸서 Trino 클러스터에 설치해야 해요.

설정 (Configuration)

EventListenerEventListenerFactory를 구현한 플러그인을 코디네이터에 설치한 뒤에는 etc/event-listener.properties 파일로 설정해요. event-listener.name을 제외한 모든 속성은 EventListener 구현체별로 달라요.

event-listener.name 속성은 Trino가 EventListenerFactory.getName()이 반환하는 이름을 기준으로 등록된 팩토리를 찾는 데 사용해요. 나머지 속성은 맵으로 묶여 EventListenerFactory.create()에 전달돼요.

예제 설정 파일:

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

여러 이벤트 리스너 (Multiple event listeners)

Trino는 같은 종류든 다른 종류든 여러 이벤트 리스너 인스턴스를 지원해요. Config 속성에서 event-listener.config-files에 이벤트 리스너 설정 파일을 쉼표로 구분한 목록으로 지정하면 여러 인스턴스를 설치·설정할 수 있어요.

event-listener.config-files=etc/event-listener.properties,etc/event-listener-second.properties

더 알아보기 (Learn more)

이벤트 리스너가 수집하는 이벤트의 전체 목록은 Trino의 이벤트 리스너 SPI 문서와 커넥터 개발 문서에서 더 자세히 볼 수 있어요.