이벤트
이벤트 (Events)
Flink는 외부 시스템으로 이벤트를 수집하고 노출(expose)할 수 있는 이벤트 보고(reporting) 시스템을 제공해요.
본문
이벤트 보고하기 (Reporting events)
RichFunction을 상속하는 어떤 사용자 함수에서든 getRuntimeContext().getMetricGroup()을 호출해 이벤트 시스템에 접근할 수 있어요.
이 메서드는 MetricGroup 객체를 반환하며, 이 객체를 통해 새로운 단일 이벤트를 보고할 수 있어요.
단일 이벤트 보고 (Reporting single Event)
Event는 Flink에서 특정 시점에 발생한 어떤 일을 나타내며, TraceReporter로 보고돼요.
Event를 보고하려면 MetricGroup#addEvent(EventBuilder) 메서드를 사용하면 돼요.
public class MyClass {
void doSomething() {
// (...)
metricGroup.addEvent(
Event.builder(MyClass.class, "SomeEvent")
.setObservedTsMillis(observedTs) // Optional
.setAttribute("foo", "bar")); // Optional
}
}
# Currently reporting Events from Python is not supported.
리포터 (Reporter)
Flink의 이벤트 리포터를 설정하는 방법에 관한 내용은 이벤트 리포터 문서를 참고하세요.
시스템 트레이스 (System traces)
Flink는 아래 나열된 이벤트들을 보고해요.
아래 테이블은 일반적으로 5개의 컬럼을 가져요:
- Scope 컬럼: 트레이스가 보고되는 범위(scope)가 무엇인지 설명해요.
- Name 컬럼: 보고되는 트레이스의 이름을 설명해요.
- Attributes 컬럼: 주어진 트레이스와 함께 보고되는 모든 속성(attribute)의 이름을 나열해요.
- Description 컬럼: 주어진 속성이 무엇을 보고하는지에 대한 정보를 제공해요.
| Scope | Name | Severity | Attributes | Description |
|---|---|---|---|---|
| org.apache.flink.runtime.checkpoint.CheckpointStatsTracker | CheckpointEvent | INFO | observedTs | 체크포인트가 완료된 시점의 타임스탬프예요. |
| checkpointId | 체크포인트의 ID예요. | |||
| checkpointedSize | 이 체크포인트 동안 체크포인트된 상태의 크기(바이트)예요. 증분(incremental) 체크포인트를 사용하면 fullSize보다 작을 수 있어요. | |||
| fullSize | 이 체크포인트가 참조하는 상태의 전체 크기(바이트)예요. 증분 체크포인트를 사용하면 checkpointSize보다 클 수 있어요. | |||
| checkpointStatus | 이 체크포인트의 상태가 무엇이었는지를 나타내요: FAILED 또는 COMPLETED. | |||
| checkpointType | 체크포인트의 타입이에요. 예: "Checkpoint", "Full Checkpoint" 또는 "Terminate Savepoint" 등. | |||
| isUnaligned | 체크포인트가 aligned인지 unaligned인지 여부예요. | |||
| org.apache.flink.runtime.jobmaster.JobMaster | ... | ... | ... | ... |