DynamoDB 中的监控和日志记录
监控是保持 DynamoDB 和 AWS 解决方案的可靠性、可用性和性能的重要环节。您应从 AWS 解决方案的所有部分收集监控数据,以便轻松地调试多点故障。
主题
监控计划
在开始监控 DynamoDB 前,请制定一个监控计划,其中包括以下问题的答案:
-
监控目的是什么?
-
您将监控哪些资源?
-
监控这些资源的频率如何?
-
您将使用哪些监控工具?
-
谁负责执行监控任务?
-
出现错误时应通知谁?
性能基准
通过在不同时间和不同负载条件下测量性能,确定环境中正常 DynamoDB 性能的基准。监控 DynamoDB 时,应考虑存储历史监控数据。这些存储的数据将提供一个基准,用于比较当前性能数据,确定正常性能模式和性能异常,设计解决问题的方法。要建立基准,至少应监控以下项目:
-
在指定时间段内占用的读取或写入容量单位数,这样可以跟踪预置吞吐量的使用。
-
在指定时间段内超过表的预置读取或写入容量的请求,这样可以确定超过表的预置吞吐量配额的请求。
-
系统错误,这样可以确定是否任何请求导致错误。
集成服务
DynamoDB 自动代表您监控表并通过 Amazon CloudWatch 报告指标。此外,DynamoDB 与以下 AWS 服务集成,来协助您监控 DynamoDB 资源并对其进行故障排查。
-
AWS CloudTrail 捕获由您的 AWS 账户 或代表该账户发出的 API 调用和相关事件,并将日志文件传输到您指定的 Amazon S3 桶。有关更多信息,请参阅 使用 AWS CloudTrail 记录 DynamoDB 操作日志。
-
Contributor Insights 是一款诊断工具,可快速识别表或索引中最常访问和最常受限制的键。有关更多信息,请参阅 使用 CloudWatch Contributor Insights for DynamoDB 分析数据访问。
自动监控工具
AWS 提供各种用于监控 DynamoDB 的工具。建议您尽可能实现监控任务自动化。可以使用以下自动化监控工具监控 DynamoDB,并在出错时报告:
-
AWS CloudTrail 警报 – 按您指定的时间段观察单个指标,并根据相对于给定阈值的指标值在若干时间段内执行一项或多项操作。
操作是发送到 Amazon Simple Notification Service(Amazon SNS)主题或 Amazon EC2 Auto Scaling 策略的通知。AWS CloudTrail 警报将不会仅因为其处于特定状态而调用操作;该状态必须已改变并在指定的若干个时间段内保持不变。有关更多信息,请参阅 使用 Amazon CloudWatch 在 DynamoDB 中监控指标。
-
AWS CloudTrail 日志监控 – 在账户间共享日志文件,通过将 AWS CloudTrail 日志文件发送到 AWS CloudTrail Logs 对它们进行实时监控,使用 Java 编写日志处理应用程序,以及验证日志文件是否在由 AWS CloudTrail 传送后未发生更改。有关更多信息,请参阅《AWS CloudTrail 用户指南》中的 What is Amazon CloudWatch Logs。