

# 监控集成
<a name="zero-etl-monitoring"></a>



## 集成状态
<a name="zero-etl-integration-states"></a>

以下集成状态描述了集成：
+ `Creating`：正在创建集成。
+ `Active`：集成正在将事务数据发送到目标。
+ `Modifying`：正在修改集成。
+ `Syncing`：集成遇到了可恢复的错误，正在重新设置数据种子。
+ `Needs attention`：集成遇到了需要手动干预才能解决的事件或错误。要修复问题，请按照集成详细信息上错误消息中的说明进行操作。
+ `Failed`：集成遇到了无法恢复的事件或错误。您必须删除并重新创建集成。
+ `Deleting`：正在删除集成。

## 查看集成的 Amazon CloudWatch Logs 指标
<a name="zero-etl-cloudwatch-logs"></a>

AWS Glue 零 ETL 集成会生成 Amazon CloudWatch Logs，便于了解数据移动。与每次成功摄取或由于源数据记录出现问题而导致的任何故障，或由于架构更改或权限不足而导致的数据写入错误相关的日志事件都会发送到在客户账户中创建的默认日志组。

对于创建的每个集成，将在 Amazon Cloudwatch 中的 `/aws-glue/zeroETL-integrations/logs/` 中收集该集成的日志事件。在日志组内，日志消息会拆分为日志流。创建的每个集成都有一个专用的日志流，该集成的所有日志都会写入此日志流。例如，可以在 /aws-glue/zeroETL-integrations/logs/03cabe77-79e7-4b7a-b3da-8c160bea6bbf 下找到与 IntegrationArn `arn:aws:glue:us-east-1:123456789012:integration:03cabe77-79e7-4b7a-b3da-8c160bea6bbf` 集成的日志。可以从创建集成时生成的 \$1integrationArn\$1 中引用 \$1IntegrationId\$1。

**注意**  
对于跨账户场景，源处理日志在集成所在的源账户中发出，目标处理日志在目标数据库所在的目标账户中发出。

### 启用日志记录所需的 IAM 权限
<a name="zero-etl-cloudwatch-logs-iam"></a>

创建集成时，源角色和目标角色需要以下 IAM 权限才能为集成启用 CloudWatch 日志记录。AWS Glue 零 ETL 集成使用源角色和目标角色中提供的这些权限向客户账户发送 CloudWatch 日志。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

### 日志消息
<a name="zero-etl-cloudwatch-logs-messages"></a>

日志格式：零 ETL 集成会发出四种类型的日志消息：

```
// Ingestion started
{
"integrationArn": "arn:aws:glue:us-east-2:123456789012:integration/1a012bba-123a-1bba-ab1c-173de3b12345",
...
    "messageType": "IngestionStarted",
    "details": {
        "tableName": "testDDBTable",
        "message": "Ingestion Job started"
    }
}
// Data processing stats on successful table ingestion
{
...
    "messageType": "IngestionProcessingStats",
    "details": {
        "tableName": "testDDBTable",
        "insert_count": 100,
        "update_count": 10,
        "delete_count": 10   
    }
}
// Ingestion failure logs for failed table-processing
{
...
    "messageType": "IngestionFailed",
    "details": {
        "tableName": "testDDBTable",
        "errorMessage": "Failed to ingest data with error: Target Glue database not found.",
        "error_code" : "client_error"
    }
}
// Ingestion completed notification with lastSyncedTimestamp
{
...
    "messageType": "IngestionCompleted",
    "details": {
        "tableName": "testDDBTable",
        "message": "Ingestion Job completed"
        "lastSyncedTimestamp": "1132344255745"
    }
}
```

## 查看集成的 Amazon CloudWatch 指标
<a name="zero-etl-cloudwatch-metrics"></a>

集成完成后，您可以看到您的账户中为每个 AWS Glue 作业运行生成的以下 Amazon Cloudwatch 指标：

CloudWatch 指标命名空间：“AWS/Glue/ZeroETL”

指标维度：
+ `integrationArn`
+ `loadType`
+ `tableName`

指标名称：
+ `InsertCount`：目标 Iceberg 表中插入的记录数。
+ `UpdateCount`：目标 Iceberg 表中更新的记录数。
+ `DeleteCount`：从目标 Iceberg 表中删除的记录数。
+ `IngestionSucceeded`：如果集成的摄取成功，则计数为 1。
+ `IngestionFailed`：如果集成的摄取失败，则计数为 1。
+ `LastSyncTimestamp`：源已同步到目标的时间戳。

## 使用 Amazon EventBridge 管理事件通知
<a name="zero-etl-eventbridge-notifications-setup"></a>

零 ETL 集成使用 Amazon EventBridge 管理事件通知，以便及时了解集成中的更改。Amazon EventBridge 是一项无服务器事件总线服务，能够让您轻松将应用程序与来自多种来源的数据相连接。在这种情况下，事件源是 AWS Glue。事件（在环境中监控到的变化）将从 AWS Glue 自动发送到 EventBridge。事件将近乎实时地进行传输。

EventBridge 提供了一个环境，供您编写事件规则，这些规则可以指定针对特定事件采取的操作。您还可以设置目标，这些目标是 EventBridge 可以向其发送事件的资源。目标可以包括 API 目标、Amazon CloudWatch 日志组等。有关规则的更多信息，请参阅 [Amazon EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)。有关目标的更多信息，请参阅 [Amazon EventBridge 目标](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)。

要捕获所有零 ETL 通知，请创建匹配以下内容的 Eventbridge 规则：

```
{
  "source": [{
    "prefix": "aws.glue-zero-etl“
  }],
  "detail-type": [{
    "prefix": "Glue Zero ETL“
  }]
}
```

下表包括零 ETL 集成事件以及其他元数据：


| 面向客户的详细信息类型 | 说明 | 
| --- | --- | 
| AWS Glue 零 ETL 摄取完成 | 已成功完成实体的单独执行。 | 
| AWS Glue 零 ETL 摄取失败 | 未成功完成实体的单独执行（可能是由于客户端错误或系统错误）。 | 
| AWS Glue 零 ETL 集成已重新同步 | 集成状态为 RESYNCED。 | 
| AWS Glue 零 ETL 集成失败 | 由于错误，集成状态已更改为 FAILED。 | 
| AWS Glue 零 ETL 集成需要注意 | 由于错误，集成状态已更改为 NEEDS\$1ATTENTION。 | 
| AWS Glue 零 ETL 摄取正在执行 | 距离完成实体的单独执行已取得部分进展。 | 