gpt4 book ai didi

streaming - 如何测量 DynamoDB Streams 的传播延迟?

转载 作者:行者123 更新时间:2023-12-04 21:35:12 24 4
gpt4 key购买 nike

我正在使用 DynamoDB Streams + Kinesis 客户端库 (KCL)。
如何测量在流中创建事件与在 KCL 端处理事件之间的延迟?

据我所知,KCL的MillisBehindLatest指标特定于 Kinesis Streams(不是 DynamoDB 流)。approximateCreationDateTime record 属性具有分钟级近似值,这对于亚秒级延迟系统中的监控是 Not Acceptable 。

您能否提供一些有用的指标来监控DynamoDB Streams延迟?

最佳答案

您可以更改您在应用程序中执行写入的方式,以允许您的应用程序跟踪表流中突变的传播延迟。例如,您可以在创建和更新项目时始终更新 'last_updated=' 时间戳属性。这样,当您的创建和更新出现在流中时,您可以通过从流记录的 NEW_IMAGE 中的 last_updated 中减去当前时间来估计传播延迟。

由于删除在流记录中没有 NEW_IMAGE,因此您的删除需要分两步进行:

  • 逻辑删除你写的 'logically_deleted='
    项目的时间戳和
  • 物理删除,您实际上在 1 之后立即调用 DeleteItem。

  • 然后,您将使用与创建和更新相同的数学方法,唯一的区别在于您在处理删除时将使用 OLD_IMAGE 并且您需要减去至少大约 10 毫秒以考虑执行逻辑删除所需的时间(步骤1)。

    关于streaming - 如何测量 DynamoDB Streams 的传播延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046773/

    24 4 0