如何在AWS X-Ray管理控制台中打印自定义子段?

时间:2019-03-25 13:06:31

标签: node.js amazon-web-services aws-xray

我为我的REST API添加了路由的主要部分,该部分用Node.js编写,并在Lambda函数上运行。我还为X-Ray启用了API网关跟踪。我想将SQL查询计时作为来自X-Ray控制台的一个子段,因此我使用了AWSXRay.captureAsyncFunc函数并将其添加到所有SQL查询中,并且能够打印跟踪日志。以下屏幕截图显示了GET请求的一个细分和一个细分。

Logging X-Ray segment and subsegment

我想在AWS X-Ray管理控制台中查看该子段。在X射线的跟踪部分中,我只能看到API网关和Lambda计时。

API Gateway and Lambda segments in the AWS X-Ray console

有人知道如何在X射线时间轴上打印自定义细分吗?

当我从X-Ray控制台单击原始数据时,这就是我看到的。我希望能够看到我的自定义细分。原始数据标签仅显示API网关和Lambda的部分。

Raw data tab

2 个答案:

答案 0 :(得分:2)

Lambda函数的Node运行时版本是什么?您使用哪种类型的lambda事件处理程序?您正在使用哪个版本的X-Ray Node SDK?您使用什么样式/库来调用SQL数据库?是回调,promise还是async / await?

未显示您的async子段的原因可能是在您的跟踪日志中,该子段没有getItem。这可能是Lambda节点运行时与X-Ray SDK for Nodejs之间的兼容性问题,从而无法正确捕获SQL子段。

请随时在https://github.com/aws/aws-xray-sdk-node上打开一个问题,其中提供了上述问题的答案,以便可以解决变通方法/修复问题。

答案 1 :(得分:1)

它们在控制台时间轴视图的“原始数据”选项卡中可见。这显示了与BatchGetTraces API返回的完全相同的json。