@Override
  public <T> T callWithSpan(@NotNull String spanName, @NotNull Supplier<T> fn) {
    SpanBuilder spanBuilder = tracer.spanBuilder(spanName);
    Span span = spanBuilder.startSpan();
    try (Scope ignore = span.makeCurrent()) {
      return fn.get();
    }
    catch (Exception e) {
      span.recordException(e);
      span.setStatus(StatusCode.ERROR);
      throw e;
    }
    finally {
      span.end();
    }
  }
@Override
  public <T> T callWithSpan(@NotNull String spanName, @NotNull Supplier<T> fn)