Amazon CloudWatch를 사용한 Kinesis 클라이언트 라이브러리 모니터링 - Amazon Kinesis Data Streams

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

Amazon CloudWatch를 사용한 Kinesis 클라이언트 라이브러리 모니터링

Kinesis 클라이언트 라이브러리Amazon Kinesis Data Streams (KCL) 은 사용자 지정 Amazon 게시 CloudWatch KCL 애플리케이션의 이름을 네임스페이스로 사용하여 사용자를 대신하여 지표를 사용합니다. 로 이동하여 이러한 측정치를 볼 수 있습니다.CloudWatch 콘솔및 선택사용자 지정 측정치. 사용자 지정 지표에 대한 자세한 정보는 단원을 참조하십시오.사용자 지정 지표 게시아마존 CloudWatch 사용 설명서.

에 업로드되는 지표에 일반 요금이 부과됩니다. CloudWatch KCL에 의해; 구체적으로,아마존 CloudWatch 사용자 지정 측정치아마존 CloudWatch API 요청요금이 적용됩니다. 자세한 내용은 단원을 참조하십시오.아마존 CloudWatch 요금.

측정치 및 네임스페이스

측정치를 업로드하는 데 사용되는 네임스페이스는 KCL을 시작할 때 지정한 애플리케이션 이름입니다.

측정치 수준 및 차원

CloudWatch에 업로드되는 지표를 제어하는 두 가지 옵션을 사용할 수 있습니다.

측정치 수준

모든 측정치에는 개별 수준이 할당됩니다. 지표 보고 수준을 설정할 때 보고 수준보다 낮은 개별 수준의 지표는 CloudWatch로 전송되지 않습니다. 수준은 NONE, SUMMARYDETAILED입니다. 기본 설정은 다음과 같습니다.DETAILED즉, 모든 측정치가 CloudWatch로 전송됩니다. 보고 수준이 NONE이면 측정치가 전혀 전송되지 않습니다. 어떤 지표에 어떤 수준이 할당되는지에 대한 자세한 내용은 측정치 목록 단원을 참조하십시오.

활성화된 차원

모든 KCL 지표에는 CloudWatch에 전송되는 연결된 차원이 있습니다. KCL 2.x에서 KCL이 단일 데이터 스트림을 처리하도록 구성된 경우 모든 지표 차원 (Operation,ShardId, 및WorkerIdentifier기본적으로 활성화되어 있습니다. 또한 KCL 2.x에서 KCL이 단일 데이터 스트림을 처리하도록 구성된 경우Operation치수를 비활성화할 수 없습니다. KCL 2.x에서 KCL이 여러 데이터 스트림을 처리하도록 구성된 경우 모든 지표 치수 (Operation,ShardId,StreamId, 및WorkerIdentifier기본적으로 활성화되어 있습니다. 또한 KCL 2.x에서 KCL이 여러 데이터 스트림을 처리하도록 구성된 경우OperationStreamId치수를 비활성화할 수 없습니다.StreamId차원은 샤드별 지표에 대해서만 확인할 수 있습니다.

KCL 1.x에서는OperationShardId차원은 기본적으로 활성화되어 있으며WorkerIdentifier치수를 사용할 수 없습니다. KCL 1.x에서는Operation치수를 비활성화할 수 없습니다.

에 대한 자세한 내용 CloudWatch 메트릭 차원,차원아마존의 섹션 CloudWatch 개념 주제,아마존 CloudWatch 사용 설명서.

를 사용하는 경우WorkerIdentifier차원이 활성화한 경우 특정 KCL 작업자가 다시 시작될 때마다 다른 값이 작업자 ID 속성에 사용되는 경우 새로운 측정치 집합이 새로운 지표 집합이 새 지표 집합이 활성화됩니다.WorkerIdentifier차원 값은 CloudWatch로 전송됩니다. 필요한 경우WorkerIdentifier특정 KCL 작업자가 다시 시작될 때 차원 값이 동일하려면 각 작업자의 초기화 중에 동일한 작업자 ID 값을 명시적으로 지정해야 합니다. 각 활성 KCL 작업자의 작업자 ID 값은 모든 KCL 작업자에서 고유해야 합니다.

측정치 구성

를 사용하여 지표 수준 및 활성화된 차원을 구성할 수 있습니다. KinesisClientLibConfiguration KCL 애플리케이션을 시작할 때 작업자에 전달되는 인스턴스 에서 MultiLangDaemon 사례,metricsLevelmetricsEnabledDimensions를 시작하는 데 사용된.properties 파일에서 속성을 지정할 수 있습니다. MultiLangDaemon KCL 응용 프로그램.

세 가지 값 중 하나를 측정치 수준에 할당할 수 있습니다. 없음, 요약 또는 세부 정보입니다. 활성화된 차원 값은 에 허용되는 차원 목록이 있는 쉼표로 구분된 문자열이어야 합니다. CloudWatch 지표. KCL 애플리케이션에서 사용하는 차원은 다음과 같습니다.Operation,ShardId, 및WorkerIdentifier.

측정치 목록

다음 표에는 범위와 작업을 기준으로 그룹화된 KCL 지표가 나와 있습니다.

KCL 애플리케이션별 메트릭

이러한 지표는 Amazon에서 정의한 대로 애플리케이션 범위 내의 모든 KCL 작업자에서 집계됩니다. CloudWatch 네임스페이스

InitializeTask

InitializeTask작업은 KCL 애플리케이션의 레코드 프로세서를 초기화합니다. 이 작업의 로직에는 Kinesis Data Streams Streames에서 샤드 반복자 가져오기 및 레코드 프로세서 초기화가 포함됩니다.

지표 설명
KinesisDataFetcher.getIterator.Success

성공한 횟수GetShardIteratorKCL 응용 프로그램별 작업

측정치 수준: 세부

단위: 개수

KinesisDataFetcher.getIterator.Time

수행된 시간GetShardIterator지정된 KCL 애플리케이션에 대한 작업입니다.

측정치 수준: 세부

단위: 밀리초

RecordProcessor.initialize.Time

레코드 프로세서의 초기화 메서드에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

성공

성공한 레코드 프로세서 초기화 수입니다.

측정치 수준: 요약

단위: 개수

시간

KCL 작업자가 레코드 프로세서 초기화에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

ShutdownTask

ShutdownTask 작업은 샤드 처리를 위해 종료 시퀀스를 시작합니다. 샤드가 분할되거나 병합되어 또는 작업자에서 샤드 리스가 손실된 경우 발생할 수 있습니다. 두 경우 모두 레코드 프로세서 shutdown() 함수가 호출됩니다. 샤드가 분할 또는 합병된 경우 새 샤드가 발견되어 새 샤드가 1개나 2개 생성됩니다.

지표 설명
CreateLease.Success

상위 샤드 종료 후 새로운 하위 샤드가 KCL 애플리케이션 DynamoDB 테이블에 성공적으로 추가된 횟수입니다.

측정치 수준: 세부

단위: 개수

CreateLease.Time

KCL 애플리케이션 DynamoDB 테이블에 새로운 하위 샤드 정보를 추가하는 데 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

UpdateLease.Success

레코드 프로세서 종료 중 성공한 최종 체크포인트 수입니다.

측정치 수준: 세부

단위: 개수

UpdateLease.Time

레코드 프로세서 종료 중 체크포인트 작업에 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

RecordProcessor.shutdown.Time

레코드 프로세서의 종료 메서드에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

성공

성공한 종료 작업 수입니다.

측정치 수준: 요약

단위: 개수

시간

KCL 작업자가 종료 작업에 소요한 시간입니다.

측정치 수준: 요약

단위: 밀리초

ShardSyncTask

ShardSyncTask작업은 Kinesis 데이터 스트림의 샤드 정보 변경 사항을 검색하므로 KCL 애플리케이션에서 새로운 샤드를 처리할 수 있습니다.

지표 설명
CreateLease.Success

KCL 애플리케이션 DynamoDB 테이블에 새로운 샤드 정보를 추가하려는 성공한 시도 수입니다.

측정치 수준: 세부

단위: 개수

CreateLease.Time

KCL 애플리케이션 DynamoDB 테이블에 새 샤드 정보를 추가하는 데 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

성공

성공적인 샤드 동기화 작업 수입니다.

측정치 수준: 요약

단위: 개수

시간

샤드 동기화 작업에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

BlockOnParentTask

샤드가 분할되거나 다른 샤드와 병합되면 새로운 하위 샤드가 생성됩니다. 이BlockOnParentTask작업은 KCL에서 상위 샤드를 완전히 처리할 때까지 새로운 샤드의 레코드 처리가 시작되지 않도록 보장합니다.

지표 설명
성공

성공적인 상위 샤드 완료 확인 수입니다.

측정치 수준: 요약

단위: 개수

시간

상위 샤드 완료에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

정기 간행차드싱매니저

PeriodicShardSyncManager는 KCL 소비자 애플리케이션에서 처리되는 데이터 스트림을 검사하고 부분 임대를 통해 데이터 스트림을 식별하고 동기화를 위해 전달해야 합니다.

KCL이 단일 데이터 스트림을 처리하도록 구성된 경우 다음 지표를 사용할 수 있습니다 (다음 값 NumStreamsToSync 과 NumStreamsWithPartialLeases 가 1) 로 설정되고 KCL이 여러 데이터 스트림을 처리하도록 구성된 경우에도 마찬가지입니다.

지표 설명
넘스트림스토싱크

데이터 스트림 수 (AWSaccount) 부분 임대를 포함하고 동기화를 위해 인계되어야 하는 소비자 응용 프로그램에 의해 처리되고 있습니다.

측정치 수준: 요약

단위: 개수

NUMStreams위파티얼레이즈

데이터 스트림 수 (AWSaccount) 부분 임대를 포함하는 소비자 응용 프로그램이 처리 중임을 나타냅니다.

측정치 수준: 요약

단위: 개수

성공

횟수PeriodicShardSyncManager는 소비자 애플리케이션이 처리 중인 데이터 스트림의 부분 임대를 성공적으로 식별할 수 있었습니다.

측정치 수준: 요약

단위: 개수

시간

해당 시간 (밀리초) 입니다.PeriodicShardSyncManager에서는 샤드 동기화가 필요한 데이터 스트림을 확인하기 위해 소비자 애플리케이션이 처리 중인 데이터 스트림을 검사합니다.

측정치 수준: 요약

단위: 밀리초

멀티스트림트래커

MultistreamTracker인터페이스를 사용하면 여러 데이터 스트림을 동시에 처리할 수 있는 KCL 소비자 애플리케이션을 구축할 수 있습니다.

지표 설명
삭제된 스트림. 카운트

이 기간에 삭제된 데이터 스트림의 수입니다.

측정치 수준: 요약

단위: 개수

액티브스트림. 카운트

처리되는 활성 데이터 스트림 수.

측정치 수준: 요약

단위: 개수

스트림스펜딩삭제. 카운트

다음을 기반으로 삭제 보류 중인 데이터 스트림 수FormerStreamsLeasesDeletionStrategy.

측정치 수준: 요약

단위: 개수

작업자별 측정치

이러한 지표는 Amazon EC2 인스턴스와 같이 Kinesis 데이터 스트림에서 데이터를 사용하는 모든 레코드 프로세서에서 집계됩니다.

RenewAllLeases

RenewAllLeases 작업은 특정 작업자 인스턴스가 소유한 샤드 리스를 주기적으로 갱신합니다.

지표 설명
RenewLease.Success

작업자의 성공한 리스 갱신 수입니다.

측정치 수준: 세부

단위: 개수

RenewLease.Time

리스 갱신 작업에 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

CurrentLeases

모든 리스가 갱신된 후 작업자가 소유한 샤드 리스 수입니다.

측정치 수준: 요약

단위: 개수

LostLeases

작업자가 소유한 모든 리스를 갱신하려는 시도 후에 손실된 샤드 리스 수입니다.

측정치 수준: 요약

단위: 개수

성공

작업자의 리스 갱신 작업 성공 횟수입니다.

측정치 수준: 요약

단위: 개수

시간

작업자의 모든 리스 갱신에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

TakeLeases

TakeLeases작업은 모든 KCL 작업자 간에 레코드 처리의 균형을 유지합니다. 현재 KCL 작업자가 필요한 것보다 적은 샤드 리스를 보유하면 오버로드된 다른 작업자에서 샤드 리스를 가져옵니다.

지표 설명
ListLeases.Success

KCL 애플리케이션 DynamoDB 테이블에서 모든 샤드 임대가 성공적으로 검색된 횟수입니다.

측정치 수준: 세부

단위: 개수

ListLeases.Time

KCL 애플리케이션 DynamoDB 테이블에서 모든 샤드 임대를 검색하는 데 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

TakeLease.Success

작업자가 다른 KCL 작업자에서 샤드 리스를 성공적으로 가져온 횟수입니다.

측정치 수준: 세부

단위: 개수

TakeLease.Time

작업자가 가져온 리스로 리스 테이블을 업데이트하는데 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

NumWorkers

특정 작업자가 식별한 총 작업자 수입니다.

측정치 수준: 요약

단위: 개수

NeededLeases

밸런싱된 샤드 처리 로드를 위해 현재 작업자에 필요한 샤드 리스 수입니다.

측정치 수준: 세부

단위: 개수

LeasesToTake

작업자가 가져오려고 시도할 리스 수입니다.

측정치 수준: 세부

단위: 개수

TakenLeases

작업자가 성공적으로 가져온 리스 수입니다.

측정치 수준: 요약

단위: 개수

TotalLeases

KCL 애플리케이션에서 처리 중인 총 샤드 수

측정치 수준: 세부

단위: 개수

ExpiredLeases

특정 작업자가 식별한 대로 임의의 작업자가 처리하지 않는 총 샤드 수입니다.

측정치 수준: 요약

단위: 개수

성공

TakeLeases 작업이 성공적으로 완료된 횟수입니다.

측정치 수준: 요약

단위: 개수

시간

작업자의 TakeLeases 작업에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

샤드별 측정치

이 측정치는 단일 레코드 프로세서에서 집계됩니다.

ProcessTask

ProcessTask작업 호출GetRecords스트림에서 레코드를 검색하고 레코드 프로세서를 호출하는 현재 반복자 위치processRecords함수.

지표 설명
KinesisDataFetcher.getRecords.Success

성공한 횟수GetRecordsKinesis 데이터 스트림 샤드당 연산

측정치 수준: 세부

단위: 개수

KinesisDataFetcher.getRecords.Time

수행된 시간GetRecordsKinesis Data Streams 샤드에 대한 작업입니다.

측정치 수준: 세부

단위: 밀리초

UpdateLease.Success

지정된 샤드의 레코드 프로세서가 성공적으로 수행한 체크포인트 수입니다.

측정치 수준: 세부

단위: 개수

UpdateLease.Time

지정된 샤드의 각 체크포인트 작업에 소요된 시간입니다.

측정치 수준: 세부

단위: 밀리초

DataBytesProcessed

ProcessTask 호출에서 바이트 단위로 처리된 레코드의 총 크기입니다.

측정치 수준: 요약

단위: 바이트

RecordsProcessed

ProcessTask 호출에서 처리된 레코드 수입니다.

측정치 수준: 요약

단위: 개수

ExpiredIterator

수 ExpiredIteratorException 전화할 때 수신됨GetRecords.

측정치 수준: 요약

단위: 개수

MillisBehindLatest 현재 반복자가 샤드의 최신 레코드(팁)에서 뒤쳐진 시간입니다. 이 값은 응답의 최신 레코드와 현재 시간의 시간 차이보다 작거나 같습니다. 마지막 응답 레코드의 타임스탬프와 비교하는 것보다 팁에서 샤드가 얼마나 멀리 있는지 반영하는 것이 더 정확합니다. 각 레코드에 있는 모든 타임스탬프의 평균이 아니라 최신 레코드 배치에 이 값이 적용됩니다.

측정치 수준: 요약

단위: 밀리초

RecordProcessor.processRecords.Time

레코드 프로세서의 processRecords 메서드에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초

성공

성공적인 process task 작업 수입니다.

측정치 수준: 요약

단위: 개수

시간

process task 작업에 소요된 시간입니다.

측정치 수준: 요약

단위: 밀리초