Added datadog metrix (#437)

* feat: tracing metrix for deny

* feat: added raw reason at tag

* fix(dd-trace): not using async function

* chore: removed tracer init and await

* feat: added datadog init file

* style(dd-trace): changed style

* fix(scripts): wrong path
This commit is contained in:
Junseo Park 2021-07-15 11:06:11 +09:00 committed by GitHub
parent 9a32df09e7
commit c8708d8ad7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 5 deletions

8
dd-trace-init.js Normal file
View File

@ -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

View File

@ -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",

View File

@ -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) => {

View File

@ -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 })
})

View File

@ -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 })
})