我们有一个系统接收输入记录并使用一系列kinesis流和lambdas对其进行一系列转换。
KinesisStream - > InputRecord - > Lambda1 / Lambda2并行运行 - > Output1 Kinesis Stream - > Lambda3 - > Output2 Kinesis Stream - >存储到DynamoDB
Lambda cloudwatch文档@ http://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html提供了每个lambda指标所用时间的详细信息。
但是,我们还希望获得输入记录流经整个链的总时间指标。
有没有人做过类似收集端到端延迟的事情?
答案 0 :(得分:0)
您可以计算最后一个lambda中的每个事件的延迟(或者如果您还想计算该部分,还可以计算DynamoDB的更新流)。
例如,在您的示例中的Lambda3中,您可以读取放在记录上的时间戳或Kinesis的时间戳,从diff
计算now
,并将其写入{{ 1}}。这些日志将写入CloudWatch Logs,您可以在其中定义指标并在CloudWatch中显示它,甚至生成警报,以便在此延迟高于SLA阈值时通知您。