private void storeAndLogOriginRequestInfo() {
        Map<String, Object> eventProps = context.getEventProperties();
        // These two maps appear to be almost the same but are slightly different.   Also, the types in the map don't
        // match exactly what needs to happen, so this is more of a To-Do.  ZUUL_ORIGIN_ATTEMPT_IPADDR_MAP_KEY is
        // supposed to be the mapping of IP addresses of the server.  This is (AFAICT) only used for logging.   It is
        // an IP address semantically, but a String here.   The two should be swapped.
        // ZUUL_ORIGIN_CHOSEN_HOST_ADDR_MAP_KEY is almost always an IP address, but may some times be a hostname in
        // case the discovery info is not an IP.
        Map<Integer, String> attemptToIpAddressMap =
                (Map<Integer, String>) eventProps.get(ZUUL_ORIGIN_ATTEMPT_IPADDR_MAP_KEY);
        Map<Integer, InetAddress> attemptToChosenHostMap = (Map<Integer, InetAddress>)
                eventProps.get(CommonContextKeys.ZUUL_ORIGIN_CHOSEN_HOST_ADDR_MAP_KEY.name());
        if (attemptToIpAddressMap == null) {
            attemptToIpAddressMap = new HashMap<>();
        }
        if (attemptToChosenHostMap == null) {
            attemptToChosenHostMap = new HashMap<>();
        }

        // the chosen server can be null in the case of a timeout exception that skips acquiring a new origin connection
        String ipAddr = origin.getIpAddrFromServer(chosenServer.get());
        if (ipAddr != null) {
            attemptToIpAddressMap.put(attemptNum, ipAddr);
            eventProps.put(ZUUL_ORIGIN_ATTEMPT_IPADDR_MAP_KEY, attemptToIpAddressMap);
        }

        if (chosenHostAddr.get() != null) {
            attemptToChosenHostMap.put(attemptNum, chosenHostAddr.get());
            eventProps.put(CommonContextKeys.ZUUL_ORIGIN_CHOSEN_HOST_ADDR_MAP_KEY.name(), attemptToChosenHostMap);
            context.put(CommonContextKeys.ZUUL_ORIGIN_CHOSEN_HOST_ADDR_MAP_KEY, attemptToChosenHostMap);
        }

        eventProps.put(ZUUL_ORIGIN_REQUEST_URI, zuulRequest.getPathAndQuery());
    }
Get the implementing origin.
<p>
Note: this method gets called in the constructor so if overloading it or any methods called within, you cannot
rely on your own constructor parameters.
zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java