func DefaultShouldRetry(err error) bool {
	if temp, ok := err.(temporaryError); ok {
		return temp.Temporary()
	}
	return false
}
DefaultShouldRetry is the default retry predicate.  It returns true if and only if err exposes a Temporary() bool
method and that method returns true.  That means, for example, that for a net.DNSError with the temporary flag set to true
this predicate also returns true.
package xhttp
import (
	"net/http"
	"time"
	"github.com/go-kit/kit/log"
	"github.com/go-kit/kit/log/level"
	"github.com/go-kit/kit/metrics"
	"github.com/go-kit/kit/metrics/discard"
	"github.com/xmidt-org/webpa-common/v2/logging"
)
const DefaultRetryInterval = time.Second
type temporaryError interface {
	Temporary() bool
}
type ShouldRetryFunc func(error) bool
type ShouldRetryStatusFunc func(int) bool