Serverless 架构下的日志和监控是保证应用可观测性和稳定性的关键:
日志管理:
1. 日志收集
- CloudWatch Logs:AWS 原生日志服务,自动收集 Lambda 日志
- 结构化日志:使用 JSON 格式记录结构化日志,便于查询和分析
- 日志级别:合理设置日志级别(DEBUG、INFO、WARN、ERROR)
2. 日志分析
- 日志查询:使用 CloudWatch Logs Insights 查询和分析日志
- 日志聚合:将多个函数的日志聚合到统一平台
- 日志告警:设置日志告警规则,及时发现异常
3. 日志最佳实践
- 上下文信息:记录请求 ID、用户 ID 等上下文信息
- 敏感信息:避免在日志中记录敏感信息
- 日志轮转:配置日志保留策略,控制存储成本
监控指标:
1. 基础指标
- 调用次数:函数被调用的次数
- 错误率:函数执行失败的比率
- 执行时间:函数执行的平均、最大、最小时间
- 并发数:同时执行的函数实例数量
2. 业务指标
- 响应时间:端到端响应时间
- 吞吐量:单位时间处理的请求数
- 成功率:请求成功的比率
3. 资源指标
- 内存使用:函数内存使用情况
- CPU 使用:函数 CPU 使用情况
- 网络流量:入站和出站流量
监控工具:
1. CloudWatch
- 功能:AWS 原生监控服务
- 优势:与 AWS 服务深度集成
- 适用场景:AWS 生态内的应用
2. Datadog
- 功能:第三方监控平台
- 优势:支持多云平台,可视化丰富
- 适用场景:多云环境、需要高级可视化
3. Prometheus + Grafana
- 功能:开源监控解决方案
- 优势:灵活可定制,成本可控
- 适用场景:需要自定义监控方案
面试者应能分享实际项目中的日志监控经验和最佳实践。