我正在使用 DynamoDB Streams + Kinesis 客户端库 (KCL)。如何测量在流中创建事件与在 KCL 端处理事件之间的延迟?
据我所知,KCL 的MillisBehindLatest
指标特定于 Kinesis Streams(不是 DynamoDB 流)。
approximateCreationDateTime
记录属性具有分钟级别的近似值,这对于在亚秒级延迟系统中进行监控是不可接受的。
您能否提供一些有用的指标来监控DynamoDB Streams 延迟?
我正在使用 DynamoDB Streams + Kinesis 客户端库 (KCL)。如何测量在流中创建事件与在 KCL 端处理事件之间的延迟?
据我所知,KCL 的MillisBehindLatest
指标特定于 Kinesis Streams(不是 DynamoDB 流)。
approximateCreationDateTime
记录属性具有分钟级别的近似值,这对于在亚秒级延迟系统中进行监控是不可接受的。
您能否提供一些有用的指标来监控DynamoDB Streams 延迟?
您可以更改在应用程序中写入的方式,以允许您的应用程序跟踪表流中突变的传播延迟。例如,您可以在创建和更新项目时始终更新“last_updated=”时间戳属性。这样,当您的创建和更新出现在流中时,您可以通过从流记录的 NEW_IMAGE 中的 last_updated 中减去当前时间来估计传播延迟。
因为删除在流记录中没有 NEW_IMAGE,所以您的删除需要分两步进行:
然后,您将使用与创建和更新相同的数学运算,唯一的区别是在处理删除时您将使用 OLD_IMAGE 并且您需要减去至少大约 10 毫秒以考虑执行逻辑删除所需的时间(步骤1)。