본문 바로가기

elasticsearch

elasticsearch Watch Execution

반응형

왓치 실행

왓치를 등록하면 왓처가 적당한 trigger engine 에 등록하고자 하는 왓치의 트리거를 즉시 등록한다.

schedule 을 가지고 있는 왓치들은 scheduler engine 에 등록이 된다. trigger engine 은 왓치 실행의 책임이 있다.

trigger engine 은 master node 에서 실행 되고, 실행되고 있는 다른 왓치들과 분리된 쓰레드풀을 이용한다.


왓처가 트리거 되면, 왓처가 실행을 위해 큐작업을 한다. watch_record document 가 생성되고 watch history index 에 추가 되며, 상태를 awaits_execution 으로 설정한다.


실행이 시작 될 때, 왓치를 위해 watch execution context 를 왓치가 생성한다. execution context 는 watch metadata, payload, watch ID, execution time, trigger information 에 접근하기 위한 스크립트와 템플릿을 제공한다. 


실행이 실행 되는 동안 왓처는 아래와 같이 동작한다.


1. input data 를 watch execution context 에 있는 payload 에 로딩한다. 이 동작은 앞으로의 모든 실행 동작에 사용될 데이터를 만든다.


2. 왓치 작업을 진행할지 여부에 대해서 결정하기 위해 왓치의 condition 을 평가한다. 만약 condition 이 true 면 다음 단계를 진행하고 그렇지 안다면 실행을 중지 한다.


3. transform 이 정의 되어 있다면 watch payload 에 적용한다.


4. condition 에 부합되고 왓치가 throttled 상태가 아니라면 actions 을 실행 한다.



실행이 끝나면 와처는 그 결과를 watch record 에 업데이트 한다. watch record 에는 시작시간과 실행에 걸린시간, condition 의 결과 실행된 각 action 에 대한 정보를 포함하고 있다.


위 단계에 대한 실행 단계는 아래 링크를 참조 하기 바란다.

https://www.elastic.co/guide/en/watcher/current/watch-execution.html



반응형