

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

# 记录 Amazon Pi EventBridge pes 的性能
<a name="eb-pipes-logs"></a>

EventBridge 管道记录使您可以让 Pipes 向支持的 Amazon 服务发送详细说明管道性能的记录。 EventBridge 使用日志可深入了解管道的执行性能，并帮助进行故障排除和调试。

您可以选择以下 Amazon 服务作为 Pip EventBridge es 将记录传送到的*日志目的地*：
+ CloudWatch 日志

  EventBridge 将日志记录传送到指定的 CloudWatch 日志日志组。

  使用 CloudWatch 日志将您使用的所有系统、应用程序和 Amazon 服务的日志集中到一个高度可扩展的服务中。有关更多信息，请参阅 *Amazon 日志用户指南中的使用日志组和 CloudWatch 日志*[流](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。
+ Firehose 流日志

  EventBridge 将日志记录传送到 Firehose 传输流。

  Amazon Data Firehose 是一项完全托管的服务，用于将实时流数据传送到目的地，例如某些 Amazon 服务以及受支持的第三方服务提供商拥有的任何自定义 HTTP 终端节点或 HTTP 终端节点。有关更多信息，请参阅《Amazon Data Firehose User Guide》**中的 [Creating an Amazon Data Firehose delivery stream](https://docs.amazonaws.cn/firehose/latest/dev/basic-create.html)。
+ Amazon S3 日志

  EventBridge 将日志记录作为 Amazon S3 对象传送到指定的存储桶。

  Amazon S3 是一项对象存储服务，提供行业领先的可扩展性、数据可用性、安全性和性能。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[在 Amazon S3 中上传、下载和使用对象](https://docs.amazonaws.cn/AmazonS3/latest/userguide/uploading-downloading-objects.html)。

## Amazon Pi EventBridge pes 日志的工作原理
<a name="eb-pipes-logs-overview"></a>

管道*执行*是指管道接收到的传送到浓缩 and/or 目标的事件或一批事件。如果启用，则会在处理事件批处理时为其执行的每个执行步骤 EventBridge 生成一条日志记录。记录中包含的信息适用于事件批次，无论是单个事件还是最多 10,000 个事件。

可以在管道源和目标上配置事件批次的大小。有关更多信息，请参阅 [Amazon Pip EventBridge es 批处理和并发](eb-pipes-batching-concurrency.md)。

发送到每个日志目标的记录数据都是相同的。

如果配置了 Amazon CloudWatch Logs 目标，则传送到所有目标的日志记录限制为 256kb。字段会根据需要被截断。

您可以通过以下方式自定义 EventBridge 发送到所选日志目标的记录：
+ 您可以指定*日志级别，该级别*决定了 EventBridge 将记录发送到所选日志目标的执行步骤。有关更多信息，请参阅 [指定 EventBridge 管道日志级别](#eb-pipes-logs-level)。
+ 您可以指定 Pip EventBridge es 是否在相关的执行步骤的记录中包含执行数据。这些数据包括：
  + 事件批次的有效负载
  + 发送到 Amazon 浓缩服务或目标服务的请求
  +  Amazon 浓缩服务或目标服务返回的响应

  有关更多信息，请参阅 [在 Pip EventBridge es 日志中包含执行数据](#eb-pipes-logs-execution-data)。

## 指定 EventBridge 管道日志级别
<a name="eb-pipes-logs-level"></a>

您可以指定将记录 EventBridge 发送到所选日志目标的执行步骤的类型。

从以下详情级别中进行选择，将其包含在日志记录中。日志级别适用于为管道指定的所有日志目标。每个日志级别都包含之前日志级别的执行步骤。
+ **OFF** — EventBridge 不向任何指定的日志目标发送任何记录。这是默认设置。
+ **ERROR**- EventBridge 将与管道执行期间生成的错误相关的所有记录发送到指定的日志目的地。
+ **INFO** — EventBridge 将与错误相关的所有记录以及管道执行期间执行的选择其他步骤发送到指定的日志目的地。
+ **TRACE** — EventBridge 将管道执行中任何步骤中生成的所有记录发送到指定的日志目的地。

在 EventBridge 控制台中， CloudWatch 默认选择日志作为日志目标，`ERROR`日志级别也是如此。因此，默认情况下，Pip EventBridge es 会创建一个新的 CloudWatch 日志组，向该组发送包含详细`ERROR`级别的日志记录。以编程方式配置日志时，不会选择默认值。

下表列出了每个日志级别中包含的执行步骤。


****  

| 步骤 | 跟踪 | 信息 | 错误 | 关闭 | 
| --- | --- | --- | --- | --- | 
|  执行已失败  | x | x | x |   | 
|  执行部分失败  | x | x | x |  | 
|  执行已启动  | x | x |   |   | 
|  执行已成功  | x | x |   |   | 
|  执行受限  | x | x | x |   | 
|  执行超时  | x | x | x |   | 
|  富集调用失败  | x | x | x |  | 
|  已跳过富集调用  | x | x |  |  | 
|  已启动富集调用  | x |  |  |  | 
|  富集调用成功  | x |  |  |  | 
|  进入富集阶段  | x | x |  |  | 
|  富集阶段失败  | x | x | x |  | 
|  富集阶段成功  | x | x |  |  | 
|  富集转换失败  | x | x | x |  | 
|  已启动富集转换  | x |  |  |  | 
|  富集转换成功  | x |  |  |  | 
|  目标调用失败  | x | x | x |  | 
|  目标调用部分失败  | x | x | x |  | 
|  已跳过目标调用  | x |  |  |  | 
|  已启动目标调用  | x |  |  |  | 
|  目标调用成功  | x |  |  |  | 
|  进入目标阶段  | x | x |  |  | 
|  目标阶段失败  | x | x | x |  | 
|  目标阶段部分失败  | x | x | x |  | 
|  已跳过目标阶段  | x |  |  |  | 
|  目标阶段成功  | x | x |  |  | 
|  目标转换失败  | x | x | x |  | 
|  已启动目标转换  | x |  |  |  | 
|  目标转换成功  | x |  |  |  | 

## 在 Pip EventBridge es 日志中包含执行数据
<a name="eb-pipes-logs-execution-data"></a>

您可以为指定 EventBridge ，以便在其生成的记录中包含*执行数据*。执行数据包括表示事件批次有效负载的字段，以及发送到富集和目标的请求和来自它们的响应。

执行数据对于故障排除和调试很有用。`payload` 字段包含批次中每个事件的实际内容，使您可以将单个事件与特定的管道执行关联起来。

如果您选择包含执行数据，为管道指定的所有日志目标都会包含。

**重要**  
这些字段可能包含敏感信息。 EventBridge 在记录期间不尝试编辑这些字段的内容。

包括执行数据时， EventBridge 将以下字段添加到相关记录中：
+ **`payload`**

  表示管道正在处理的事件批次的内容。

  EventBridge 在可能已更新事件批次内容的步骤中生成的记录中包含该`payload`字段。此操作包括以下步骤：
  + `EXECUTION_STARTED`
  + `ENRICHMENT_TRANSFORMATION_SUCCEEDED`
  + `ENRICHMENT_STAGE_SUCCEEDED`
  + `TARGET_TRANSFORMATION_SUCCEEDED`
  + `TARGET_STAGE_SUCCEEDED`
+ **`awsRequest`**

  表示作为 JSON 字符串发送到富集或目标的请求。对于发送到 API 目标的请求，表示发送到该端点的 HTTP 请求。

  EventBridge 将该`awsRequest`字段包括在浓缩和定向的最后阶段生成的记录中；也就是说，在针对特定的浓缩或目标服务执行或试图执行请求之后 EventBridge 。此操作包括以下步骤：
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`
+ **`awsResponse`**

  表示富集或目标以 JSON 格式返回的响应。对于发送到 API 目标的请求，表示从端点返回的 HTTP 响应。

  与一样`awsRequest`，在浓缩和定向的最后阶段生成的记录中 EventBridge 包括该`awsResponse`字段；也就是说，在执行或试图执行针对特定浓缩或目标服务的请求并收到回复之后 EventBridge 。此操作包括以下步骤：
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`

有关管道执行步骤的讨论，请参阅 [EventBridge 管道执行步骤](eb-pipes-logs-execution-steps.md)。

### 截断 Pipes 日志记录中的 EventBridge 执行数据
<a name="eb-pipes-logs-execution-data-truncation"></a>

如果您选择在管道的日志记录中 EventBridge 包含执行数据，则记录可能会超过 256 KB 的大小限制。为防止出现这种情况，请按以下顺序 EventBridge自动截断执行数据字段。 EventBridge 在继续截断下一个字段之前，会完全截断每个字段。 EventBridge 只需从数据字符串末尾删除字符即可截断字段数据；不会尝试根据数据重要性进行截断，截断会使 JSON 格式失效。
+ `payload`
+ `awsRequest`
+ `awsResponse`

 EventBridge 如果在事件中截断字段，则该`truncatedFields`字段将包含被截断的数据字段的列表。

## Pip EventBridge es 日志记录中的错误报告
<a name="eb-pipes-logs-errors"></a>

EventBridge 还包括表示故障状态的管道执行步骤中的错误数据（如果有）。这些步骤包括：
+ `ExecutionThrottled`
+ `ExecutionTimeout`
+ `ExecutionFailed`
+ `ExecutionPartiallyFailed`
+ `EnrichmentTransformationFailed`
+ `EnrichmentInvocationFailed`
+ `EnrichmentStageFailed`
+ `TargetTransformationFailed`
+ `TargetInvocationFailed`
+ `TargetInvocationPartiallyFailed`
+ `TargetStageFailed`
+ `TargetStagePartiallyFailed`