이벤트 리포터

이벤트 리포터 (Event Reporters)

Flink는 이벤트(구조화된 로깅)를 외부 시스템에 보고할 수 있게 해줘요. 리포트를 설정하고 커스텀 리포터를 작성하는 방법을 설명해요.

출처: Event Reporters

본문

이벤트를 Flink 구성 파일에 하나 이상의 리포터를 설정해 외부 시스템에 노출할 수 있어요. 이 리포터들은 각 잡·태스크 매니저가 시작될 때 인스턴스화돼요.

아래는 모든 리포터에 일반적으로 적용되는 파라미터 목록이에요. 모든 속성은 구성에서 events.reporter.<reporter_name>.<property>를 설정해 구성돼요. 리포터는 구현별 파라미터를 추가로 제공할 수 있는데, 그것은 해당 리포터 섹션에 문서화돼 있어요.

모든 리포터 구성은 factory.class 속성을 포함해야 해요.

여러 리포터를 지정하는 리포터 구성 예:

events.reporters: otel,my_other_otel

events.reporter.otel.factory.class: org.apache.flink.events.otel.OpenTelemetryEventReporterFactory
events.reporter.otel.exporter.endpoint: http://127.0.0.1:1337
events.reporter.otel.scope.variables.additional: region:eu-west-1,environment:local,flink_runtime:1.17.1

events.reporter.my_other_otel.factory.class: org.apache.flink.common.events.OpenTelemetryEventReporterFactory
events.reporter.my_other_otel.exporter.endpoint: http://196.168.0.1:31337

중요: 리포터를 포함하는 jar는 Flink가 시작될 때 접근 가능해야 해요. 리포터는 plugins로 로드돼요. 이 페이지에 문서화된 모든 리포터는 기본적으로 사용 가능해요.

org.apache.flink.events.reporter.EventReporterorg.apache.flink.events.reporter.EventReporterFactory 인터페이스를 구현해 자신만의 Reporter를 작성할 수 있어요. 모든 메서드가 상당한 시간 동안 블로킹되지 않도록 주의하고, 더 많은 시간이 필요한 리포터는 작업을 비동기로 실행해야 해요.

Reporters

지원되는 리포터는 다음과 같아요.

OpenTelemetry

(org.apache.flink.events.otel.OpenTelemetryEventReporterFactory)

파라미터: endpoint(내보내기 엔드포인트), protocol(내보내기 프로토콜, gRPC/HTTP)

예시 구성:

events.reporter.otel.factory.class: org.apache.flink.events.otel.OpenTelemetryEventReporterFactory
events.reporter.otel.exporter.endpoint: http://127.0.0.1:1337
events.reporter.otel.exporter.protocol: gRPC
events.reporter.otel.factory.class: org.apache.flink.events.otel.OpenTelemetryEventReporterFactory
events.reporter.otel.exporter.endpoint: http://127.0.0.1:9090
events.reporter.otel.exporter.protocol: HTTP

Slf4j

(org.apache.flink.events.slf4j.Slf4jEventReporter)

예시 구성:

events.reporter.slf4j.factory.class: org.apache.flink.events.slf4j.Slf4jEventReporterFactory

더 알아보기 (Learn more)