code: public ClientConnectionTimings build() {
          if (socketConnectStartTimeMicros > 0 && !socketConnectEndSet) {
              logger.warn("Should call socketConnectEnd() if socketConnectStart() was invoked.");
          }
          if (pendingAcquisitionStartTimeMicros > 0 && !pendingAcquisitionEndSet) {
              logger.warn("Should call pendingAcquisitionEnd() if pendingAcquisitionStart() was invoked.");
          }
  
          return new ClientConnectionTimings(
                  connectionAcquisitionStartTimeMicros,
                  System.nanoTime() - connectionAcquisitionStartNanos,
                  dnsResolutionEndSet ? connectionAcquisitionStartTimeMicros : -1,
                  dnsResolutionEndSet ? dnsResolutionEndNanos - connectionAcquisitionStartNanos : -1,
                  socketConnectEndSet ? socketConnectStartTimeMicros : -1,
                  socketConnectEndSet ? socketConnectEndNanos - socketConnectStartNanos : -1,
                  pendingAcquisitionEndSet ? pendingAcquisitionStartTimeMicros : -1,
                  pendingAcquisitionEndSet ? pendingAcquisitionEndNanos - pendingAcquisitionStartNanos : -1);
      }
docs: Returns a newly-created {@link ClientConnectionTimings} instance.