protected internal void HandleStopEvent(HttpContext context) { var spanContext = active.Value; if (spanContext == null) { Logger?.LogDebug("HandleStopEvent: Missing span context"); return; } ISpan span = spanContext.Active; span.PutHttpStatusCodeAttribute(context.Response.StatusCode); if (context.Response.Headers != null) { span.PutHttpResponseHeadersAttribute(AsList(context.Response.Headers)); } long? reqSize = ExtractRequestSize(context); if (reqSize != null) { span.PutHttpRequestSizeAttribute(reqSize.Value); } long? respSize = ExtractResponseSize(context); if (respSize != null) { span.PutHttpResponseSizeAttribute(respSize.Value); } span.End(); AsyncLocalContext.CurrentSpan = spanContext.Previous; active.Value = null; }
protected internal void HandleStopEvent(HttpWebRequest request, HttpStatusCode statusCode, WebHeaderCollection headers) { if (!Pending.TryRemove(request, out SpanContext spanContext)) { Logger?.LogDebug("HandleStopEvent: Missing span context"); return; } ISpan span = spanContext.Active; IScope scope = spanContext.ActiveScope; if (span != null) { span.PutHttpStatusCodeAttribute((int)statusCode); if (headers != null) { span.PutHttpResponseHeadersAttribute(headers); } scope.Dispose(); } }
protected internal void HandleStopEvent(HttpContext context) { var spanContext = ActiveValue.Value; if (spanContext == null) { Logger?.LogDebug("HandleStopEvent: Missing span context"); return; } ISpan span = spanContext.Active; IScope scope = spanContext.ActiveScope; span.PutHttpStatusCodeAttribute(context.Response.StatusCode); if (context.Response.Headers != null) { span.PutHttpResponseHeadersAttribute(AsList(context.Response.Headers)); } long?reqSize = ExtractRequestSize(context); if (reqSize != null) { span.PutHttpRequestSizeAttribute(reqSize.Value); } long?respSize = ExtractResponseSize(context); if (respSize != null) { span.PutHttpResponseSizeAttribute(respSize.Value); } scope.Dispose(); ActiveValue.Value = null; }