The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/server/startup/callbacks.ts

28 lines
759 B

import { performance } from 'universal-perf-hooks';
import { callbacks } from '../../lib/callbacks';
import { Logger } from '../lib/logger/Logger';
import { metrics, StatsTracker } from '../../app/metrics/server';
callbacks.setLogger(new Logger('Callbacks'));
callbacks.setMetricsTrackers({
trackCallback: ({ hook, id }) => {
const start = performance.now();
const stopTimer = metrics.rocketchatCallbacks.startTimer({ hook, callback: id });
return (): void => {
const end = performance.now();
StatsTracker.timing('callbacks.time', end - start, [`hook:${hook}`, `callback:${id}`]);
stopTimer();
};
},
trackHook: ({ hook, length }) => {
return metrics.rocketchatHooks.startTimer({
hook,
callbacks_length: length,
});
},
});