

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控資料交付
<a name="data-delivery-monitoring"></a>

 使用此主題來了解如何使用 Amazon CloudWatch 指標、CloudWatch Logs 和 來監控您的交付 AWS CloudTrail。

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

 每個交付都會將指標發佈至 `AWS/Kinesis` 命名空間中的 CloudWatch。指標名稱的字首是目的地類型：`DeliveryToS3`用於一般用途的 Amazon S3 交付和`DeliveryToIceberg`用於串流資料表交付。使用這些指標來監控交付的運作狀態和效能。


**Amazon 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 | 計數 | 成功寫入無效字母佇列的記錄數目。 | 

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

 交付指標會以下列維度發佈：
+ `ChannelName` – 交付名稱。
+ `ChannelId` – 交付的唯一識別符。
+ `StreamName` – 來源 Kinesis Data Streams 串流的名稱。

**注意**  
 若要以 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 | = 失敗FailedRecordCount > 0 時為 0 | 失敗的記錄無法寫入無效字母佇列。檢查 DLQ 儲存貯體許可。 | 

**注意**  
 上述警示使用 Amazon S3 交付的`DeliveryToS3`指標。對於串流資料表交付，請使用同等`DeliveryToIceberg`指標 (`DeliveryToIceberg.FailedRowCount`、`DeliveryToIceberg.SuccessfulRowCount`、 `DeliveryToIceberg.DataFreshness`和 `DeliveryToIceberg.DLQDeliverySuccess`)。

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

 每個交付都可以將詳細日誌發佈至 CloudWatch Logs，以進行偵錯和操作可見性。
+ **預設日誌群組** – `/aws/kinesis/{{channelName}}/{{channelId}}`
+ **日誌串流** – `DestinationDelivery`

### 透過 CLI 啟用 CloudWatch Logs
<a name="data-delivery-monitoring-logs-enable"></a>

 使用 建立或更新交付時啟用 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 許可](data-delivery-iam.md)。

 您也可以使用 `update-channel`命令在現有交付上啟用或停用 CloudWatch Logs，傳遞相同的`--logging-configuration`值。

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

 若要啟用 CloudWatch Logs，交付的服務執行角色必須具有下列許可：
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:PutLogEvents`

 將這些許可範圍限定為特定的日誌群組 ARN。如需完整政策範例，[選用 CloudWatch Logs 許可](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>"
}
```