Я пытаюсь использовать относительно новую функцию декораторов javascript для сбора метрик и отправки данных собаке.Моя реализация включает в себя счетчик, который украшает функцию и отправляет метрику счетчика в dogstatsd.Имя метрики будет добавлено после имени метода
const { StatsD } = require('hot-shots')
const client = new StatsD({
port: process.env.DD_PORT,
host: process.env.DD_HOST,
prefix: 'metrics.root.',
globalize: true,
globalTags: {
environment: process.env.NODE_ENV,
},
})
function MethodCounter(target: object, key: string, descriptor: TypedPropertyDescriptor<any>) {
const originalMethod = descriptor.value
descriptor.value = function(...args: any[]) {
const result = originalMethod.apply(this, args)
client.increment(`${originalMethod}`)
return result
}
return descriptor
}
Декоратор реализован в соответствии с рекомендациями этого вопроса о переполнении стека.Однако декоратор, похоже, не отправляет метрики, как ожидалось.Я что-то упускаю?