diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bundle/Server.ts | 4 | ||||
-rw-r--r-- | src/gateway/events/Message.ts | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/bundle/Server.ts b/src/bundle/Server.ts index b98a3776..2bc45f84 100644 --- a/src/bundle/Server.ts +++ b/src/bundle/Server.ts @@ -10,6 +10,7 @@ import { green, bold, yellow } from "picocolors"; import { Config, initDatabase, BannedWords } from "@fosscord/util"; import * as Sentry from "@sentry/node"; import * as Tracing from "@sentry/tracing"; +import * as Integrations from "@sentry/integrations"; const app = express(); const server = http.createServer(); @@ -73,6 +74,9 @@ async function main() { 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, diff --git a/src/gateway/events/Message.ts b/src/gateway/events/Message.ts index 9fafae1e..4ed715b2 100644 --- a/src/gateway/events/Message.ts +++ b/src/gateway/events/Message.ts @@ -42,22 +42,25 @@ export async function Message(this: WebSocket, buffer: WS.Data) { return; } - const transaction = Sentry.startTransaction({ + const transaction = data.op != 1 ? Sentry.startTransaction({ op: OPCODES[data.op], name: `GATEWAY ${OPCODES[data.op]}`, data: { ...data.d, token: data?.d?.token ? "[Redacted]" : undefined, }, - }); + }) : undefined; try { var ret = await OPCodeHandler.call(this, data); - transaction.finish(); + transaction?.finish(); return ret; } catch (error) { - Sentry.captureException(error); - transaction.finish(); + Sentry.withScope((scope) => { + scope.setSpan(transaction); + Sentry.captureException(error); + }); + transaction?.finish(); console.error(`Error: Op ${data.op}`, error); // if (!this.CLOSED && this.CLOSING) return this.close(CLOSECODES.Unknown_error); |