code: func StartSpan(
  	parentCtx context.Context,
  	opName string,
  	tags opentracing.Tags,
  	reference ...opentracing.SpanContext,
  ) context.Context {
  	var ref opentracing.SpanContext
  	if len(reference) > 0 {
  		ref = reference[0]
  	}
  	span := opentracing.StartSpan(opName, opentracing.ChildOf(ref), tags)
  	return opentracing.ContextWithSpan(parentCtx, span)
  }
docs: // StartSpan starts a new span with a given parent context, operation name, tags and
  // optional parent span. It returns a context with the created span.