Amazon CloudWatch로 Kinesis 프로듀서 라이브러리 모니터링 - Amazon Kinesis Data Streams

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

Amazon CloudWatch로 Kinesis 프로듀서 라이브러리 모니터링

Kinesis 생산자 라이브러리Amazon Kinesis Data Streams (KPL) 은 사용자 지정 Amazon 게시 CloudWatch 사용자를 대신하여 측정치. 로 이동하여 이러한 측정치를 볼 수 있습니다.CloudWatch 콘솔및 선택사용자 지정 측정치. 사용자 지정 지표에 대한 자세한 정보는 단원을 참조하십시오.사용자 지정 지표 게시아마존 CloudWatch 사용 설명서.

에 업로드되는 지표에 일반 요금이 부과됩니다. CloudWatch KPL, 특히 아마존 CloudWatch Amazon 사용자 지정 지표 및 Amazon CloudWatch API 요청 요금이 발생합니다. 자세한 내용은 단원을 참조하십시오.아마존 CloudWatch 요금. 로컬 지표 수집에는 CloudWatch 요금이 부과되지 않습니다.

측정치, 차원 및 네임스페이스

KPL을 시작할 때 애플리케이션 이름을 지정할 수 있으며, 이 이름은 지표를 업로드할 때 네임스페이스의 일부로 사용됩니다. 이는 선택 사항이며 애플리케이션 이름이 설정되지 않은 경우 KPL은 기본값을 제공합니다.

지표에 임의의 다른 차원을 추가하도록 KPL을 구성할 수도 있습니다. 데이터를 세분화하려는 경우 이 방법이 유용합니다. CloudWatch 지표. 예를 들어, 호스트 이름을 차원으로 추가하여 플릿에서 고르지 못한 로드 분산을 식별할 수 있습니다. 모든 KPL 구성 설정은 변경할 수 없으므로 KPL 인스턴스가 초기화된 후에는 이러한 추가 차원을 변경할 수 없습니다.

측정치 수준 및 세부 수준

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

지표 수준

측정치의 중요성을 나타내는 대략적인 게이지입니다. 모든 측정치에는 수준이 할당됩니다. 수준을 설정하면 해당 수준이 낮은 지표는 CloudWatch에 전송되지 않습니다. 수준은 NONE, SUMMARYDETAILED입니다. 기본 설정은 DETAILED, 즉 모든 지표입니다. NONE은 지표가 전혀 없음을 의미하므로 실제로 해당 수준에 지표가 할당되지 않습니다.

세부 수준

추가 세부 수준에서 동일한 측정치를 내보내는지 여부를 제어합니다. 수준은 GLOBAL, STREAMSHARD입니다. 기본 설정은 가장 세분화된 측정치를 포함하는 SHARD입니다.

SHARD를 선택하면 스트림 이름과 샤드 ID를 차원으로 하여 측정치를 내보냅니다. 또한 스트림 이름이 없는 측정치와 스트림 이름 차원만으로도 동일한 측정치를 내보냅니다. 즉, 특정 메트릭에 대해 두 개의 샤드가 있는 두 개의 스트림이 각각 7개를 생성합니다. CloudWatch metrics: 각 샤드에 1개, 각 스트림에 1개, 전체적으로 1개. 서로 다른 세수 수준에서 모두 동일한 통계를 나타냅니다. 서로 다른 세수 수준에서 모두 동일한 통계를 나타냅니다. 다음 다이어그램을 참조하십시오.

여러 세부 수준이 계층 구조를 형성하고 시스템의 모든 지표는 지표 이름을 토대로 트리를 형성합니다.

MetricName (GLOBAL): Metric X Metric Y | | ----------------- ------------ | | | | StreamName (STREAM): Stream A Stream B Stream A Stream B | | -------- --------- | | | | ShardID (SHARD): Shard 0 Shard 1 Shard 0 Shard 1

모든 측정치를 샤드 수준에서 사용할 수 있는 것은 아니며 본질적으로 스트림 수준이나 전역 수준에서 사용할 수 있는 측정치도 있습니다. 샤드 수준 지표를 활성화한 경우에도 이 측정치가 샤드 수준에서 생성되지 않습니다(위 다이어그램의 Metric Y).

추가 차원을 지정할 때 tuple:<DimensionName, DimensionValue, Granularity>에 값을 제공해야 합니다. 사용자 지정 차원이 계층 구조에 삽입되는 위치를 결정하기 위해 세부 수준을 사용합니다. GLOBAL은 지표 이름 뒤, STREAM은 스트림 이름 뒤, SHARD는 샤드 ID 뒤에 추가 차원을 삽입한다는 의미입니다. 여러 추가 차원이 세부 수준별로 제공되면 지정된 순서대로 삽입됩니다.

Amazon 로컬 액세스 및 Amazon CloudWatch 업로드

현재 KPL 인스턴스의 측정치는 로컬에서 실시간으로 사용할 수 있으며 언제든지 KPL을 쿼리하여 가져올 수 있습니다. CloudWatch와 마찬가지로 KPL은 로컬에서 모든 측정치의 합계, 평균, 최소값, 최대값 및 개수를 로컬에서 컴퓨팅합니다.

프로그램 시작부터 현재 시점까지 누적된 통계를 가져오거나 지난 N초(N은 1~60 사이의 정수) 동안 롤링 윈도우를 사용하여 통계를 가져올 수 있습니다.

모든 측정치를 CloudWatch에 업로드할 수 있습니다. 특히 여러 호스트의 데이터 집계, 모니터링 및 경보에 유용합니다. 로컬에서는 이 기능을 사용할 수 없습니다.

전에 설명한 대로 측정치 수준세부 수준 설정으로 업로드할 측정치를 선택할 수 있습니다. 업로드되지 않은 측정치를 로컬에서 사용할 수 있습니다.

트래픽이 많을 때 초당 수백만 개의 업로드가 이루어지기 때문에 데이터 요소를 개별적으로 업로드하는 것은 적절하지 않습니다. 이러한 이유로 KPL은 로컬에서 측정치를 1분 버킷으로 집계하고 다음 통계 객체를 업로드합니다. CloudWatch 활성화된 지표당 1분마다 한 번씩

측정치 목록

지표 설명
UserRecordsReceived

넣기 작업을 위해 KPL 코어에 수신된 논리적 사용자 레코드 수입니다. 샤드 수준에서 사용할 수 없습니다.

측정치 수준: 세부

단위: 개수

UserRecordsPending

현재 대기 중인 사용자 레코드 수의 주기적 샘플입니다. 레코드가 현재 버퍼되고 전송을 기다리고 있거나 백엔드 서비스로 전송 및 이동 중일 경우 레코드는 대기 중 상태입니다. 샤드 수준에서 사용할 수 없습니다.

KPL은 전용 메서드를 제공하여 고객이 넣기 속도를 관리할 수 있도록 전역 수준에서 이 지표를 검색합니다.

측정치 수준: 세부

단위: 개수

UserRecordsPut

성공적으로 입력된 논리적 사용자 레코드 수입니다.

KPL은 이 지표의 실패한 레코드를 계산하지 않습니다. 평균을 통해 성공률을, 개수를 통해 총 시도 수를, 개수와 합계의 차이를 통해 실패 수를 알 수 있습니다.

측정치 수준: 요약

단위: 개수

UserRecordsDataPut

성공적으로 입력된 논리적 사용자 레코드의 바이트입니다.

측정치 수준: 세부

단위: 바이트

KinesisRecordsPut

성공적으로 입력된 Kinesis Data Streams 레코드의 수입니다. 각 Kinesis Data Streams 레코드에는 여러 사용자 레코드가 포함될 수 있습니다.

KPL은 실패한 레코드에 대해 0을 출력합니다. 평균을 통해 성공률을, 개수를 통해 총 시도 수를, 개수와 합계의 차이를 통해 실패 수를 알 수 있습니다.

측정치 수준: 요약

단위: 개수

KinesisRecordsDataPut

Kinesis Data Streams 레코드의 바이트입니다.

측정치 수준: 세부

단위: 바이트

ErrorsByCode

각 오류 코드 유형의 개수입니다. ErrorCodeStreamName와 같은 일반 차원 이외에 ShardId의 추가 차원이 있습니다. 모든 오류를 샤드로 추적할 수 있는 것은 아닙니다. 스트림 또는 전역 수준에서만 추적할 수 없는 오류를 내보냅니다. 조절, 샤드 맵 변경, 내부 오류, 서비스 사용 불가, 시간 초과 등에 대한 정보가 이 측정치에 캡처됩니다.

Kinesis Data Streams API 오류는 Kinesis Data Streams 레코드마다 한 번 Kinesis Data Streams 레코드 내의 여러 사용자 레코드는 여러 번 계산되지 않습니다.

측정치 수준: 요약

단위: 개수

AllErrors

Errors by Code(코드별 오류)와 동일한 오류로 트리거되지만 유형을 구별하지 않습니다. 다른 모든 유형의 오류 개수 합계를 수동으로 계산하지 않고도 오류 비율을 전반적으로 모니터링할 수 있어 유용합니다.

측정치 수준: 요약

단위: 개수

RetriesPerRecord

사용자 레코드마다 수행한 재시도 수입니다. 레코드가 한 번에 성공하면 0을 내보냅니다.

사용자 레코드가 완료(성공하거나 더 이상 재시도할 수 없는 경우)되면 데이터를 내보냅니다. If 레코드 time-to-live 값이 크면 이 지표가 상당히 지연될 수 있습니다.

측정치 수준: 세부

단위: 개수

BufferingTime

사용자 레코드가 KPL에 도착했다가 백엔드로 나가는 사이의 시간입니다. 레코드별로 이 정보를 사용자에게 다시 전송하지만 집계된 통계로 사용할 수도 있습니다.

측정치 수준: 요약

단위: 밀리초

Request Time

PutRecordsRequests를 수행하는 데 소요되는 시간입니다.

측정치 수준: 세부

단위: 밀리초

User Records per Kinesis Record

단일 Kinesis Data Streams 레코드에 집계된 논리적 사용자 레코드 수입니다.

측정치 수준: 세부

단위: 개수

Amazon Kinesis Records per PutRecordsRequest

단일 에 집계된 Kinesis Data Streams 레코드 수PutRecordsRequest. 샤드 수준에서 사용할 수 없습니다.

측정치 수준: 세부

단위: 개수

User Records per PutRecordsRequest

PutRecordsRequest에 포함된 총 사용자 레코드 수입니다. 앞의 두 측정치의 결과와 거의 비슷합니다. 샤드 수준에서 사용할 수 없습니다.

측정치 수준: 세부

단위: 개수