2017-10-17 12 views
0

カスタムX線セグメントレポートを取得しようとしていますが、トレースに何も表示されません。私のコードは次のようになります:ラムダのAWSXRay.captureAsyncFunc() - 何か不足していますか?

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

AWSXRay.captureAsyncFunc('callSoapService', subsegment => { 
    doSomethingAsync(params, err => { 
    if (err) { 
     subsegment.close(err); 
    } else { 
     doSomethingElse().then(result => { 
     console.info('all done, now close the segment'); 
     subsegment.close(); 
     }, subsegment.close); 
    } 
    }); 
}); 

親セグメントなどに追加する必要がありますか?

答えて

0

ugh。 AWSXRay.captureHTTPs()のバグがある - その呼び出しを削除した場合

0

AWS X-RayノードSDKの場合、自動モードは既知の互換性の問題がある連続ローカルストレージ(cls)パッケージ上にビルドされています約束の図書館で。これは、あなたの「当時」が文脈を失っているように見える理由です。しかし、これらのライブラリのほとんどには、動作に必要な互換性を提供するために利用可能なさまざまなCLSシムがあります。

あなたはどの約束のライブラリを使用していますか? ブルーバードには、「cls-bluebird」があります。またはQには、利用可能な「cls-q」があります。

通常、xray.getNamespace()から利用可能なCLS名前空間を渡すように求められます。

これが役に立ちます。

+0

ネイティブノードプロミスを使用しています –

+0

複数のリクエストを同時に処理できるバックエンドでCLSを安全に使用できますか? –

+0

CLSは、スコープされた変数を、スレッドローカルストレージに類似した関数呼び出しチェーンに格納します。サードパーティのライブラリ約束のサポートのためにシムが必要です。あなたはそれについてもっと読むことができます:https://github.com/othiym23/node-continuation-local-storage – AWSSandra

関連する問題