3

我正在尝试获取自定义 X 射线分段报告,但在跟踪中没有看到任何内容。我的代码看起来像这样:

var AWSXRay = require('aws-xray-sdk-core');

AWSXRay.captureAsyncFunc('callSoapService', subsegment => {
  doSomethingAsync(参数,错误 => {
    如果(错误){
      subsegment.close(err);
    } 别的 {
      doSomethingElse().then(结果 => {
        console.info('全部完成,现在关闭段');
        subsegment.close();
      }, subsegment.close);
    }
  });
});

我需要将它添加到父段还是什么?

4

2 回答 2

0

啊。似乎有一个错误AWSXRay.captureHTTPs()- 如果我删除该调用captureAsyncFunc()开始工作

于 2017-10-18T05:13:33.053 回答
0

对于 AWS X-Ray 节点开发工具包,自动模式基于 continuation-local-storage (cls) 包构建,该包已知与 Promise 库存在兼容性问题。这就是为什么你的“那么”似乎失去了上下文。但是,这些库中的大多数都具有各种可用的 CLS 填充程序,以提供工作所需的兼容性。

您正在使用哪个承诺库?对于 bluebird,有 'cls-bluebird' 或者对于 Q 有 'cls-q' 可以让它工作。

他们通常要求传入 CLS 命名空间,该命名空间可从 xray.getNamespace() 获得。

希望这可以帮助。

于 2017-10-19T19:18:24.553 回答