diff --git a/steamcache/steamcache.go b/steamcache/steamcache.go index 64e2a1a..fca1ef8 100644 --- a/steamcache/steamcache.go +++ b/steamcache/steamcache.go @@ -167,6 +167,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodGet { requestsTotal.WithLabelValues(r.Method, "405").Inc() + logger.Logger.Warn().Str("method", r.Method).Msg("Only GET method is supported") http.Error(w, "Only GET method is supported", http.StatusMethodNotAllowed) return } @@ -183,6 +184,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { cacheKey := strings.ReplaceAll(r.URL.String()[1:], "\\", "/") // replace all backslashes with forward slashes shouldn't be necessary but just in case if cacheKey == "" { requestsTotal.WithLabelValues(r.Method, "400").Inc() + logger.Logger.Warn().Str("url", r.URL.String()).Msg("Invalid URL") http.Error(w, "Invalid URL", http.StatusBadRequest) return } @@ -213,6 +215,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { ur, err := url.JoinPath(sc.upstream, r.URL.String()) if err != nil { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("upstream", sc.upstream).Msg("Failed to join URL path") http.Error(w, "Failed to join URL path", http.StatusInternalServerError) return } @@ -220,6 +223,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { req, err = http.NewRequest(http.MethodGet, ur, nil) if err != nil { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("upstream", sc.upstream).Msg("Failed to create request") http.Error(w, "Failed to create request", http.StatusInternalServerError) return } @@ -235,6 +239,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { ur, err := url.JoinPath(host, r.URL.String()) if err != nil { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("host", host).Msg("Failed to join URL path") http.Error(w, "Failed to join URL path", http.StatusInternalServerError) return } @@ -242,6 +247,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { req, err = http.NewRequest(http.MethodGet, ur, nil) if err != nil { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("host", host).Msg("Failed to create request") http.Error(w, "Failed to create request", http.StatusInternalServerError) return } @@ -271,6 +277,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { } if err != nil || resp.StatusCode != http.StatusOK { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("url", req.URL.String()).Msg("Failed to fetch the requested URL") http.Error(w, "Failed to fetch the requested URL", http.StatusInternalServerError) return } @@ -279,6 +286,7 @@ func (sc *SteamCache) ServeHTTP(w http.ResponseWriter, r *http.Request) { body, err := io.ReadAll(resp.Body) if err != nil { requestsTotal.WithLabelValues(r.Method, "500").Inc() + logger.Logger.Error().Err(err).Str("url", req.URL.String()).Msg("Failed to read response body") http.Error(w, "Failed to read response body", http.StatusInternalServerError) return }