class RetryableKubernetesClient extends RetryableBase implements KubernetesClientFacade {

    protected Long parseDatePrefix(String message)
    {
        String reducedMessage = message;

        // Note: sometimes a tail call to a pod will return more than 1 line (very closely timed logging can cause this)
        // trim down the string if it's a multi line one
        if(message != null)
        {
            // may or may not end with a newline
            int startIdx = message.length() -
                (message.endsWith(System.lineSeparator()) ? 1 + System.lineSeparator().length() : 1);
            int subStringIndex = StringUtils.lastIndexOf(message, System.lineSeparator(), startIdx);
            if (subStringIndex > -1)
                reducedMessage = StringUtils.substring(message, subStringIndex + 1);
        }

        // RFC3339 Date format
        // example from the bravo kube cluster: 2019-08-26T23:19:30.381101127Z
        String[] messageParts = StringUtils.split(reducedMessage, ' ');
        if(messageParts != null && messageParts.length > 0)
        {
            try
            {
                return Instant.parse(messageParts[0]).toEpochMilli();
            }
            catch(DateTimeParseException e)
            {
                logger.error(String.format("Unable to parse timestamp: %1$s", messageParts[0]), e);
            }
        }
        return null;
    }

    public  RetryableKubernetesClient(DefaultKubernetesClient kubernetesClient);
    public  RetryableKubernetesClient(DefaultKubernetesClient kubernetesClient, ConnectionTracker connectionTracker);

}