Simple tracking for frontend js errors

This commit is contained in:
Rogerio Chaves 2020-04-26 21:05:10 +02:00
parent 2e96851bb9
commit 143f7d3543
No known key found for this signature in database
GPG Key ID: E6AF5440509B1D94
2 changed files with 41 additions and 0 deletions

View File

@ -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());

View File

@ -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),
});
};