

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控数据交付
<a name="data-delivery-monitoring"></a>

 使用本主题了解如何使用亚马逊 CloudWatch 指标、 CloudWatch 日志和监控您的配送 AWS CloudTrail。

## CloudWatch 指标
<a name="data-delivery-monitoring-metrics"></a>

 每次交付都会将指标发布到`AWS/Kinesis`命名空间 CloudWatch 中。指标名称以目标类型为前缀：`DeliveryToS3`用于一般用途的 Amazon S3 交付和`DeliveryToIceberg`流式表交付。使用这些指标来监控交付的运行状况和绩效。


**亚马逊 S3 交付指标 (DeliveryToS3)**  

| 指标名称 | 单位 | 说明 | 
| --- | --- | --- | 
| DeliveryToS3.DataFreshness | 秒 | 尚未送达目的地的最早记录的年龄。价值上升表明交付落后。 | 
| DeliveryToS3.BytesIn | 字节 | 从流中读入传送路径的数据量。 | 
| DeliveryToS3.BytesProcessed | 字节 | 交付处理的数据量。 | 
| DeliveryToS3.BytesOut | 字节 | 写入目标的数据量。 | 
| DeliveryToS3.RecordCount | 计数 | 从流中读取的记录总数。 | 
| DeliveryToS3.SuccessfulRecordCount | 计数 | 成功传送到目的地的记录数。 | 
| DeliveryToS3.FailedRecordCount | 计数 | 传送失败的记录数量。非零值是关键错误信号。 | 
| DeliveryToS3.DeliverySuccess | 计数 | 成功的交付操作的次数。 | 
| DeliveryToS3.DLQDeliverySuccess | 计数 | 成功写入死信队列的记录数。 | 


**直播表交付指标 (DeliveryToIceberg)**  

| 指标名称 | 单位 | 说明 | 
| --- | --- | --- | 
| DeliveryToIceberg.DataFreshness | 秒 | 尚未提交到表中的最早记录的年龄。价值上升表明交付落后。 | 
| DeliveryToIceberg.BytesIn | 字节 | 从流中读入传送路径的数据量。 | 
| DeliveryToIceberg.BytesProcessed | 字节 | 交付处理的数据量。 | 
| DeliveryToIceberg.BytesOut | 字节 | 写入表的数据量。 | 
| DeliveryToIceberg.TotalRowCount | 计数 | 从流中读取的总行数。 | 
| DeliveryToIceberg.SuccessfulRowCount | 计数 | 成功传送到表的行数。 | 
| DeliveryToIceberg.FailedRowCount | 计数 | 传送失败的行数。非零值是关键错误信号。 | 
| DeliveryToIceberg.CommitSuccess | 计数 | Iceberg 成功提交的次数。 | 
| DeliveryToIceberg.DLQDeliverySuccess | 计数 | 成功写入死信队列的记录数。 | 

### Dimensions
<a name="data-delivery-monitoring-dimensions"></a>

 发布的交付指标按以下维度发布：
+ `ChannelName`— 配送名称。
+ `ChannelId`— 交付的唯一标识符。
+ `StreamName`— 源 Kinesis 数据流的名称。

**注意**  
 要将 CloudWatch 警报中的特定交付作为目标，请指定所有三个维度。要使用`GetMetricData`和进行浏览或查询`ListMetrics`，您可以按维度子集进行筛选，例如`ChannelName`单独进行筛选。

### 建议的警报
<a name="data-delivery-monitoring-alarms"></a>


**推荐的配送 CloudWatch 警报**  

| 警报 | 指标 | 条件 | 说明 | 
| --- | --- | --- | --- | 
| 失败率高 | DeliveryToS3.FailedRecordCount | >0 持续 5 分钟 | 记录无法交付。调查架构不匹配或目标问题。 | 
| 数据新鲜度降低 | DeliveryToS3.DataFreshness | >阈值 | 数据交付落后了。调查交付问题，例如缺少服务执行角色的权限或目的地的限制。 | 
| 未传送任何数据 | DeliveryToS3.SuccessfulRecordCount | = 0 持续 15 分钟 | 尚未交付任何记录。验证直播是否有数据且传输处于活动状态。 | 
| DLQ 交付失败 | DeliveryToS3.DLQDeliverySuccess | 当大于 0 时 FailedRecordCount = 0 | 失败的记录无法写入死信队列。检查 DLQ 存储桶权限。 | 

**注意**  
 前面的警报使用了 Amazon S3 交付的`DeliveryToS3`指标。对于流式表交付，请使用等效`DeliveryToIceberg`指标（`DeliveryToIceberg.FailedRowCount``DeliveryToIceberg.DataFreshness`、`DeliveryToIceberg.SuccessfulRowCount`、和`DeliveryToIceberg.DLQDeliverySuccess`）。

## CloudWatch 日志
<a name="data-delivery-monitoring-logs"></a>

 每次交付都可以将详细日志发布到日 CloudWatch 志，以进行调试和提高操作可见性。
+ **默认日志组 ** — `/aws/kinesis/{{channelName}}/{{channelId}}`
+ **日志流 ** — `DestinationDelivery`

### 通过 CLI 启用 CloudWatch 日志
<a name="data-delivery-monitoring-logs-enable"></a>

 使用以下方法创建或更新交付时启用 CloudWatch 日志 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 日志组的情况下启用日志时，交付将使用默认日志组`/aws/kinesis/{{channelName}}/{{channelId}}`。如果您指定自定义`LogGroupName`，请确保服务执行角色的 CloudWatch 日志权限范围限定为同一日志组。有关所需的权限，请参阅[数据传输的 IAM 权限](data-delivery-iam.md)。

 您还可以使用`update-channel`命令启用或更新现有交付的 CloudWatch 日志，传递相同的`--logging-configuration`值。

### 所需的权限
<a name="data-delivery-monitoring-logs-permissions"></a>

 要启用 CloudWatch 日志，交付的服务执行角色必须具有以下权限：
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:PutLogEvents`

 将这些权限范围限定为特定的日志组 ARN。[可选 CloudWatch 日志权限](data-delivery-iam.md#data-delivery-iam-cloudwatch-logs)有关完整的策略示例，请参阅。

## AWS CloudTrail 日志记录
<a name="data-delivery-monitoring-cloudtrail"></a>

 所有交付 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>"
}
```