2017-08-04 3 views
0

に「エンティティは、CallContextに存在しません」私はAWSXRayRecorder.Instance.BeginSegment();のようなものを追加しようとしたが、何とかそれはを必要とし、次の例外AWS XRAY私はこのようなSQSClientのためのセットアップを持っている.NETコンソールアプリケーション

Amazon.XRay.Recorder.Core.Exceptions.EntityNotAvailableException was 
unhandled by user code 
HResult=-2146233088 
Message=Entity doesn't exist in CallContext 
Source=AWSXRayRecorder.Core 
StackTrace: 
    at Amazon.XRay.Recorder.Core.Internal.Utils.TraceContext.GetEntity() in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Utils\TraceContext.cs:line 47 
    at Amazon.XRay.Recorder.Handlers.AwsSdk.AWSSdkTracingHandler.ExceptionEventHandler(Object sender, ExceptionEventArgs e) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Handlers\AwsSdk\AWSSdkTracingHandler.cs:line 324 
    at Amazon.Runtime.AmazonServiceClient.ProcessExceptionHandlers(IExecutionContext executionContext, Exception exception) 
    at Amazon.Runtime.Internal.ErrorCallbackHandler.HandleException(IExecutionContext executionContext, Exception exception) 
    at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeSync(IExecutionContext executionContext) 
    at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) 
    at Amazon.Runtime.Internal.MetricsHandler.InvokeSync(IExecutionContext executionContext) 
    at Amazon.Runtime.Internal.RuntimePipeline.InvokeSync(IExecutionContext executionContext) 
    at Amazon.Runtime.AmazonServiceClient.Invoke[TRequest,TResponse](TRequest request, IMarshaller`2 marshaller, ResponseUnmarshaller unmarshaller) 
    at Amazon.SQS.AmazonSQSClient.ReceiveMessage(ReceiveMessageRequest request) 
    at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.Listen() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 74 
    at BasePriceCalculator.BasePriceCalculatorService.<Start>b__3_0() in C:\working\base-price-calculator\BasePriceCalculator\BasePriceCalculatorService.cs:line 26 
    at System.Threading.Tasks.Task.InnerInvoke() 
    at System.Threading.Tasks.Task.Execute() 

私が何か間違ったことしなければならない

System.ArgumentException was unhandled by user code 
HResult=-2147024809 
Message=Trace id is invalid. 
Parameter name: value 
ParamName=value 
Source=AWSXRayRecorder.Core 
StackTrace: 
    at Amazon.XRay.Recorder.Core.Internal.Entities.Entity.set_TraceId(String value) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Entities\Entity.cs:line 78 
    at Amazon.XRay.Recorder.Core.Internal.Entities.Segment..ctor(String name, String traceId, String parentId) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Entities\Segment.cs:line 46 
    at Amazon.XRay.Recorder.Core.AWSXRayRecorder.BeginSegment(String name, String traceId, String parentId, SampleDecision sampleDecision) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\AWSXRayRecorder.cs:line 164 
    at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.<Listen>b__10_1() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 65 
    at StatsdClient.DogStatsdService.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags) 
    at StatsdClient.DogStatsd.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags) 
    at DataDogUtils.DataDogMetricPublisher.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags) 
    at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.<Listen>b__10_0() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 63 
    at Polly.Policy`1.<>c__DisplayClass67_0.<ExecuteAndCapture>b__0(Context ctx, CancellationToken ct) in C:\projects\polly\src\Polly.Shared\Policy.TResult.cs:line 194 
    at Polly.Retry.RetryEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken, IEnumerable`1 shouldRetryExceptionPredicates, IEnumerable`1 shouldRetryResultPredicates, Func`1 policyStateFactory) in C:\projects\polly\src\Polly.Shared\Retry\RetryEngine.cs:line 26 

が、私はそれを見ていないです:私は

AWSXRayRecorder.Instance.BeginSegment("ReceiveMessage", Guid.NewGuid().ToString()); 
var receiveResult = _amazonSqs.ReceiveMessage(_longPollRequest); 
AWSXRayRecorder.Instance.EndSegment(); 

例外を満たすように見えることはできません。

+0

は、彼らの公式フォーラムに質問をしてみてください。アマゾンの人は本当にそこに敏感です。 https://forums.aws.amazon.com/forum.jspa?forumID=241&start=0 – Ruslan

+1

私は試みました:https://forums.aws.amazon.com/thread.jspa?threadID=261162しかし、私はあなたは私が推測した同じ反応:) – LordSauron

答えて

3

TraceId.NewId();を使用して新しいトレースIDを作成できます。このクラスはAmazon.XRay.Recorder.Core.Internal.Entities名前空間で使用できます。

前述のように、私たち(AWS X-Rayチーム)はAWS X-Rayオフィシャルフォーラムで非常に積極的です。残念ながら、あなたのリンク先の投稿はAWS .NET言語特有のフォーラムに掲載されているようです。将来の投稿がX-Ray specific forumに送信されていると、すぐに返信する可能性が非常に高いです。

おかげで、

ジェームズ・B.

+0

どうもありがとう、私はそれを見つけることになっていたよ:) – LordSauron

+1

問題はありません。 .NET SDK [APIリファレンス](http://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Core)で「Internal」ネームスペースを公開するリクエストを提出しました。 .htm)。 –

+0

node.jsバージョンで動作するように見えるので、私たちのために '' 'TraceId.NewId();' 'を自動的に行うオーバーロードについてはどうですか? – LordSauron

関連する問題