如何查看CloudWatch Logs是否因事件大小限制拒绝了我的日志事件
关于CloudWatch Logs被拒绝日志事件的查询方法
1. 被拒绝日志事件的查询路径
CloudWatch Logs会将所有写入失败的事件记录到你账号下的CloudWatch Logs 服务相关日志中,具体查询步骤如下:
- 进入CloudWatch控制台,打开「日志组」页面
- 查找名称为
/aws/vendedlogs/logs/PutLogEvents_Failures的日志组,该日志组默认会在首次出现日志写入失败时自动创建 - 直接在该日志组的日志洞察页面查询,即可看到所有被拒绝的事件记录
注意:如果该日志组不存在,说明你当前区域的账号还没有出现过CloudWatch Logs写入失败的情况
2. 查看被拒绝事件的具体大小
上述PutLogEvents_Failures日志组的每条事件都自带eventSize字段,记录了被拒绝事件的实际字节数,你可以直接通过以下日志洞察查询语句筛选查看:
fields @timestamp, @message, eventSize, errorMessage | sort @timestamp desc | limit 100
执行上述语句后,返回结果的eventSize字段就是对应被拒事件的实际大小,你可以用这个值和你之前预估的20KB做对比。
3. 低于256KB仍被拒绝的常见原因
补充几个预估大小和实际写入大小不符、或者非大小原因导致的写入失败场景:
- console.log输出对象时,序列化后的字符串长度会比预估大,转义字符、不可见字符都会占用额外空间
- 单条
PutLogEvents请求的总大小上限为1MB,哪怕单条事件都小于256KB,如果批量提交的总大小超过1MB,整批事件也会被拒绝 - 日志事件的时间戳如果和当前时间差超过2小时、或者超前超过2小时,也会被拒绝,这种情况和事件大小无关
内容的提问来源于stack exchange,提问作者friartuck
相关产品推荐
相关产品推荐

