기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 전송 모니터링
이 주제를 사용하여 Amazon CloudWatch 지표, CloudWatch Logs 및를 사용하여 전송을 모니터링하는 방법을 알아봅니다 AWS CloudTrail.
CloudWatch Metrics
각 전송은 AWS/Kinesis 네임스페이스의 CloudWatch에 지표를 게시합니다. 지표 이름은 범용 Amazon S3 전송의 DeliveryToS3 경우 , 스트리밍 테이블 전송의 경우 DeliveryToIceberg의 대상 유형에 따라 접두사가 지정됩니다. 이러한 지표를 사용하여 전송 상태와 성능을 모니터링합니다.
| 지표 이름 | 단위 | 설명 |
|---|---|---|
DeliveryToS3.DataFreshness |
초 | 대상에 아직 전송되지 않은 가장 오래된 레코드의 수명입니다. 상승 값은 전송이 지연되고 있음을 나타냅니다. |
DeliveryToS3.BytesIn |
바이트 | 스트림에서 전송 경로로 읽은 데이터의 볼륨입니다. |
DeliveryToS3.BytesProcessed |
바이트 | 전송에서 처리하는 데이터의 볼륨입니다. |
DeliveryToS3.BytesOut |
바이트 | 대상에 기록된 데이터의 볼륨입니다. |
DeliveryToS3.RecordCount |
개수 | 스트림에서 읽은 총 레코드 수입니다. |
DeliveryToS3.SuccessfulRecordCount |
개수 | 대상으로 성공적으로 전송된 레코드 수입니다. |
DeliveryToS3.FailedRecordCount |
개수 | 전송에 실패한 레코드 수입니다. 0이 아닌 값은 키 오류 신호입니다. |
DeliveryToS3.DeliverySuccess |
개수 | 성공적인 전송 작업 수입니다. |
DeliveryToS3.DLQDeliverySuccess |
개수 | 배달 못한 편지 대기열에 성공적으로 기록된 레코드 수입니다. |
| 지표 이름 | 단위 | 설명 |
|---|---|---|
DeliveryToIceberg.DataFreshness |
초 | 테이블에 아직 전송되지 않은 가장 오래된 레코드의 수명입니다. 상승 값은 전송이 지연되고 있음을 나타냅니다. |
DeliveryToIceberg.BytesIn |
바이트 | 스트림에서 전송 경로로 읽은 데이터의 볼륨입니다. |
DeliveryToIceberg.BytesProcessed |
바이트 | 전송에서 처리하는 데이터의 볼륨입니다. |
DeliveryToIceberg.BytesOut |
바이트 | 테이블에 기록된 데이터의 볼륨입니다. |
DeliveryToIceberg.TotalRowCount |
개수 | 스트림에서 읽은 총 행 수입니다. |
DeliveryToIceberg.SuccessfulRowCount |
개수 | 테이블에 성공적으로 전달된 행 수입니다. |
DeliveryToIceberg.FailedRowCount |
개수 | 전송에 실패한 행 수입니다. 0이 아닌 값은 키 오류 신호입니다. |
DeliveryToIceberg.CommitSuccess |
개수 | 성공한 Iceberg 커밋 수입니다. |
DeliveryToIceberg.DLQDeliverySuccess |
개수 | 배달 못한 편지 대기열에 성공적으로 기록된 레코드 수입니다. |
측정 기준
전송 지표는 다음 차원으로 게시됩니다.
-
ChannelName- 전송 이름입니다. -
ChannelId- 전송의 고유 식별자입니다. -
StreamName- 소스 Kinesis Data Streams 스트림의 이름입니다.
참고
CloudWatch 경보에서 특정 전송을 대상으로 하려면 세 가지 차원을 모두 지정합니다. GetMetricData 및를 사용하여 검색하거나 쿼리하려면 ChannelName 단독으로와 같은 차원 하위 집합을 기준으로 필터링ListMetrics할 수 있습니다.
권장되는 경보
| 경보 | 지표 | 조건 | 설명 |
|---|---|---|---|
| 높은 실패율 | DeliveryToS3.FailedRecordCount |
5분 동안 > 0 | 레코드가 전송에 실패합니다. 스키마 불일치 또는 대상 문제를 조사합니다. |
| 데이터 신선도 저하 | DeliveryToS3.DataFreshness |
> 임계값 | 데이터 전송이 지연되고 있습니다. 서비스 실행 역할에 대한 권한 누락 또는 대상에서의 제한과 같은 전송 문제를 조사합니다. |
| 전송된 데이터 없음 | DeliveryToS3.SuccessfulRecordCount |
15분 동안 = 0 | 전송된 레코드가 없습니다. 스트림에 데이터가 있고 전송이 활성 상태인지 확인합니다. |
| DLQ 전송 실패 | DeliveryToS3.DLQDeliverySuccess |
FailedRecordCount > 0인 경우 = 0 | 실패한 레코드는 배달 못한 편지 대기열에 쓸 수 없습니다. DLQ 버킷 권한을 확인합니다. |
참고
위의 경보는 Amazon S3 전송에 대한 DeliveryToS3 지표를 사용합니다. 스트리밍 테이블 전송의 경우 동등한 DeliveryToIceberg 지표(DeliveryToIceberg.FailedRowCount, DeliveryToIceberg.DataFreshness, DeliveryToIceberg.SuccessfulRowCount및 DeliveryToIceberg.DLQDeliverySuccess)를 사용합니다.
CloudWatch Logs
각 전송은 디버깅 및 운영 가시성을 위해 CloudWatch Logs에 세부 로그를 게시할 수 있습니다.
-
기본 로그 그룹 -
/aws/kinesis/channelName/channelId -
로그 스트림 -
DestinationDelivery
CLI를 통해 CloudWatch Logs 활성화
AWS CLI다음을 사용하여 전송을 생성하거나 업데이트할 때 CloudWatch Logs를 활성화합니다.
aws kinesis create-channel \ --channel-name "my-channel" \ --service-execution-role-arn "arn:aws:iam::123456789012:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON" } } ]' \ --s3-destination-configuration '{ "StorageConfiguration": { "BucketARN": "arn:aws:s3:::my-destination-bucket", "ExpectedBucketOwner": "123456789012", "CompressionType": "GZIP" } }' \ --logging-configuration '{ "CloudWatchLogs": { "Enabled": true } }'
로그 그룹을 지정하지 않고 CloudWatch Logs를 활성화하면 전송에서 기본 로그 그룹를 사용합니다/aws/kinesis/. 사용자 지정을 지정하는 경우 서비스 실행 역할의 CloudWatch Logs 권한이 동일한 로그 그룹으로 범위가 지정되었는지 channelName/channelIdLogGroupName확인합니다. 필요한 권한에 대해서는 데이터 전송을 위한 IAM 권한을 참조하세요.
update-channel 명령을 사용하여 기존 전송에서 CloudWatch Logs를 활성화하거나 업데이트하여 동일한 --logging-configuration 값을 전달할 수도 있습니다.
필수 권한
CloudWatch Logs를 활성화하려면 전송의 서비스 실행 역할에 다음 권한이 있어야 합니다.
-
logs:CreateLogGroup -
logs:CreateLogStream -
logs:PutLogEvents
이러한 권한의 범위를 특정 로그 그룹 ARN으로 지정합니다. 전체 정책 예제는 섹션을 참조선택적 CloudWatch Logs 권한하세요.
AWS CloudTrail 로깅
모든 전송 API 호출은에 의해 기록됩니다 AWS CloudTrail. 다음은 CreateChannel 호출의 예제 AWS CloudTrail 이벤트입니다.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA1EXAMPLE:user-session", "arn": "arn:aws:sts::<account-id>:assumed-role/<role-name>/user-session", "accountId": "<account-id>" }, "eventTime": "2026-07-20T20:00:00Z", "eventSource": "kinesis.amazonaws.com", "eventName": "CreateChannel", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.1", "userAgent": "aws-cli/2.x", "requestParameters": { "streamName": "my-stream", "channelName": "my-channel" }, "responseElements": { "channelARN": "arn:aws:kinesis:us-east-1:<account-id>:channel/<channel-id>" }, "requestID": "a1b2c3d4-example", "eventID": "e5f6g7h8-example", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "<account-id>" }