1

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

记录 X 射线分段和子分段

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

AWS X-Ray 控制台中的 API Gateway 和 Lambda 段

有谁知道如何在 X 射线时间轴中打印自定义子段?

当我从 X-Ray 控制台点击原始数据时,我看到的就是这个。我希望能够看到我的自定义细分。原始数据选项卡仅显示 API Gateway 和 Lambda 的片段。

原始数据选项卡

4

2 回答 2

2

您的 Lambda 函数的节点运行时版本是什么?您使用的是哪种类型的 lambda 事件处理程序?您使用的是哪个版本的 X-Ray 节点 SDK?您使用什么样式/库来调用您的 SQL 数据库?它是回调、承诺还是异步/等待?

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

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

于 2019-04-04T22:44:16.833 回答
1

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

于 2019-03-25T15:29:29.727 回答