From 5a5a20c20331de00d7ea691ab08412abeff89dbf Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sun, 30 Oct 2022 11:33:27 +1100 Subject: [PATCH] Sentry stuff? --- package-lock.json | Bin 411527 -> 413198 bytes package.json | 5 +++-- src/bundle/Server.ts | 4 ++++ src/gateway/events/Message.ts | 13 ++++++++----- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4cba09005903fb7259552fb48de9cb2ffd98c679..3189e47bdef0581e3a2ff786ec86a54fda9113d8 100644 GIT binary patch delta 2899 zcmd6p&2QUe9LMF>X}b=#cIz0WE$fR`38jtgIIoC_xry^yCr%tEP7c!?CwA<-C(f%h zq>00Jq6Z%y4jd*fTqYQ*v|f<-3y>IyF|ol4n>e=H88L{vH4Pd<`L(^7r?B zzQ2#2D;v`vd^CMy6*?`K)T~tFRk>WMFTOp$c)@PM>?X4|2h9%a<2%q9ecZeN{q`+n z*A~Vw?cMvM6GFL`MOG1gSk=D(k6~zmEv|W#l9UM0Av}%|h}uP}Jf`F$&0*SuMBF` zps6R?qwhzxjUQ$X{0G<1!pD0)?75zye4=P~;gl4t_zUUve2pa4DpukgWh^H1ZN!}j ztBN(VUZbhH66wfIs_sN>-YkQA19{G#%u35GThQWy?tK$^~V!n{359isVGvk@lp>xXo5>22w#g z&sNKMYYS^Bb)S@Hy9i@Lq`XYk+{qXoR->+HBZ(KqNW&Q{X4gtGg|<_9z8xh47}&lF zodp+<4bN%Uw#T%)zw|uW&!>hynB4z)!J*o!-HvQz*{&Pqk#aa$vdBhK)=#q&iN#wA zVsw@zG0xl0rHavRP8$#50FZ4w&$M^x;`^;aw-Ry_k#<~6 zwi_P1zbt79x_FN(RF|2if+=u&QKh3zlw&!F@bQ5;3WcrB$)pu3}a}X62+^ zQW!4kjcAXLPj8){9HJK>8GIfcng*4d5HePfbq$5y)J;PM57fk~w#n zsJFzPIrEeKD)pGZhnrA9Ts551w#`Sz4|){bS{OPF9<&VRxr50)eFts4iuD@!^28#G zSr8w_bM{Ji0A)7~zZ^3gpG&JXuI0cTE)ysn+Myn1EBJhZi89vX1 zS+KJNAMouUWRqL>SK*@&Fuetj{C@$>&y2hY9xcHq`bc{bLN5)}2Dr2Ep@JD;9}mxg z@bWXw&+&Mx$7AiV@cU0<{x%Dv+E;f+wJ(02>PPl3{Efd9{!Q9Xy41T|(zizgo1_08 kynw%Bm>YTqUJxS;C$#ToCc)Pw7zck?hQ_v#fPwq{Pvk delta 1921 zcmc(g&1>6c9LJHP;KXGFuh~Yn1ZK0+Q74gPOP0M|YD<2%_2zdo)<~9R%d%x#QtUXl zQc7>ziVnIIMqz)zzz4Ha$!W)}jD^vLwX|W!(c@rb%uQ@}urjtny65m59-fEa=lTAg z56@?J)^2^i_VpHks2#E9{^))8r}#GF+lJknj^)X4U)5`>p$#EJMFH{?-s zD2K+;J_Rvap6|4Cf-wcY_!78zR0%aUoH?KY}V6&C~epdCbnik3@yij0~mq9jDMbGW4P*nTWVvIz}J;X*>ik*R5-p!KHtv>B{)(CD8f*dOBxb{ky4C zKI@kc!Ph3K<-E7BVeMQ7?XRloc%rHK`V_Se4qm0{)+RJLHvK)$G%cKqrmW?FL3mc_ myw#kiu{xLY^c7tI#-DgW*U4Ch7r))GMv+D5xXCPjb@C_u7jWwU diff --git a/package.json b/package.json index ef2cc223..ea9c9b40 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,9 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.178.0", - "@sentry/node": "^7.13.0", - "@sentry/tracing": "^7.13.0", + "@sentry/integrations": "^7.17.2", + "@sentry/node": "^7.17.2", + "@sentry/tracing": "^7.17.2", "ajv": "^8.6.2", "ajv-formats": "^2.1.1", "amqplib": "^0.10.3", 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);