Apache Flink용 매니지드 서비스에서의 모니터링 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Apache Flink용 매니지드 서비스에서의 모니터링

프로덕션 환경에서 스트리밍 애플리케이션을 실행할 때는 애플리케이션을 지속적으로 그리고 무기한으로 실행하도록 설정해야 합니다. Flink 애플리케이션뿐만 아니라 모든 구성 요소에 대한 모니터링과 적절한 경보를 구현하는 것이 중요합니다. 그렇지 않으면 새로운 문제를 조기에 발견하지 못하고 문제가 완전히 전개되어 완화하기 훨씬 더 어려워진 후에야 운영상의 이벤트를 인지하게 될 수 있습니다. 모니터링해야 할 일반적인 사항은 다음과 같습니다.

  • 소스가 데이터를 수집하고 있나요?

  • 소스에서 데이터를 읽나요(소스의 관점에서 볼 때)?

  • Flink 애플리케이션에서 데이터를 수신하고 있나요?

  • Flink 애플리케이션이 이를 따라잡을 수 있나요, 아니면 뒤처지고 있나요?

  • Flink 애플리케이션이 데이터를 싱크에 보관하고 있나요(애플리케이션 관점에서 볼 때)?

  • 싱크가 데이터를 수신하고 있나요?

그런 다음 Flink 애플리케이션에 대해 좀 더 구체적인 지표를 고려해야 합니다. 이 CloudWatch 대시보드는 좋은 출발점을 제공합니다. 프로덕션 애플리케이션에 대해 모니터링할 지표에 대한 자세한 내용은 아마존 매니지드 서비스에서 아파치 플링크용 CloudWatch 알람 사용하기 섹션을 참조하세요. 이러한 지표에는 다음이 포함됩니다.

  • records_lag_maxmillisbehindLatest— 애플리케이션이 Kinesis 또는 Kafka를 사용하는 경우 이러한 지표는 애플리케이션이 지연되고 있는지 여부를 나타내며 현재 로드를 따라잡기 위해 규모를 조정해야 합니다. 이는 모든 종류의 애플리케이션에서 쉽게 추적할 수 있는 유용한 일반 지표입니다. 하지만 애플리케이션이 이미 뒤쳐진 경우 등 반응형 스케일링에만 사용할 수 있습니다.

  • cpuUtilization그리고 heapMemoryUtilization— 이러한 지표는 애플리케이션의 전체 리소스 사용률을 잘 나타내며 애플리케이션이 I/O 바운드가 없는 한 사전 예방적 확장에 사용할 수 있습니다.

  • 다운타임 - 다운타임이 0보다 크면 애플리케이션에 장애가 발생한 것입니다. 값이 0보다 크면 애플리케이션에서 데이터를 처리하지 않는 것입니다.

  • lastCheckpointSize그리고 lastCheckpointDuration— 이러한 지표는 상태에 저장된 데이터의 양과 체크포인트를 생성하는 데 걸리는 시간을 모니터링합니다. 체크포인트가 늘어나거나 시간이 오래 걸리면 애플리케이션은 체크포인트에 지속적으로 시간을 소비하게 되고 실제 처리에 소요되는 주기도 줄어듭니다. 어떤 지점에서는 체크포인트가 너무 커지거나 너무 오래 걸려 실패할 수 있습니다. 절대값을 모니터링하는 것 외에도 고객은 RATE(lastCheckpointSize)RATE(lastCheckpointDuration)를 사용하여 변경률을 모니터링하는 것도 고려해야 합니다.

  • numberOfFailed체크포인트 — 이 지표는 애플리케이션이 시작된 이후 실패한 체크포인트 수를 계산합니다. 애플리케이션에 따라 가끔 체크포인트에 장애가 발생해도 괜찮을 수 있습니다. 그러나 체크포인트에 정기적으로 장애가 발생하면 애플리케이션이 비정상일 가능성이 높으므로 추가 주의가 필요합니다. 절대값이 아닌 경사에 대한 경보를 위해 RATE(numberOfFailedCheckpoints)를 모니터링하는 것이 좋습니다.