diff --git a/gin/sentrygin.go b/gin/sentrygin.go index 6332c4fc7..2565ce0cb 100644 --- a/gin/sentrygin.go +++ b/gin/sentrygin.go @@ -65,6 +65,10 @@ func (h *handler) handle(c *gin.Context) { options..., ) defer func() { + if c.Writer.Status() == 404 { + transaction.Name = fmt.Sprintf("%s %s", c.Request.Method, c.Request.URL.Path) + transaction.Source = sentry.SourceURL + } transaction.Status = sentry.HTTPtoSpanStatus(c.Writer.Status()) transaction.Finish() }() diff --git a/gin/sentrygin_test.go b/gin/sentrygin_test.go index af961bb34..2036c6ba2 100644 --- a/gin/sentrygin_test.go +++ b/gin/sentrygin_test.go @@ -64,6 +64,28 @@ func TestIntegration(t *testing.T) { }, }, }, + { + Path: "/404/1", + Method: "GET", + WantStatus: 404, + Handler: func(c *gin.Context) { + c.AbortWithStatus(404) + }, + WantTransaction: &sentry.Event{ + Level: sentry.LevelInfo, + Type: "transaction", + Transaction: "GET /404/1", + Request: &sentry.Request{ + URL: "/404/1", + Method: "GET", + Headers: map[string]string{ + "Accept-Encoding": "gzip", + "User-Agent": "Go-http-client/1.1", + }, + }, + TransactionInfo: &sentry.TransactionInfo{Source: "url"}, + }, + }, { Path: "/post", Method: "POST",