对 Amazon Data Firehose 中的错误进行问题排查 - Amazon Data Firehose
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

对 Amazon Data Firehose 中的错误进行问题排查

如果在传输或处理数据时 Firehose 遇到错误,则它会一直重试,直至超过配置的重试持续时间。如果重试持续时间在成功传输数据之前结束,则 Firehose 会将数据备份到配置的 S3 备份存储桶。如果目的地是 Amazon S3,并且传输失败或传输到备份 S3 存储桶失败,Firehose 会不断重试,直到保留期结束。

有关使用追踪配送错误的信息 CloudWatch,请参阅使用 CloudWatch Logs 监控 Amazon Data Firehose

Direct PUT

对于 DirectPut Firehose 流,Firehose 会将记录保留 24 小时。对于其数据来源为 Kinesis 数据流的 Firehose 流,您可以按照更改数据留存期中的说明更改保留期。在这种情况下,Firehose 会无限地重试以下操作:DescribeStreamGetRecordsGetShardIterator

如果 Firehose 流使用 DirectPut,请检查 IncomingBytesIncomingRecords 指标,查看是否有传入流量。如果您正在使用 PutRecordPutRecordBatch,请务必捕获异常并重试。我们建议使用带指数退避的重试策略,并且提供抖动和多次重试功能。另外,如果您使用 PutRecordBatchAPI,请确保即使API调用成功,您的代码也会检查响应FailedPutCount中的值。

Kinesis Data Stream

如果 Firehose 流使用 Kinesis 数据流作为源,请检查源数据流的 IncomingBytesIncomingRecords 指标。此外,请确保为 Firehose 流发出 DataReadFromKinesisStream.BytesDataReadFromKinesisStream.Records 指标。