亚马逊 Data Firehose 以前被称为亚马逊 Kinesis Data Firehose
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
数据新鲜度指标增加或未发出
数据新鲜度是衡量数据在 Firehose 流中的最新程度的衡量标准。它是 Firehose 流中最古老的数据记录的年龄,从Firehose摄取数据的时间到现在。Firehose 提供了可用于监控数据新鲜度的指标。要确定指定目标的数据新鲜度指标,请参阅使用指标监控亚马逊数据 Firehose CloudWatch 。
如果您为所有事件或所有文档启用备份,请监控两个单独的数据新鲜度指标:一个用于主目标,另一个用于备份。
如果未发布数据新鲜度指标,则表示 Firehose 直播没有活跃的传输。当完全阻止数据传输或没有任何传入数据时,会发生这种情况。
如果数据新鲜度指标在不断增加,则意味着数据传输落后。这可能是由于以下原因之一。
-
目标无法跟上传输速率。如果 Firehose 因高流量而遇到暂时性错误,则交付可能会落后。这可能发生在亚马逊 S3 以外的目的地( OpenSearch服务、Amazon Redshift 或 Splunk 也可能发生这种情况)。确保您的目标有足够的容量来处理传入流量。
-
目标非常慢。如果 Firehose 遇到高延迟,数据交付可能会落后。监控目标的延迟指标。
-
Lambda 函数运行缓慢。这可能会导致数据传输速率低于 Firehose 流的数据提取速率。如果可能,请提高 Lambda 函数的效率。例如,如果函数处理网络 IO,请使用多个线程或异步 IO 来增加并行度。此外,考虑增加 Lambda 函数的内存大小,以便相应地增加 CPU 分配。这可能会加快 Lambda 的调用速度。有关配置 Lambda 函数的信息,请参阅配置 Lam bda Amazon 函数。
-
在数据传输过程中出现故障。有关如何使用 Amazon Logs 监控错误 CloudWatch 的信息,请参阅使用日志监控亚马逊数据 Firehose CloudWatch 。
-
如果 Firehose 流的数据源是 Kinesis 数据流,则可能正在进行限制。检查
ThrottledGetRecords
、ThrottledGetShardIterator
和ThrottledDescribeStream
指标。如果有多个使用者附加到 Kinesis 数据流,请考虑以下事项:-
如果
ThrottledGetRecords
和ThrottledGetShardIterator
指标非常高,我们建议您增加为数据流预配置的分片数。 -
如果
ThrottledDescribeStream
为高,我们建议您为中配置的角色添加kinesis:listshards
权限KinesisStreamSourceConfiguration。
-
-
目标缓冲提示较低。这可能会增加 Firehose 需要往返目的地的次数,从而可能导致配送延迟。考虑增大缓冲提示的值。有关更多信息,请参阅BufferingHints。
-
当错误频繁发生时,较长的重试持续时间可能会导致传输落后。考虑减小重试持续时间。此外,监控错误并尝试减少这些错误。有关如何使用 Amazon Logs 监控错误 CloudWatch 的信息,请参阅使用日志监控亚马逊数据 Firehose CloudWatch 。
-
如果目标为 Splunk 并且
DeliveryToSplunk.DataFreshness
非常高,但DeliveryToSplunk.Success
看起来不错,则 Splunk 集群可能很忙。如果可能,请释放 Splunk 集群。或者,请联系 Amazon 支持部门,请求增加 Firehose 用于与 Splunk 集群通信的通道数量。