@Override
    public String toString() {
        try (Unlocker ignored = lock()) {
            long startTime = history.size() > 0 ? firstTime() : 0;
            long now = now();

            StringBuilder sb = new StringBuilder();
            sb.append("CurrentPassport {");
            sb.append("start_ms=").append(creationTimeSinceEpochMs()).append(", ");

            sb.append('[');
            for (PassportItem item : history) {
                sb.append('+')
                        .append(item.getTime() - startTime)
                        .append('=')
                        .append(item.getState().name())
                        .append(", ");
            }
            sb.append('+').append(now - startTime).append('=').append("NOW");
            sb.append(']');

            sb.append('}');

            return sb.toString();
        }
    }
NOTE: This is NOT nanos since epoch. It's just since an arbitrary point in time. So only use relatively.
zuul-core/src/main/java/com/netflix/zuul/passport/CurrentPassport.java