honeybadger.go 686 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package honeybadger
  2. import (
  3. "net/http"
  4. "strings"
  5. "github.com/honeybadger-io/honeybadger-go"
  6. "github.com/imgproxy/imgproxy/v3/config"
  7. )
  8. var (
  9. enabled bool
  10. headersReplacer = strings.NewReplacer("-", "_")
  11. )
  12. func Init() {
  13. if len(config.HoneybadgerKey) > 0 {
  14. honeybadger.Configure(honeybadger.Configuration{
  15. APIKey: config.HoneybadgerKey,
  16. Env: config.HoneybadgerEnv,
  17. })
  18. enabled = true
  19. }
  20. }
  21. func Report(err error, req *http.Request) {
  22. if enabled {
  23. headers := make(honeybadger.CGIData)
  24. for k, v := range req.Header {
  25. key := "HTTP_" + headersReplacer.Replace(strings.ToUpper(k))
  26. headers[key] = v[0]
  27. }
  28. honeybadger.Notify(err, req.URL, headers)
  29. }
  30. }