diff --git a/dd-trace-init.js b/dd-trace-init.js new file mode 100644 index 0000000..a155e84 --- /dev/null +++ b/dd-trace-init.js @@ -0,0 +1,8 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const tracer = require('dd-trace') + +tracer.init({ + debug: true +}) + +module.exports = tracer \ No newline at end of file diff --git a/package.json b/package.json index 4d76671..ddabc8e 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dev": "next dev", "pre-build": "git init && git submodule init && git submodule update --remote", "build": "npm run pre-build && next build", - "start": "NODE_OPTIONS='--require dd-trace/init' next start | (sleep 2; wget http://localhost:3000/api/v2/management/load -O /dev/null)", + "start": "NODE_OPTIONS='--require ./dd-trace-init.js' next start | (sleep 2; wget http://localhost:3000/api/v2/management/load -O /dev/null)", "lint": "eslint --ext ts,tsx .", "prettier": "prettier --write **/*", "lint:fix": "eslint --ext ts,tsx . --fix", diff --git a/pages/api/v2/bots/[id]/index.ts b/pages/api/v2/bots/[id]/index.ts index f9c1a5e..bf971dd 100644 --- a/pages/api/v2/bots/[id]/index.ts +++ b/pages/api/v2/bots/[id]/index.ts @@ -84,11 +84,11 @@ const Bots = RequestHandler() }) const userinfo = await get.user.load(user) await getBotReviewLogChannel().send(new MessageEmbed().setAuthor(`${userinfo.username}#${userinfo.tag}`, KoreanbotsEndPoints.URL.root + KoreanbotsEndPoints.CDN.avatar(userinfo.id, { format: 'png', size: 256 }), KoreanbotsEndPoints.URL.user(userinfo.id)).setTitle('대기 중').setColor('GREY').setDescription(`[${result.id}/${result.date}](${KoreanbotsEndPoints.URL.submittedBot(result.id, result.date)})`).setTimestamp()) - await tracer.trace('botSubmits.submitted', (async span => { + tracer.trace('botSubmits.submitted', span => { span.setTag('id', result.id) span.setTag('date', result.date) span.setTag('user', userinfo.id) - })) + }) return ResponseWrapper(res, { code: 200, data: result }) }) .delete(async (req: DeleteApiRequest, res) => { diff --git a/pages/api/v2/management/bots/submits/[id]/[date]/approve.ts b/pages/api/v2/management/bots/submits/[id]/[date]/approve.ts index a8f21bb..ac6b4be 100644 --- a/pages/api/v2/management/bots/submits/[id]/[date]/approve.ts +++ b/pages/api/v2/management/bots/submits/[id]/[date]/approve.ts @@ -22,11 +22,11 @@ const ApproveBotSubmit = RequestHandler() const embed = new MessageEmbed().setTitle('승인').setColor('GREEN').setDescription(`[${submit.id}/${submit.date}](${KoreanbotsEndPoints.URL.submittedBot(submit.id, submit.date)})`).setTimestamp() if(req.body.reviewer) embed.addField('📃 정보', `심사자: ${req.body.reviewer}`) await getBotReviewLogChannel().send(embed) - await tracer.trace('botSubmits.approve', (async span => { + tracer.trace('botSubmits.approve', span => { span.setTag('id', submit.id) span.setTag('date', submit.date) span.setTag('reviewer', req.body.reviewer) - })) + }) return ResponseWrapper(res, { code: 200 }) }) diff --git a/pages/api/v2/management/bots/submits/[id]/[date]/deny.ts b/pages/api/v2/management/bots/submits/[id]/[date]/deny.ts index 95d3282..42d7367 100644 --- a/pages/api/v2/management/bots/submits/[id]/[date]/deny.ts +++ b/pages/api/v2/management/bots/submits/[id]/[date]/deny.ts @@ -1,5 +1,6 @@ import { NextApiRequest } from 'next' import { MessageEmbed } from 'discord.js' +import tracer from 'dd-trace' import RequestHandler from '@utils/RequestHandler' import ResponseWrapper from '@utils/ResponseWrapper' @@ -19,6 +20,13 @@ const DenyBotSubmit = RequestHandler() const embed = new MessageEmbed().setTitle('거부').setColor('RED').setDescription(`[${submit.id}/${submit.date}](${KoreanbotsEndPoints.URL.submittedBot(submit.id, submit.date)})`).setTimestamp() if(req.body.reviewer || req.body.reason) embed.addField('📃 정보', `${req.body.reason ? `사유: ${BotSubmissionDenyReasonPresetsName[req.body.reason] || req.body.reason}\n`: ''}${req.body.reviewer ? `심사자: ${req.body.reviewer}` : ''}`) await getBotReviewLogChannel().send(embed) + tracer.trace('botSubmits.deny', span => { + span.setTag('id', submit.id) + span.setTag('date', submit.date) + span.setTag('reviewer', req.body.reviewer) + span.setTag('reason', BotSubmissionDenyReasonPresetsName[req.body.reason] || 'OTHER') + span.setTag('_raw_reason', req.body.reason) + }) return ResponseWrapper(res, { code: 200 }) })