diff options
Diffstat (limited to 'src/bundle/Server.ts')
-rw-r--r-- | src/bundle/Server.ts | 78 |
1 files changed, 3 insertions, 75 deletions
diff --git a/src/bundle/Server.ts b/src/bundle/Server.ts index e6f8d17c..abd05e1f 100644 --- a/src/bundle/Server.ts +++ b/src/bundle/Server.ts @@ -7,10 +7,7 @@ import * as Gateway from "@fosscord/gateway"; import { CDNServer } from "@fosscord/cdn"; import express from "express"; import { green, bold, yellow } from "picocolors"; -import { Config, initDatabase } from "@fosscord/util"; -import * as Sentry from "@sentry/node"; -import * as Tracing from "@sentry/tracing"; -import * as Integrations from "@sentry/integrations"; +import { Config, initDatabase, Sentry } from "@fosscord/util"; const app = express(); const server = http.createServer(); @@ -30,81 +27,12 @@ process.on("SIGTERM", async () => { async function main() { await initDatabase(); await Config.init(); - - //Sentry - if (Config.get().sentry.enabled) { - console.log( - `[Bundle] ${yellow( - "You are using Sentry! This may slightly impact performance on large loads!", - )}`, - ); - Sentry.init({ - dsn: Config.get().sentry.endpoint, - integrations: [ - new Sentry.Integrations.Http({ tracing: true }), - new Tracing.Integrations.Express({ app }), - new Tracing.Integrations.Mysql(), - new Integrations.RewriteFrames({ - root: __dirname, - }), - ], - tracesSampleRate: Config.get().sentry.traceSampleRate, - environment: Config.get().sentry.environment, - }); - - Sentry.addGlobalEventProcessor((event, hint) => { - if (event.transaction) { - // Rewrite things that look like IDs to `:id` for sentry - event.transaction = event.transaction - .split("/") - .map((x) => (!parseInt(x) ? x : ":id")) - .join("/"); - } - - // TODO: does this even do anything? - delete event.request?.cookies; - if (event.request?.headers) { - delete event.request.headers["X-Real-Ip"]; - delete event.request.headers["X-Forwarded-For"]; - delete event.request.headers["X-Forwarded-Host"]; - delete event.request.headers["X-Super-Properties"]; - } - - if (event.breadcrumbs) { - event.breadcrumbs = event.breadcrumbs.filter((x) => { - // Filter breadcrumbs that we don't care about - if (x.message?.includes("identified as")) return false; - if (x.message?.includes("[WebSocket] closed")) return false; - if ( - x.message?.includes( - "Got Resume -> cancel not implemented", - ) - ) - return false; - if (x.message?.includes("[Gateway] New connection from")) - return false; - - return true; - }); - } - - return event; - }); - - app.use(Sentry.Handlers.requestHandler()); - app.use(Sentry.Handlers.tracingHandler()); - } + await Sentry.init(app); server.listen(port); await Promise.all([api.start(), cdn.start(), gateway.start()]); - if (Config.get().sentry.enabled) { - app.use(Sentry.Handlers.errorHandler()); - app.use(function onError(err: any, req: any, res: any, next: any) { - res.statusCode = 500; - res.end(res.sentry + "\n"); - }); - } + Sentry.errorHandler(app); console.log(`[Server] ${green(`listening on port ${bold(port)}`)}`); } |