Amazon CloudWatch로 Kinesis Producer Library 모니터링 - Amazon Kinesis Data Streams

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

Amazon CloudWatch로 Kinesis Producer Library 모니터링

Amazon Kinesis Data Streams용 Kinesis Producer Library(KPL)는 사용자를 대신하여 사용자 지정 Amazon CloudWatch 지표를 게시합니다. CloudWatch 콘솔로 이동하여 사용자 지정 지표를 선택하면 이러한 지표를 볼 수 있습니다. 사용자 지정 지표에 대한 자세한 내용을 알아보려면 Amazon CloudWatch 사용 설명서의 사용자 지정 지표 게시를 참조하세요.

KPL이 CloudWatch에 업로드한 지표에는 일반 요금이 부과됩니다. 특히 Amazon CloudWatch 사용자 지정 지표 및 Amazon CloudWatch API 요청 요금이 적용됩니다. 자세한 내용은 Amazon CloudWatch 요금을 참조하세요. 로컬 지표 수집에는 CloudWatch 요금이 부과되지 않습니다.

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

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

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

측정치 수준 및 세부 수준

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

지표 수준

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

세부 수준

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

SHARD를 선택하면 스트림 이름과 샤드 ID를 차원으로 하여 측정치를 내보냅니다. 또한 스트림 이름이 없는 측정치와 스트림 이름 차원만으로도 동일한 측정치를 내보냅니다. 특정 지표에 대해 샤드가 2개씩 있는 스트림 2개가 CloudWatch 지표 7개(각 샤드에 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 CloudWatch 업로드

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

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

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

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

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

측정치 목록

지표 Description
UserRecordsReceived

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

측정치 수준: Detailed

단위: 개

UserRecordsPending

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

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

측정치 수준: Detailed

단위: 개

UserRecordsPut

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

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

측정치 수준: Summary

단위: 개

UserRecordsDataPut

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

측정치 수준: Detailed

단위: 바이트

KinesisRecordsPut

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

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

측정치 수준: Summary

단위: 개

KinesisRecordsDataPut

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

측정치 수준: Detailed

단위: 바이트

ErrorsByCode

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

Kinesis Data Streams API 오류는 Kinesis Data Streams 레코드당 한 번 계산됩니다. Kinesis Data Streams 레코드에 있는 여러 사용자 레코드는 여러 번 계산되지 않습니다.

측정치 수준: Summary

단위: 개

AllErrors

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

측정치 수준: Summary

단위: 개

RetriesPerRecord

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

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

측정치 수준: Detailed

단위: 개

BufferingTime

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

측정치 수준: Summary

단위: 밀리초

Request Time

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

측정치 수준: Detailed

단위: 밀리초

User Records per Kinesis Record

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

측정치 수준: Detailed

단위: 개

Amazon Kinesis Records per PutRecordsRequest

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

측정치 수준: Detailed

단위: 개

User Records per PutRecordsRequest

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

측정치 수준: Detailed

단위: 개