Simple tracking for frontend js errors
This commit is contained in:
parent
2e96851bb9
commit
143f7d3543
|
@ -691,6 +691,20 @@ router.get("/debug-error", (_req, res) => {
|
|||
res.send("should never reach here");
|
||||
});
|
||||
|
||||
router.post("/frontend-error", (req, res) => {
|
||||
const message = req.body.message;
|
||||
const stacktrace = req.body.stacktrace;
|
||||
|
||||
if (SENTRY_DSN && process.env.NODE_ENV == "production") {
|
||||
Sentry.captureEvent({
|
||||
message,
|
||||
stacktrace,
|
||||
});
|
||||
}
|
||||
|
||||
res.send("ok");
|
||||
});
|
||||
|
||||
router.get("/metrics", { public: true }, (_req, res) => {
|
||||
res.set("Content-Type", metrics.register.contentType);
|
||||
res.end(metrics.register.metrics());
|
||||
|
|
|
@ -31,3 +31,30 @@ document.addEventListener("readystatechange", (event) => {
|
|||
}
|
||||
});
|
||||
setTimeout(fixImageHeights, 2000);
|
||||
|
||||
/**
|
||||
* Client JS error monitoring
|
||||
*/
|
||||
|
||||
window.debugError = () => {
|
||||
const throwLevel1 = () => {
|
||||
throwLevel2();
|
||||
};
|
||||
const throwLevel2 = () => {
|
||||
const object = {};
|
||||
object.isUndefinedAFunction();
|
||||
};
|
||||
setTimeout(throwLevel1, 1);
|
||||
};
|
||||
|
||||
window.onerror = (message, _url, _lineNo, _columnNo, error) => {
|
||||
fetch("/frontend-error", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
body:
|
||||
"message=" +
|
||||
encodeURIComponent(message.toString()) +
|
||||
"&stacktrace=" +
|
||||
encodeURIComponent(error.stack),
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue