MCPcopy Create free account
hub / github.com/DoNewsCode/core / otHandler

Method otHandler

ots3/uploader.go:192–226  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

190}
191
192func (m *Manager) otHandler() func(*request.Request) {
193 tracer := m.tracer
194
195 return func(r *request.Request) {
196 var sp opentracing.Span
197
198 ctx := r.Context()
199 if ctx == nil || opentracing.IsGlobalTracerRegistered() {
200 sp = tracer.StartSpan(r.Operation.Name)
201 } else {
202 sp, ctx = opentracing.StartSpanFromContextWithTracer(ctx, tracer, r.Operation.Name)
203 r.SetContext(ctx)
204 }
205 ext.SpanKindRPCClient.Set(sp)
206 ext.Component.Set(sp, "go-aws")
207 ext.HTTPMethod.Set(sp, r.Operation.HTTPMethod)
208 ext.HTTPUrl.Set(sp, r.HTTPRequest.URL.String())
209 ext.PeerService.Set(sp, r.ClientInfo.ServiceName)
210
211 _ = inject(tracer, sp, r.HTTPRequest.Header)
212
213 r.Handlers.Complete.PushBack(func(req *request.Request) {
214 if req.HTTPResponse != nil {
215 ext.HTTPStatusCode.Set(sp, uint16(req.HTTPResponse.StatusCode))
216 } else {
217 ext.LogError(sp, errors.New("PushBack HTTPResponse is Nil"))
218 }
219 sp.Finish()
220 })
221
222 r.Handlers.Retry.PushBack(func(req *request.Request) {
223 sp.LogFields(log.String("event", "retry"))
224 })
225 }
226}
227
228func inject(tracer opentracing.Tracer, span opentracing.Span, header http.Header) error {
229 return tracer.Inject(span.Context(), opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(header))

Callers 1

NewManagerFunction · 0.95

Calls 3

injectFunction · 0.85
StringMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected