首页 文章

使用AWS Lambda计算消息之间的延迟

提问于
浏览
1

我有一个发出两种类型消息的服务:

Type_1 / Type_2 
(a unique Type_2 always follows a Type_1)

我一直在考虑使用AWS Lambda来发出接收 Type_1 消息与其后续相应的 Type_2 消息之间的延迟的指标(它们是1:1) . 例如:

1. Type_1 arrives
2. Type_2's corresponding Type_2 arrives
3. Lambda (Type_2.timestamp - Type_1.timestamp) = latency between the messages.

在Lambdas有没有简单的方法呢?我需要缓存所有 Type_1 消息,然后在他们的姐妹 Type_2 消息通过时抓取/区分它们 .

我的用例基本上是,如果 Type_2 需要太长时间(也就是超过1秒)来跟随其姐妹消息,我想在其上发出一些指标 .

2 回答

  • 1

    我假设你想要做自己的指标和警报,而不是使用Cloudwatch .

    我的解决方案是:

    • Lambda检查消息类型 .

    • 如果输入类型1,则将其存储在带有时间戳的数据库(例如DynamoDB,RDS等)中 .

    • 如果输入类型2,则查询其对应的类型1消息的时间戳,并计算两者之间的差异 .

    • 如果差异超过阈值,则启动警报 .

  • 1

    实现此目的的一种非常简单的方法是将 Type_1Type_1 写入S3上的id(例如 s3://bucket-name/id/type_1.timestamp ),并让 Type_2 函数从S3下载文件,计算delta并根据时间戳差异决定任何进一步的工作 .

相关问题