Amazon Managed Service for Apache Flink(Amazon MSF)는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려져 있었습니다.
Managed Service for Apache Flink의 지표 및 차원
Managed Service for Apache Flink가 데이터 소스를 처리할 때 Managed Service for Apache Flink는 Amazon CloudWatch에 다음과 같은 지표와 차원을 보고합니다.
애플리케이션 지표
| 지표 | 단위 | 설명 | 수준 | 사용 관련 참고 사항 |
|---|---|---|---|---|
backPressuredTimeMsPerSecond* |
밀리초 | 이 작업 또는 연산자가 초당 배압을 받는 시간(밀리초)입니다. | 작업, 연산자, 병렬 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이러한 지표는 애플리케이션의 병목 현상을 식별하는 데 유용할 수 있습니다. |
busyTimeMsPerSecond* |
밀리초 | 이 작업 또는 연산자가 초당 사용 중인(유휴 상태도 배압 상태도 아닌) 시간(밀리초)입니다. 값을 계산할 수 없는 경우 NaN이 될 수 있습니다. | 작업, 연산자, 병렬 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이러한 지표는 애플리케이션의 병목 현상을 식별하는 데 유용할 수 있습니다. |
cpuUtilization |
백분율 | 작업 관리자 전체에서 CPU 사용률의 전체 비율입니다. 예를 들어 작업 관리자가 5명인 경우 Managed Service for Apache Flink는 보고 간격당 이 지표의 샘플 5개를 게시합니다. | Application | 이 지표를 사용하여 애플리케이션의 최소, 평균 및 최대 CPU 사용률을 모니터링할 수 있습니다. CPUUtilization 지표는 컨테이너 내부에서 실행 중인 TaskManager JVM 프로세스의 CPU 사용량만 설명합니다. |
containerCPUUtilization |
백분율 | Flink 애플리케이션 클러스터의 작업 관리자 컨테이너 전체 CPU 사용률 비율입니다. 예를 들어, 작업 관리자가 5명인 경우, 그에 상응하는 5개의 TaskManager 컨테이너가 있으며, Managed Service for Apache Flink는 1분 보고 간격마다 이 지표의 샘플 2 * 5개를 게시합니다. | Application | 컨테이너별로 다음과 같이 계산됩니다. 컨테이너가 사용한 총 CPU 시간(초) * 100 / 컨테이너 CPU 제한(CPU/초)
|
containerMemoryUtilization |
백분율 | Flink 애플리케이션 클러스터의 작업 관리자 컨테이너 전체 메모리 사용률입니다. 예를 들어, 작업 관리자가 5명인 경우, 그에 상응하는 5개의 TaskManager 컨테이너가 있으며, Managed Service for Apache Flink는 1분 보고 간격마다 이 지표의 샘플 2 * 5개를 게시합니다. | Application | 컨테이너별로 다음과 같이 계산됩니다. 컨테이너 메모리 사용량(바이트) * 100/ 포드 배포 사양에 따른 컨테이너 메모리 제한(바이트)
|
containerDiskUtilization |
백분율 | Flink 애플리케이션 클러스터의 작업 관리자 컨테이너 전체 디스크 사용률입니다. 예를 들어, 작업 관리자가 5명인 경우, 그에 상응하는 5개의 TaskManager 컨테이너가 있으며, Managed Service for Apache Flink는 1분 보고 간격마다 이 지표의 샘플 2 * 5개를 게시합니다. | Application | 컨테이너별로 다음과 같이 계산됩니다. 디스크 사용량(바이트) * 100 / 컨테이너의 디스크 제한(바이트 컨테이너의 경우 컨테이너의 루트 볼륨이 설정된 파일 시스템의 사용률을 나타냅니다. |
currentInputWatermark |
밀리초 | 이 애플리케이션/연산자/작업/스레드가 받은 마지막 워터마크 | 애플리케이션, 연산자, 작업, 병렬 처리 | 이 레코드는 입력이 두 개 있는 차원에 대해서만 생성됩니다. 이는 마지막으로 수신한 워터마크의 최소값입니다. |
currentOutputWatermark |
밀리초 | 이 애플리케이션/연산자/작업/스레드가 생성한 마지막 워터마크 | 애플리케이션, 연산자, 작업, 병렬 처리 | |
downtime |
밀리초 | 현재 실패/복구 중인 작업의 경우 이 중단이 발생한 동안 경과된 시간입니다. | Application | 이 지표는 작업이 실패하거나 복구되는 동안 경과된 시간을 측정합니다. 이 지표는 실행 중인 작업의 경우 0을 반환하고 완료된 작업에 대해 -1을 반환합니다. 이 지표가 0 또는 -1이 아닌 경우 애플리케이션의 Apache Flink 작업이 실행되지 않았음을 나타냅니다. |
fullRestarts |
개수 | 제출된 이후 이 작업이 완전히 다시 시작된 총 횟수입니다. 이 지표는 세분화된 재시작을 측정하지 않습니다. | Application | 이 지표를 사용하여 일반적인 애플리케이션 상태를 평가할 수 있습니다. 내부 유지 관리 중에 Managed Service for Apache Flink에 의해 재시작이 발생할 수 있습니다. 재시작 빈도가 정상보다 높으면 애플리케이션에 문제가 있음을 나타냅니다. |
heapMemoryUtilization |
백분율 | 작업 관리자 전반의 전체 힙 메모리 사용률입니다. 예를 들어 작업 관리자가 5명인 경우 Managed Service for Apache Flink는 보고 간격당 이 지표의 샘플 5개를 게시합니다. | Application | 이 지표를 사용하여 애플리케이션의 최소, 평균 및 최대 힙 메모리 사용률을 모니터링할 수 있습니다. HeapMemoryUtilization은 TaskManager JVM의 힙 메모리 사용량과 같은 특정 메모리 지표만 설명합니다. |
idleTimeMsPerSecond* |
밀리초 | 이 작업 또는 연산자가 유휴 상태(처리할 데이터가 없음)인 초당 시간(밀리초)입니다. 유휴 시간에는 배압이 가해진 시간이 제외되므로 작업에 배압이 가해져도 작업이 유휴 상태가 아닙니다. | 작업, 연산자, 병렬 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이러한 지표는 애플리케이션의 병목 현상을 식별하는 데 유용할 수 있습니다. |
lastCheckpointSize |
바이트 | 마지막 체크포인트의 총 크기 | Application | 이 지표를 사용하여 실행 중인 애플리케이션 스토리지 사용률을 확인할 수 있습니다. 이 지표의 값이 증가하면 메모리 누수 또는 병목 현상 등 애플리케이션에 문제가 있음을 의미할 수 있습니다. |
lastCheckpointDuration |
밀리초 | 마지막 체크포인트를 완료하는 데 걸린 시간 | Application | 이 지표는 가장 최근의 체크포인트를 완료하는 데 걸린 시간을 측정합니다. 이 지표의 값이 증가하면 메모리 누수 또는 병목 현상 등 애플리케이션에 문제가 있음을 의미할 수 있습니다. 경우에 따라 체크포인트를 사용하지 않도록 설정하여 이 문제를 해결할 수 있습니다. |
managedMemoryUsed* |
바이트 | 현재 사용 중인 관리형 메모리의 양입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이는 Java 힙 외부에서 Flink가 관리하는 메모리와 관련이 있습니다. RocksDB 상태 백엔드에 사용되며 애플리케이션에서도 사용할 수 있습니다. |
managedMemoryTotal* |
바이트 | 관리형 메모리의 총량입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이는 Java 힙 외부에서 Flink가 관리하는 메모리와 관련이 있습니다. RocksDB 상태 백엔드에 사용되며 애플리케이션에서도 사용할 수 있습니다. |
managedMemoryUtilization* |
백분율 | managedMemoryUsed/managedMemoryTotal을 기준으로 산출됩니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | *Flink 버전 1.13을 구동하는 Managed Service for Apache Flink에서만 사용할 수 있습니다. 이는 Java 힙 외부에서 Flink가 관리하는 메모리와 관련이 있습니다. RocksDB 상태 백엔드에 사용되며 애플리케이션에서도 사용할 수 있습니다. |
numberOfFailedCheckpoints |
개수 | 체크포인트가 실패한 횟수입니다. | Application | 이 지표를 사용하여 애플리케이션 상태 및 진행 상황을 모니터링할 수 있습니다. 처리량 또는 권한 문제와 같은 애플리케이션 문제로 인해 체크포인트가 실패할 수 있습니다. |
numRecordsIn* |
개수 | 해당 애플리케이션, 연산자 또는 작업이 수신한 총 레코드 수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | *일정 기간(초/분)에 대한 SUM 통계를 적용하려면:
지표의 수준은 이 지표가 전체 애플리케이션, 특정 운영자 또는 특정 작업에서 받은 총 레코드 수를 측정할지 여부를 지정합니다. |
numRecordsInPerSecond* |
개수/초 | 이 애플리케이션, 연산자 또는 작업이 초당 수신한 총 레코드 수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | *일정 기간(초/분)에 대한 SUM 통계를 적용하려면:
지표의 수준은 이 지표가 전체 애플리케이션, 특정 연산자 또는 특정 작업이 초당 수신한 총 레코드 수를 측정하는지 여부를 지정합니다. |
numRecordsOut* |
개수 | 해당 애플리케이션, 연산자 또는 작업이 생성한 총 레코드 수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 |
*일정 기간(초/분)에 대한 SUM 통계를 적용하려면:
지표의 수준은 이 지표가 전체 애플리케이션, 특정 운영자 또는 특정 작업에서 내보낸 총 레코드 수를 측정할지 여부를 지정합니다. |
numLateRecordsDropped* |
개수 | 애플리케이션, 연산자, 작업, 병렬 처리 | *일정 기간(초/분)에 대한 SUM 통계를 적용하려면:
이 연산자 또는 작업이 늦게 도착하여 삭제한 레코드 수입니다. |
|
numRecordsOutPerSecond* |
개수/초 | 해당 애플리케이션, 연산자 또는 작업이 초당 생성한 총 레코드 수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 |
*일정 기간(초/분)에 대한 SUM 통계를 적용하려면:
지표의 수준은 이 지표가 전체 애플리케이션, 특정 연산자 또는 특정 작업이 초당 생성한 총 레코드 수를 측정하는지 여부를 지정합니다. |
oldGenerationGCCount |
개수 | 모든 작업 관리자에서 발생한 이전 가비지 수집 작업의 총 수입니다. | Application | |
oldGenerationGCTime |
밀리초 | 이전 가비지 수집 작업을 수행하는 데 소요된 총 시간입니다. | Application | 이 지표를 사용하여 가비지 수집 시간 합계, 평균 및 최대 시간을 모니터링할 수 있습니다. |
threadsCount |
개수 | 애플리케이션에서 사용한 총 라이브 스레드 수입니다. | Application | 이 지표는 애플리케이션 코드에서 사용하는 스레드 수를 측정합니다. 이는 애플리케이션 병렬 처리와는 다릅니다. |
uptime |
밀리초 | 작업이 중단 없이 실행된 시간. | Application | 이 지표를 사용하여 작업이 성공적으로 실행되고 있는지 확인할 수 있습니다. 이 지표는 완료된 작업에 대해 -1을 반환합니다. |
KPUs* |
개수 | 애플리케이션에서 사용한 총 KPU 수입니다. | Application | *이 지표는 결제 기간(1시간)마다 하나의 샘플을 수신합니다. 시간 경과에 따른 KPU 수를 시각화하려면 1시간 이상의 기간 동안 MAX 또는 AVG를 사용합니다. KPU 수에는 |
Kinesis Data Streams 커넥터 지표
AWS는 다음 외에도 Kinesis Data Streams에 대한 모든 레코드를 내보냅니다.
| 지표 | 단위 | 설명 | 수준 | 사용 관련 참고 사항 |
|---|---|---|---|---|
millisbehindLatest |
밀리초 | 소비자가 스트림 헤드보다 뒤처진 시간(밀리초)으로, 소비자가 현재 시간보다 얼마나 뒤처져 있는지를 나타냅니다. | 애플리케이션(Stream용), 병렬(샤드ID용) |
|
bytesRequestedPerFetch |
바이트 | getRecords에 대한 단일 호출에서 요청된 바이트 수입니다. |
애플리케이션(Stream용), 병렬(샤드ID용) |
Amazon MSK 커넥터 지표
AWS는 다음 외에도 Amazon MSK에 대한 모든 레코드를 내보냅니다.
| 지표 | 단위 | 설명 | 수준 | 사용 관련 참고 사항 |
|---|---|---|---|---|
currentoffsets |
N/A | 각 파티션에 대한 소비자의 현재 읽기 오프셋입니다. 특정 파티션의 지표는 주제 이름 및 파티션 ID로 지정할 수 있습니다. | 애플리케이션(주제용), 병렬(파티션ID용) | |
commitsFailed |
N/A | 오프셋 커밋과 체크포인트가 활성화된 경우, Kafka에 대한 총 오프셋 커밋 실패 횟수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | 오프셋을 카프카에 다시 커밋하는 것은 소비자 진행 상황을 노출하기 위한 수단일 뿐이므로, 커밋 실패는 Flink의 체크포인트 파티션 오프셋의 무결성에 영향을 미치지 않습니다. |
commitsSucceeded |
N/A | 오프셋 커밋과 체크포인트가 활성화된 경우, Kafka에 성공적으로 커밋한 총 오프셋 횟수입니다. | 애플리케이션, 연산자, 작업, 병렬 처리 | |
committedoffsets |
N/A | 각 파티션에 대해 Kafka에 마지막으로 성공적으로 커밋된 오프셋 특정 파티션의 지표는 주제 이름 및 파티션 ID로 지정할 수 있습니다. | 애플리케이션(주제용), 병렬(파티션ID용) | |
records_lag_max |
개수 | 이 창에 있는 파티션의 레코드 수 기준 최대 지연 시간 | 애플리케이션, 연산자, 작업, 병렬 처리 | |
bytes_consumed_rate |
바이트 | 초당 사용된 주제의 평균 바이트 수 | 애플리케이션, 연산자, 작업, 병렬 처리 |
Apache Zeppelin 지표
Studio 노트북의 경우 AWS는 애플리케이션 수준에서 KPUs, cpuUtilization, heapMemoryUtilization, oldGenerationGCTime, oldGenerationGCCount, threadCount 지표를 내보냅니다. 또한 애플리케이션 수준에서도 다음 테이블에 표시된 지표를 내보냅니다.
| 지표 | 단위 | 설명 | Prometheus 이름 |
|---|---|---|---|
zeppelinCpuUtilization |
백분율 | Apache Zeppelin 서버의 전체 CPU 사용률입니다. | process_cpu_usage |
zeppelinHeapMemoryUtilization |
백분율 | Apache Zeppelin 서버의 전체 힙 메모리 사용률입니다. | jvm_memory_used_bytes |
zeppelinThreadCount |
개수 | Apache Zeppelin 서버에서 사용한 총 라이브 스레드 수입니다. | jvm_threads_live_threads |
zeppelinWaitingJobs |
개수 | 스레드를 기다리는 대기 중인 Apache Zeppelin 작업 수입니다. | jetty_threads_jobs |
zeppelinServerUptime |
초 | 서버가 가동되어 실행된 총 시간. | process_uptime_seconds |