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;
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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;
        }