···7171 return withRetries(client), nil
7272}
73737474-var _ retryablehttp.LeveledLogger = slog.Default()
7474+// this would be nice but it logs all retries as errors which sets off alerts.
7575+// var _ retryablehttp.LeveledLogger = slog.Default()
7676+type SlogPrintf struct{}
7777+7878+func (l SlogPrintf) Printf(format string, args ...interface{}) {
7979+ // missing context sadly so no operation id
8080+ slog.With().Info(fmt.Sprintf(format, args...), "source", "retryablehttp")
8181+}
75827683// retrying 5xx errors and network errors, but not context cancellations or 4xx errors.
7784func retriable(ctx context.Context, resp *http.Response, err error) (bool, error) {
···95102func withRetries(baseClient *http.Client) *http.Client {
96103 retryClient := retryablehttp.NewClient()
97104 retryClient.HTTPClient = baseClient
9898- retryClient.Logger = slog.Default()
105105+ retryClient.Logger = SlogPrintf{}
99106100107 // Keep the library defaults for now:
101108 // RetryMax=4, RetryWaitMin=1s, RetryWaitMax=30s, Backoff=DefaultBackoff.
+1
internal/recipes/staples.go
···8989}
90909191func defaultStaplesBackends(cfg *config.Config, krogerClient kroger.ClientWithResponsesInterface) ([]backendStaplesProvider, error) {
9292+ // should we do this per request so we get new proxies per user? https://github.com/paulgmiller/careme/issues/443
9293 httpClient, err := brightdata.NewProxyAwareHTTPClient(cfg.BrightDataProxy)
9394 if err != nil {
9495 return nil, fmt.Errorf("create bright data proxy-aware client: %w", err)