윈도우 및 이벤트 시간 디버깅

윈도우 및 이벤트 시간 디버깅 (Debugging Windows & Event Time)

Flink의 이벤트 시간(Event Time)과 워터마크 지원은 순서가 뒤섞인(out-of-order) 이벤트를 처리하기 위한 강력한 기능입니다. 하지만 시간의 진행이 시스템 내부에서 추적되기 때문에 정확히 어떤 일이 벌어지고 있는지 이해하기는 더 어렵습니다.

출처: 문서

본문

현재 이벤트 시간 모니터링 (Monitoring Current Event Time)

각 태스크의 낮은 워터마크(low watermark)는 Flink 웹 인터페이스나 메트릭 시스템을 통해 확인할 수 있습니다.

Flink의 각 태스크는 이 태스크가 수신한 가장 낮은 워터마크를 나타내는 currentInputWatermark라는 메트릭을 노출합니다. 이 long 값이 "현재 이벤트 시간"을 나타냅니다. 이 값은 업스트림 연산자가 수신한 모든 워터마크의 최솟값을 계산하여 구해집니다. 즉, 워터마크로 추적되는 이벤트 시간은 항상 가장 뒤처진(furthest-behind) 소스가 지배한다는 뜻입니다.

낮은 워터마크 메트릭은 웹 인터페이스에서 메트릭(Metric) 탭의 태스크를 선택한 뒤 <taskNr>.currentInputWatermark 메트릭을 선택하면 확인할 수 있습니다. 새 상자에서 태스크의 현재 낮은 워터마크를 볼 수 있습니다.

이 메트릭을 얻는 또 다른 방법은 메트릭 시스템 문서에 설명된 대로 메트릭 리포터 중 하나를 사용하는 것입니다. 로컬 환경에서는 JMX 메트릭 리포터와 VisualVM 같은 도구를 사용하는 것을 권장합니다.

이벤트 시간 지연자 처리 (Handling Event Time Stragglers)

  • 접근법 1: 워터마크를 늦게 유지(완전성 지시)하고 윈도우는 일찍 트리거합니다.
  • 접근법 2: 최대 지연과 함께 워터마크 휴리스틱을 사용하고, 윈도우는 늦은 데이터를 허용합니다.

더 알아보기 (Learn more)