[英]AWS XRay outgoing tracing for ASP.NET WebAPI
環境
XRay傳入跟蹤通過Global.asax應用
AWSXRayASPNET.RegisterXRay(this, "CustomerAPI");
HttpClient實例隱藏為實用程序類中的私有成員,在具有多個WebAPI的單獨項目中共享
具有Xray的委托處理程序的HttpClient啟用如下: - (參考: 用於傳出XRay的.NET HttpClient )
bool isXrayEnabled = false; bool.TryParse(Config["XRayEnable"], out isXrayEnabled); if (isXrayEnabled) { Logger.Info("Enabling XRay tracing with Http calls"); httpClient = new HttpClient(new HttpClientXRayTracingHandler(new HttpClientHandler())); } else { httpClient = new HttpClient(); Logger.Info("Disabling XRay tracing with Http calls"); }
問題雖然所有API都顯示傳入的XRay跟蹤,但根本不顯示傳出跟蹤。
相反,XRay日志中會顯示以下錯誤
Exception type: EntityNotAvailableException
Exception message: Entity doesn't exist in HTTPContext
at Amazon.XRay.Recorder.Core.Internal.Context.HybridContextContainer.InjectEntityInTraceContext()
at Amazon.XRay.Recorder.Core.AWSXRayRecorderImpl.AddHttpInformation(String key, Object value)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Amazon.XRay.Recorder.Core.AWSXRayRecorderImpl.AddHttpInformation(String key, Object value)
at Amazon.XRay.Recorder.Handlers.AspNet.AWSXRayASPNET.ProcessHTTPResponse(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
從錯誤堆棧看起來像這里發生異常: https : //github.com/aws/aws-xray-sdk-dotnet/blob/master/sdk/src/Handlers/AspNet/AWSXRayASPNET.cs#L209 。 在此事件中收到的響應沒有由BeginRequest中的中間件啟動的段: https : //github.com/aws/aws-xray-sdk-dotnet/blob/master/sdk/src/Handlers/AspNet/AWSXRayASPNET .cs#L141因此無法存儲HTTP信息。
你能回答以下問題:
在上面的代碼片段中,您不需要執行“isXrayEnabled()”檢查。 默認情況下,您可以使用X-Ray來檢測HTTPClient,中間件會為您檢查: https : //github.com/aws/aws-xray-sdk-dotnet/blob/master/sdk/src/Handlers/System.Net /Utils/RequestUtil.cs#L59
謝謝,瑜珈
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.