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

时间:2017-09-23 23:16:29

标签: amazon-web-services aws-lambda

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

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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

我的解决方案是:

  1. Lambda检查邮件类型。
  2. 如果输入类型1,请将其存储在带有时间戳的数据库(例如DynamoDB,RDS等)中。
  3. 如果是Type 2,查询其对应的Type 1消息的时间戳,并计算两者之间的差异。
  4. 如果差异超过阈值,请启动闹钟。