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,
                tlsHandshakeEndSet ? tlsHandshakeStartTimeMicros : -1,
                tlsHandshakeEndSet ? tlsHandshakeEndNanos - tlsHandshakeStartNanos : -1,
                pendingAcquisitionEndSet ? pendingAcquisitionStartTimeMicros : -1,
                pendingAcquisitionEndSet ? pendingAcquisitionEndNanos - pendingAcquisitionStartNanos : -1);
    }
Returns a newly-created {@link ClientConnectionTimings} instance.
core/src/main/java/com/linecorp/armeria/common/logging/ClientConnectionTimingsBuilder.java