mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-28 17:23:09 -06:00
Log fed Sentry stuff correctly
This commit is contained in:
parent
79db90f3fb
commit
4bc986d711
|
|
@ -218,13 +218,34 @@ func MakeFedAPI(
|
||||||
if fedReq == nil {
|
if fedReq == nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
|
// add the user to Sentry, if enabled
|
||||||
|
hub := sentry.GetHubFromContext(req.Context())
|
||||||
|
if hub != nil {
|
||||||
|
hub.Scope().SetTag("origin", string(fedReq.Origin()))
|
||||||
|
hub.Scope().SetTag("uri", fedReq.RequestURI())
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
if hub != nil {
|
||||||
|
hub.CaptureException(fmt.Errorf("%s panicked", req.URL.Path))
|
||||||
|
}
|
||||||
|
// re-panic to return the 500
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
go wakeup.Wakeup(req.Context(), fedReq.Origin())
|
go wakeup.Wakeup(req.Context(), fedReq.Origin())
|
||||||
vars, err := URLDecodeMapValues(mux.Vars(req))
|
vars, err := URLDecodeMapValues(mux.Vars(req))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return util.ErrorResponse(err)
|
return util.MatrixErrorResponse(400, "M_UNRECOGNIZED", "badly encoded query params")
|
||||||
}
|
}
|
||||||
|
|
||||||
return f(req, fedReq, vars)
|
jsonRes := f(req, fedReq, vars)
|
||||||
|
// do not log 4xx as errors as they are client fails, not server fails
|
||||||
|
if hub != nil && jsonRes.Code >= 500 {
|
||||||
|
hub.Scope().SetExtra("response", jsonRes)
|
||||||
|
hub.CaptureException(fmt.Errorf("%s returned HTTP %d", req.URL.Path, jsonRes.Code))
|
||||||
|
}
|
||||||
|
return jsonRes
|
||||||
}
|
}
|
||||||
return MakeExternalAPI(metricsName, h)
|
return MakeExternalAPI(metricsName, h)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue