示例#1
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            //初始化日志
            TraceSpan traceSpan = TraceContext.CreateTrace();
            traceSpan.parentId = context.HttpContext.Request.Headers[ZipkinTraceConstants.HeaderSpanId];
            var traceId = context.HttpContext.Request.Headers[ZipkinTraceConstants.HseaderTraceId].ToString();
            if (!traceId.IsNullOrEmpty())
            {
                traceSpan.traceId = traceId;
            }
            traceSpan.timestamp = DateTime.Now.ToUnixTimestamp();
            traceSpan.timestamp_millis = DateTime.Now.ToTimestamp();
            traceSpan.name = context.HttpContext.Request.Path;
            traceSpan.kind = "SERVER";
            traceSpan.localEndpoint.serviceName = "pay";

            #region 日志信息
            traceSpan.tags.Add("http.url", $"{context.HttpContext.Request.Host.Value}");
            traceSpan.tags.Add("http.path", $"{context.HttpContext.Request.Host.Value}{context.HttpContext.Request.Path}{context.HttpContext.Request.QueryString}");
            #endregion

            traceSpan.tags.Add("request.body", context.HttpContext.Request.ToReadAsyncJson());
            traceSpan.tags.Add("group", $"http");
        }