From 7850a0cdfa2f86f90f375ab17bf5188e863b23d9 Mon Sep 17 00:00:00 2001 From: canove Date: Thu, 13 Aug 2020 17:00:01 -0300 Subject: [PATCH] feat: added sentry to monitor backend --- backend/.gitignore | 4 +- backend/package.json | 1 + backend/src/app.js | 14 ++++-- backend/yarn.lock | 109 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 123 insertions(+), 5 deletions(-) diff --git a/backend/.gitignore b/backend/.gitignore index c64a451..dd6817b 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -4,4 +4,6 @@ public/* .env package-lock.json -yarn.lock \ No newline at end of file +yarn.lock + +/src/config/sentry.js \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index 59b22e0..e7098a8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,6 +15,7 @@ "author": "", "license": "ISC", "dependencies": { + "@sentry/node": "5.20.1", "bcryptjs": "^2.4.3", "cors": "^2.8.5", "date-fns": "^2.15.0", diff --git a/backend/src/app.js b/backend/src/app.js index 4e78f67..5b6ead1 100644 --- a/backend/src/app.js +++ b/backend/src/app.js @@ -5,6 +5,8 @@ const path = require("path"); const Youch = require("youch"); const cors = require("cors"); const multer = require("multer"); +const Sentry = require("@sentry/node"); +const sentryConfig = require("./config/sentry"); const wBot = require("./libs/wbot"); const wbotMessageListener = require("./services/wbotMessageListener"); @@ -18,6 +20,12 @@ const WhatsRoutes = require("./routes/whatsapp"); const app = express(); +const server = app.listen(process.env.PORT, () => { + console.log(`Server started on port: ${process.env.PORT}`); +}); + +Sentry.init(sentryConfig); + const fileStorage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, path.resolve(__dirname, "..", "public")); @@ -27,6 +35,7 @@ const fileStorage = multer.diskStorage({ }, }); +app.use(Sentry.Handlers.requestHandler()); app.use(cors()); app.use(express.json()); app.use(multer({ storage: fileStorage }).single("media")); @@ -37,6 +46,7 @@ app.use(ContactsRoutes); app.use(TicketsRoutes); app.use(MessagesRoutes); app.use(WhatsRoutes); +app.use(Sentry.Handlers.errorHandler()); app.use(async (err, req, res, next) => { if (process.env.NODE_ENV === "DEVELOPMENT") { @@ -48,10 +58,6 @@ app.use(async (err, req, res, next) => { return res.status(500).json({ error: "Internal server error" }); }); -const server = app.listen(process.env.PORT, () => { - console.log(`Server started on port: ${process.env.PORT}`); -}); - const io = require("./libs/socket").init(server); io.on("connection", socket => { console.log("Client Connected"); diff --git a/backend/yarn.lock b/backend/yarn.lock index 3ec8b02..791f184 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -7,6 +7,85 @@ resolved "https://registry.yarnpkg.com/@pedroslopez/moduleraid/-/moduleraid-4.1.0.tgz#468f7195fddc9f367e672ace9269f0698cf4c404" integrity sha512-+2OYf1IDLhZlOY3QEwGfZJKfM/uPB3lw9zedl3eqEMtod73r1R7TUnmlh8S7hM8uLUcrWXMnJ9TrMbxXeV1pZg== +"@sentry/apm@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/apm/-/apm-5.20.1.tgz#2126407ec8ecc6f78f42a8a8de99b90dec982036" + integrity sha512-oqfyYqRR1CaM/U5qZg3KY9MxCe4OWYs3uiOvVGMOHCyx50dYsDZziM5DDVUvi6pOuokLCNbyXO9xGROSmploBQ== + dependencies: + "@sentry/browser" "5.20.1" + "@sentry/hub" "5.20.1" + "@sentry/minimal" "5.20.1" + "@sentry/types" "5.20.1" + "@sentry/utils" "5.20.1" + tslib "^1.9.3" + +"@sentry/browser@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.20.1.tgz#be59522d0914d58309e1367d997d4b3cd5385d7e" + integrity sha512-ClykuvrEsMKgAvifx5VHzRjchwYbJFX8YiIicYx+Wr3MXL2jLG6OEfHHJwJeyBL2C3vxd5O0KPK3pGMR9wPMLA== + dependencies: + "@sentry/core" "5.20.1" + "@sentry/types" "5.20.1" + "@sentry/utils" "5.20.1" + tslib "^1.9.3" + +"@sentry/core@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.20.1.tgz#857cc7186931c37ff032a1bcb573600ebacde961" + integrity sha512-gG622/UY2TePruF6iUzgVrbIX5vN8w2cjlWFo1Est8MvCfQsz8agGaLMCAyl5hCGJ6K2qTUZDOlbCNIKoMclxg== + dependencies: + "@sentry/hub" "5.20.1" + "@sentry/minimal" "5.20.1" + "@sentry/types" "5.20.1" + "@sentry/utils" "5.20.1" + tslib "^1.9.3" + +"@sentry/hub@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.20.1.tgz#05e83ba972a96e9d7225a64c7d3728aa9fcefc4e" + integrity sha512-Nv5BXf14BEc08acDguW6eSqkAJLVf8wki283FczEvTsQZZuSBHM9cJ5Hnehr6n+mr8wWpYLgUUYM0oXXigUmzQ== + dependencies: + "@sentry/types" "5.20.1" + "@sentry/utils" "5.20.1" + tslib "^1.9.3" + +"@sentry/minimal@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.20.1.tgz#2e2b63d9cd265b7e2f593f3eab4e9874bd87eeef" + integrity sha512-2PeJKDTHNsUd1jtSLQBJ6oRI+xrIJrYDQmsyK/qs9D7HqHfs+zNAMUjYseiVeSAFGas5IcNSuZbPRV4BnuoZ0w== + dependencies: + "@sentry/hub" "5.20.1" + "@sentry/types" "5.20.1" + tslib "^1.9.3" + +"@sentry/node@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.20.1.tgz#c38dd8c1f8f227420abb0c04354177d7296535bf" + integrity sha512-43YFDnD7Rv+vGHV+Fmb3LaSSWrFzsPmFRu3wmf9eYMgWiuDks6c6/kWRCgkqX9Np9ImC89wcTZs/V6S4MlOm4g== + dependencies: + "@sentry/apm" "5.20.1" + "@sentry/core" "5.20.1" + "@sentry/hub" "5.20.1" + "@sentry/types" "5.20.1" + "@sentry/utils" "5.20.1" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/types@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.20.1.tgz#ccc4fa4c9d0f94d93014b04e674762d5d5cd30a2" + integrity sha512-OU+i/lcjGpDJv0XkNpsKrI2r1VPp8qX0H6Knq8NuZrlZe3AbvO3jRJJK0pH14xFv8Xok5jbZZpKKoQLxYfxqsw== + +"@sentry/utils@5.20.1": + version "5.20.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.20.1.tgz#68cfae0d0e3b321b4649b59f30265024b29eae63" + integrity sha512-dhK6IdO6g7Q2CoxCbB+q8gwUapDUH5VjraFg0UBzgkrtNhtHLylqmwx0sWQvXCcp14Q/3MuzEbb4euvoh8o8oA== + dependencies: + "@sentry/types" "5.20.1" + tslib "^1.9.3" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -59,6 +138,13 @@ agent-base@5: resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== +agent-base@6: + version "6.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" + integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== + dependencies: + debug "4" + ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -492,6 +578,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1037,6 +1128,14 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1373,6 +1472,11 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2270,6 +2374,11 @@ touch@^3.1.0: dependencies: nopt "~1.0.10" +tslib@^1.9.3: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"