[IMPROVE] Inject metrics on callbacks (#13266)
parent
7c6ff2a740
commit
dabe271c13
@ -0,0 +1,31 @@ |
||||
import { callbacks } from 'meteor/rocketchat:callbacks'; |
||||
|
||||
import { metrics } from './lib/metrics'; |
||||
import StatsTracker from './lib/statsTracker'; |
||||
|
||||
const { |
||||
run: originalRun, |
||||
runItem: originalRunItem, |
||||
} = callbacks; |
||||
|
||||
callbacks.run = function(hook, item, constant) { |
||||
const rocketchatHooksEnd = metrics.rocketchatHooks.startTimer({ hook, callbacks_length: callbacks.length }); |
||||
|
||||
const result = originalRun(hook, item, constant); |
||||
|
||||
rocketchatHooksEnd(); |
||||
|
||||
return result; |
||||
}; |
||||
|
||||
callbacks.runItem = function({ callback, result, constant, hook, time }) { |
||||
const rocketchatCallbacksEnd = metrics.rocketchatCallbacks.startTimer({ hook, callback: callback.id }); |
||||
|
||||
const newResult = originalRunItem({ callback, result, constant }); |
||||
|
||||
StatsTracker.timing('callbacks.time', (Date.now() - time), [`hook:${ hook }`, `callback:${ callback.id }`]); |
||||
|
||||
rocketchatCallbacksEnd(); |
||||
|
||||
return newResult; |
||||
}; |
Loading…
Reference in new issue