View a markdown version of this page

データ配信のモニタリング - Amazon Kinesis Data Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データ配信のモニタリング

このトピックでは、Amazon CloudWatch メトリクス、CloudWatch Logs、および を使用して配信をモニタリングする方法について説明します AWS CloudTrail。

CloudWatch メトリクス

各配信は、 AWS/Kinesis名前空間の CloudWatch にメトリクスを発行します。メトリクス名には、汎用 Amazon S3 配信DeliveryToS3用とストリーミングテーブル配信DeliveryToIceberg用の送信先タイプがプレフィックスとして付けられます。これらのメトリクスを使用して、配信の状態とパフォーマンスをモニタリングします。

Amazon S3 配信メトリクス (DeliveryToS3)
メトリクス名 Unit 説明
DeliveryToS3.DataFreshness 秒 送信先にまだ配信されていない最も古いレコードの経過時間。値を大きくすると、配信が遅れていることを示します。
DeliveryToS3.BytesIn バイト ストリームから配信パスに読み取られたデータの量。
DeliveryToS3.BytesProcessed バイト 配信によって処理されるデータの量。
DeliveryToS3.BytesOut バイト 送信先に書き込まれたデータの量。
DeliveryToS3.RecordCount カウント ストリームから読み取られたレコードの総数。
DeliveryToS3.SuccessfulRecordCount カウント 送信先に正常に配信されたレコードの数。
DeliveryToS3.FailedRecordCount カウント 配信に失敗したレコードの数。ゼロ以外の値はキーエラーシグナルです。
DeliveryToS3.DeliverySuccess カウント 成功した配信オペレーションの数。
DeliveryToS3.DLQDeliverySuccess カウント デッドレターキューに正常に書き込まれたレコードの数。
ストリーミングテーブル配信メトリクス (DeliveryToIceberg)
メトリクス名 Unit 説明
DeliveryToIceberg.DataFreshness 秒 テーブルにまだ配信されていない最も古いレコードの経過時間。値を大きくすると、配信が遅れていることを示します。
DeliveryToIceberg.BytesIn バイト ストリームから配信パスに読み取られたデータの量。
DeliveryToIceberg.BytesProcessed バイト 配信によって処理されるデータの量。
DeliveryToIceberg.BytesOut バイト テーブルに書き込まれたデータの量。
DeliveryToIceberg.TotalRowCount カウント ストリームから読み取られた行の合計数。
DeliveryToIceberg.SuccessfulRowCount カウント テーブルに正常に配信された行数。
DeliveryToIceberg.FailedRowCount カウント 配信に失敗した行数。ゼロ以外の値はキーエラーシグナルです。
DeliveryToIceberg.CommitSuccess カウント 成功した Iceberg コミットの数。
DeliveryToIceberg.DLQDeliverySuccess カウント デッドレターキューに正常に書き込まれたレコードの数。

ディメンション

配信メトリクスは、次のディメンションで公開されます。

  • ChannelName – 配信名。

  • ChannelId – 配信の一意の識別子。

  • StreamName – ソース Kinesis Data Streams ストリームの名前。

注記

CloudWatch アラームで特定の配信をターゲットにするには、3 つのディメンションをすべて指定します。GetMetricData および を使用してブラウジングまたはクエリを行う場合ListMetricsは、ChannelName単独でなど、ディメンションのサブセットでフィルタリングできます。

推奨アラーム

配信に推奨される CloudWatch アラーム
アラーム メトリクス Condition 説明
高い障害率 DeliveryToS3.FailedRecordCount > 0 を 5 分間 レコードの配信が失敗しています。スキーマの不一致または送信先の問題を調査します。
データ鮮度の低下 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 の有効化

以下を使用して配信を作成または更新するときに CloudWatch Logs を有効にします AWS CLI。

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/channelName/channelId。カスタム を指定する場合はLogGroupName、サービス実行ロールの CloudWatch Logs アクセス許可が同じロググループにスコープされていることを確認します。必要なアクセス許可については、「データ配信の 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>" }