이벤트 리포터
이벤트 리포터 (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.EventReporter와 org.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