in proxy/handler/skywalking_handler.go [78:106]
func (sc *SkyWalkingConsumerHandler) Handle(chain *handler.Chain, i *invocation.Invocation, cb invocation.ResponseCallBack) {
openlog.Debug(fmt.Sprintf("SkyWalkingConsumerHandler begin:%#v", *i))
span, ctx, err := skywalking.CreateEntrySpan(i)
if err != nil {
openlog.Error(fmt.Sprintf("CreateEntrySpan error:%s", err.Error()))
}
spanExit, err := skywalking.CreateExitSpan(ctx, i)
if err != nil {
openlog.Error(fmt.Sprintf("CreateExitSpan error:%s", err.Error()))
}
chain.Next(i, func(r *invocation.Response) {
cb(r)
span.Tag(go2sky.TagHTTPMethod, i.Protocol)
span.Tag(go2sky.TagURL, HTTPPrefix+i.MicroServiceName+i.URLPath)
span.Tag(go2sky.TagStatusCode, strconv.Itoa(r.Status))
span.SetSpanLayer(skycom.SpanLayer_Http)
span.SetComponent(HTTPServerComponentID)
spanExit.Tag(go2sky.TagHTTPMethod, i.Protocol)
spanExit.Tag(go2sky.TagURL, HTTPPrefix+i.MicroServiceName+i.URLPath)
spanExit.Tag(go2sky.TagStatusCode, strconv.Itoa(r.Status))
spanExit.SetSpanLayer(skycom.SpanLayer_Http)
spanExit.SetComponent(HTTPClientComponentID)
spanExit.End()
span.End()
openlog.Debug("SkyWalkingConsumerHandler end.")
})
}