📈(collaboration) add sentry

Add sentry to the collaboration server.
It will be used to log errors and exceptions.
This commit is contained in:
Anthony LC
2024-12-03 15:10:05 +01:00
committed by Anthony LC
parent 94a1ba7989
commit 932ab13d97
5 changed files with 101 additions and 2 deletions

View File

@@ -17,6 +17,8 @@
},
"dependencies": {
"@hocuspocus/server": "2.14.0",
"@sentry/node": "8.41.0",
"@sentry/profiling-node": "8.41.0",
"express": "4.21.1",
"express-ws": "5.0.2",
"y-protocols": "1.0.6"

View File

@@ -5,3 +5,4 @@ export const COLLABORATION_SERVER_ORIGIN =
export const COLLABORATION_SERVER_SECRET =
process.env.COLLABORATION_SERVER_SECRET || 'secret-api-key';
export const PORT = Number(process.env.PORT || 4444);
export const SENTRY_DSN = process.env.SENTRY_DSN || '';

View File

@@ -1,4 +1,7 @@
// eslint-disable-next-line import/order
import './services/sentry';
import { Server } from '@hocuspocus/server';
import * as Sentry from '@sentry/node';
import express, { Request, Response } from 'express';
import expressWebsockets from 'express-ws';
@@ -130,6 +133,8 @@ export const initServer = () => {
},
);
Sentry.setupExpressErrorHandler(app);
app.get('/ping', (req, res) => {
res.status(200).json({ message: 'pong' });
});

View File

@@ -0,0 +1,11 @@
import * as Sentry from '@sentry/node';
import { nodeProfilingIntegration } from '@sentry/profiling-node';
import { SENTRY_DSN } from '../env';
Sentry.init({
dsn: SENTRY_DSN,
integrations: [nodeProfilingIntegration()],
tracesSampleRate: 1.0,
profilesSampleRate: 1.0,
});

View File

@@ -3906,6 +3906,13 @@
"@sentry/cli-win32-i686" "2.39.1"
"@sentry/cli-win32-x64" "2.39.1"
"@sentry/core@8.41.0":
version "8.41.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.41.0.tgz#e8a25cacd25fe4358f3179e85f3c2697427fe5a6"
integrity sha512-3v7u3t4LozCA5SpZY4yqUN2U3jSrkXNoLgz6L2SUUiydyCuSwXZIFEwpLJfgQyidpNDifeQbBI5E1O910XkPsA==
dependencies:
"@sentry/types" "8.41.0"
"@sentry/core@8.42.0":
version "8.42.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.42.0.tgz#9fc0db6794186dc2d1167cf82e579e387198ba77"
@@ -3932,6 +3939,48 @@
rollup "3.29.5"
stacktrace-parser "^0.1.10"
"@sentry/node@8.41.0":
version "8.41.0"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.41.0.tgz#52f970648d961f6e82a1b23a88c0000aa72ba21a"
integrity sha512-eYD5S8Lti9efBHFSIhZ/0C5uI1DQtGqjuNWQ62CKC47G2qgJddBtb2HgqRFAnMajYL9FXEtiDT6uqQhKQnmLcQ==
dependencies:
"@opentelemetry/api" "^1.9.0"
"@opentelemetry/context-async-hooks" "^1.25.1"
"@opentelemetry/core" "^1.25.1"
"@opentelemetry/instrumentation" "^0.54.0"
"@opentelemetry/instrumentation-amqplib" "^0.43.0"
"@opentelemetry/instrumentation-connect" "0.40.0"
"@opentelemetry/instrumentation-dataloader" "0.12.0"
"@opentelemetry/instrumentation-express" "0.44.0"
"@opentelemetry/instrumentation-fastify" "0.41.0"
"@opentelemetry/instrumentation-fs" "0.16.0"
"@opentelemetry/instrumentation-generic-pool" "0.39.0"
"@opentelemetry/instrumentation-graphql" "0.44.0"
"@opentelemetry/instrumentation-hapi" "0.41.0"
"@opentelemetry/instrumentation-http" "0.53.0"
"@opentelemetry/instrumentation-ioredis" "0.43.0"
"@opentelemetry/instrumentation-kafkajs" "0.4.0"
"@opentelemetry/instrumentation-knex" "0.41.0"
"@opentelemetry/instrumentation-koa" "0.43.0"
"@opentelemetry/instrumentation-lru-memoizer" "0.40.0"
"@opentelemetry/instrumentation-mongodb" "0.48.0"
"@opentelemetry/instrumentation-mongoose" "0.42.0"
"@opentelemetry/instrumentation-mysql" "0.41.0"
"@opentelemetry/instrumentation-mysql2" "0.41.0"
"@opentelemetry/instrumentation-nestjs-core" "0.40.0"
"@opentelemetry/instrumentation-pg" "0.44.0"
"@opentelemetry/instrumentation-redis-4" "0.42.0"
"@opentelemetry/instrumentation-tedious" "0.15.0"
"@opentelemetry/instrumentation-undici" "0.6.0"
"@opentelemetry/resources" "^1.26.0"
"@opentelemetry/sdk-trace-base" "^1.26.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
"@prisma/instrumentation" "5.19.1"
"@sentry/core" "8.41.0"
"@sentry/opentelemetry" "8.41.0"
"@sentry/types" "8.41.0"
import-in-the-middle "^1.11.2"
"@sentry/node@8.42.0":
version "8.42.0"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.42.0.tgz#829a02ce322bf7ee13e2bd09acc2eb56a8e04525"
@@ -3973,6 +4022,14 @@
"@sentry/opentelemetry" "8.42.0"
import-in-the-middle "^1.11.2"
"@sentry/opentelemetry@8.41.0":
version "8.41.0"
resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.41.0.tgz#0e5c4bb8d5b58f07eb80e312fc66b8709a688c61"
integrity sha512-Ld6KdBQsmSk2IfFSoZ7CMpmuQbfb3viV6nTDCz6+11wL9S+1b+hadCN+38yBW4CmI4/hEpYfwwWQPseQQTvBCg==
dependencies:
"@sentry/core" "8.41.0"
"@sentry/types" "8.41.0"
"@sentry/opentelemetry@8.42.0":
version "8.42.0"
resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.42.0.tgz#d4a5e988689b3c64370eff5763e7cf3af4e43cba"
@@ -3980,6 +4037,17 @@
dependencies:
"@sentry/core" "8.42.0"
"@sentry/profiling-node@8.41.0":
version "8.41.0"
resolved "https://registry.yarnpkg.com/@sentry/profiling-node/-/profiling-node-8.41.0.tgz#47acdac0373fc1dcce182370082bfd5f4f47720e"
integrity sha512-0/40Hzrm8XzCQL+CM65ETZMW+SV8Jp71+E+w2uh3xobSQJQSsZKOOwSj5Nmp5QL6v5ZOZZE0fceVaym1lhQylw==
dependencies:
"@sentry/core" "8.41.0"
"@sentry/node" "8.41.0"
"@sentry/types" "8.41.0"
detect-libc "^2.0.2"
node-abi "^3.61.0"
"@sentry/react@8.42.0":
version "8.42.0"
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.42.0.tgz#7c3ae19e5d9ea3332303fcd347eb220ec1c69e93"
@@ -3989,6 +4057,11 @@
"@sentry/core" "8.42.0"
hoist-non-react-statics "^3.3.2"
"@sentry/types@8.41.0":
version "8.41.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.41.0.tgz#db40c93bcedad26569c5dfe10a4b31253c349a10"
integrity sha512-eqdnGr9k9H++b9CjVUoTNUVahPVWeNnMy0YGkqS5+cjWWC+x43p56202oidGFmWo6702ub/xwUNH6M5PC4kq6A==
"@sentry/vercel-edge@8.42.0":
version "8.42.0"
resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.42.0.tgz#02149bacf42522916aacfe75fcd86f05c39fa48a"
@@ -6373,7 +6446,7 @@ destroy@1.2.0:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
detect-libc@^2.0.3:
detect-libc@^2.0.2, detect-libc@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700"
integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
@@ -10112,6 +10185,13 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
node-abi@^3.61.0:
version "3.71.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.71.0.tgz#52d84bbcd8575efb71468fbaa1f9a49b2c242038"
integrity sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==
dependencies:
semver "^7.3.5"
node-ensure@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7"
@@ -11749,7 +11829,7 @@ semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
semver@^7.3.5, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
version "7.6.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==