AWS Lambda负载升高时接口耗时查询及无第三方监控工具检测方法
无需第三方工具查看AWS Lambda负载及响应耗时方案
完全可以不借助Datadog、AppDynamics等第三方监控工具,直接通过AWS原生的CloudWatch服务完成数据查询,所有Lambda运行数据默认会自动上报到CloudWatch,无需额外配置即可使用。
1. 查看Lambda负载情况
你可以通过CloudWatch内置的Lambda指标判断负载状态,操作路径为:进入CloudWatch控制台 → 左侧菜单栏选择「指标」→ 选择「Lambda」命名空间,即可筛选对应函数的负载相关指标:
- 并发执行数(
ConcurrentExecutions):实时反映当前Lambda的运行负载,可直接作为负载升高的判断依据 - 调用量(
Invocations):单位时间内的请求总数,辅助判断负载上涨的触发原因 - 节流次数(
Throttles)、错误数(Errors):辅助判断负载过高是否已经引发服务异常
2. 获取负载升高时的响应耗时数值
你需要的API响应耗时对应CloudWatch中的Duration指标,单位为毫秒,该指标会统计每一次Lambda调用从代码启动到执行完成的全流程耗时,和终端侧感知到的API响应耗时误差仅为API网关的转发耗时(如果你的Lambda通过API Gateway对外提供服务)。
要查询负载升高时段的具体耗时数值,可按以下操作执行:
- 在CloudWatch指标页筛选目标Lambda函数的
Duration指标,调整时间范围到负载升高的对应时段 - 可以按需选择统计维度:平均值、最大值、P95/P99百分位值,也可以切换到「样本」标签页查看单次请求的具体耗时
- 如果需要筛选特定阈值的高耗时请求,可使用CloudWatch Logs Insights查询对应Lambda的日志组,参考查询语句如下:
fields @timestamp, @duration, @requestId | filter @duration > 2000 # 此处可自定义耗时阈值,单位为毫秒 | sort @duration desc | limit 200
如果你的Lambda绑定了API Gateway,还可以结合API Gateway的IntegrationLatency指标,将其与Lambda的Duration相加,即可得到完整的API端到端响应耗时。
内容的提问来源于stack exchange,提问作者Rohit Mittal
相关产品推荐
相关产品推荐

