使用 X 射线跟踪 AWS 中的公共服务

Tracking of Common Services in AWS using X-ray

我有多个 Lambda,它们中的每一个都调用另一个 lambda 或一个 休息 API 或 dynamoDB 或 S3 等 .

示例:

这些调用像

这样的公共服务

我需要跟踪哪个应用程序(即航班预订/酒店预订)正在调用预订服务以及调用了多少次/多少次CPU 等

这是否可以通过 AWS 中的 X-Ray 或任何其他更好的方式实现?

AWS Xray 可以帮助您以段和子段的形式跟踪 lambda 应用程序发出的下游调用,以便为您提供应用程序的整体视图。我认为 AWS Xray 可以在您的用例中为您提供帮助,而且您将能够跟踪您的 lambda 正在进行的 Dynamodb、S3 或 RestAPI 调用,并能够识别哪个应用程序(在您的情况下是航班预订/酒店预订)正在调用该服务(预订服务)。虽然您可能看不到性能数字(例如内存和 CPU 使用情况),但您将能够跟踪应用程序内部的异常。

经过一些研究,我认为注释是解决上述问题的最佳方法

所以我们需要在NodeJS中添加注解

            AWSXRay.captureFunc('annotations', (subsegment) => {
                subsegment.addAnnotation('application', "BookingService");
            });

注释已编入索引,也可用于过滤 使用像这个注释这样的表达式。= "BookingService"

更多信息: X-ray 将段、子段合并到轨迹,因此子段级别的注释足以过滤轨迹