code: func ChildSpanFromContxt(ctx context.Context, opName string) (opentracing.Span, context.Context) {
  	if sp := opentracing.SpanFromContext(ctx); sp != nil {
  		if _, ok := sp.Tracer().(opentracing.NoopTracer); !ok {
  			child := opentracing.StartSpan(opName, opentracing.ChildOf(sp.Context()))
  			return child, opentracing.ContextWithSpan(ctx, child)
  		}
  	}
  	return noopSpan(), ctx
  }
docs: // ChildSpanFromContxt return a non-nil span. If span can be got from ctx, then returned span is
  // a child of such span. Otherwise, returned span is a noop span.