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