如何监控AWS Kinesis流的ProvisionedThroughputExceededException及丢弃记录统计
如何监控AWS Kinesis流中的ProvisionedThroughputExceededException?
- 借助AWS CloudWatch原生指标:
- 重点监控
WriteProvisionedThroughputExceeded(写入吞吐量超限)和ReadProvisionedThroughputExceeded(读取吞吐量超限)指标,这两个指标会直接统计流中触发该异常的次数。你可以为这些指标配置告警规则,当异常次数超过设定阈值时,通过SNS、邮件等方式接收通知。
- 重点监控
- 在代码中捕获异常并记录:
- 调用Kinesis API时,显式捕获
ProvisionedThroughputExceededException,将异常事件写入CloudWatch Logs或自定义日志系统。之后可以通过CloudWatch Insights或其他日志分析工具,监控异常出现的频率和趋势。
- 调用Kinesis API时,显式捕获
- 通过Kinesis控制台查看:
- 登录AWS控制台进入目标Kinesis流的详情页,切换到「监控」标签页,直接查看吞吐量超限相关的指标图表,实时或回溯异常发生情况。
从Kinesis流端是否可查看因ProvisionedThroughputExceededException丢弃的记录次数或数量?
Kinesis流本身不会直接记录被丢弃的具体记录数量,但可以通过以下方式间接统计或获取近似值:
- 利用CloudWatch指标估算:
WriteProvisionedThroughputExceeded指标统计的是每秒触发写入超限异常的次数,每次异常对应一批被拒绝的写入请求。结合你的写入请求批次大小,可以估算大致的丢弃记录数,但无法得到精确值。
- 通过自定义日志获取精确统计:
- 在代码中捕获异常时,记录本次请求中尝试写入的记录数量,后续通过日志聚合工具(如CloudWatch Logs Insights)统计总丢弃数,这是获取精确丢弃记录量的唯一可行方式。
- 注意:Kinesis不会保存被拒绝的记录,所有因吞吐量超限失败的写入请求需要由调用方自行处理(比如重试、本地缓存),流端不会留存这些记录的相关统计数据。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

