docs: Session createSession(final DatabaseId db) throws SpannerException {
      final Map<SpannerRpc.Option, ?> options =
          optionMap(SessionOption.channelHint(random.nextLong()));
      Span span = tracer.spanBuilder(CREATE_SESSION).startSpan();
      try (Scope s = tracer.withSpan(span)) {
        com.google.spanner.v1.Session session =
            runWithRetries(
                new Callable<com.google.spanner.v1.Session>() {
                  @Override
                  public com.google.spanner.v1.Session call() throws Exception {
                    return gapicRpc.createSession(
                        db.getName(), getOptions().getSessionLabels(), options);
                  }
                });
        span.end();
        return new SessionImpl(this, session.getName(), options);
      } catch (RuntimeException e) {
        TraceUtil.endSpanWithFailure(span, e);
        throw e;
      }
    }