0

我正在尝试最终更改跟踪 ID,因此请告诉我我是否采取了错误的方法。我目前正在考虑的是创建一个段,并将 parent-id 添加为我想要的 trace_id,以便一个跟踪可以跟随另一个跟踪。我尝试这样做的原因是因为 aws x-ray 不支持 aws 的异步部分,例如运动流。

const segment = new awsXRay.Segment('1-11111111-111111111111111111111111', '1-11111111-111111111111111111111111', '1-11111111-111111111111111111111111')
console.log(segment)
awsXRay.setSegment(segment)

但是,我收到错误:

TypeError: segment.resolveLambdaTraceData is not a function

有什么想法为什么我会收到错误,或者我如何通过连接它们的 trace_id 来连接运动流之前和之后发生的两个事件?

4

1 回答 1

0

在 Lambda 中使用 X-Ray 开发工具包时,Lambda 创建它自己的段(并将其发送到 Lambda 函数代码的带外),并且开发工具包在上下文中创建一个“外观”作为占位符,给定父 ID 和 ID Lambda 创建的段(通过 process.env._x_amzn_trace_id 公开)。SDK 只创建附加到这个外观段的子段,当 Lambda 函数结束时,这些子段被发送并且服务将它们组合在一起。每次 Lambda 函数触发并且它不是冷启动时,外观段都会使用 Lambda 提供的新父 ID 和 ID 刷新自身(调用 resolveLambdaTraceData)。开发工具包不希望在上下文中设置 Lambda 中的用户创建段。对于手动创建的分段,resolveLambdaTraceData 函数不可用,因此出现错误,

您能否详细介绍您的用例?

于 2017-09-12T17:59:44.747 回答