docs: public HttpRequestContext handleStart(@Nullable Span parent, C carrier, Q request) {
      checkNotNull(carrier, "carrier");
      checkNotNull(request, "request");
      if (parent == null) {
        parent = tracer.getCurrentSpan();
      }
      String spanName = getSpanName(request, extractor);
      SpanBuilder builder = tracer.spanBuilderWithExplicitParent(spanName, parent);
      Span span = builder.setSpanKind(Kind.CLIENT).startSpan();
  
      if (span.getOptions().contains(Options.RECORD_EVENTS)) {
        addSpanRequestAttributes(span, request, extractor);
      }
  
      // inject propagation header
      SpanContext spanContext = span.getContext();
      if (!spanContext.equals(SpanContext.INVALID)) {
        textFormat.inject(spanContext, carrier, setter);
      }
      return getNewContext(span, tagger.getCurrentTagContext());
    }