diff --git a/src/server/api/call.ts b/src/server/api/call.ts index dac57b8f75..89a44b3c65 100644 --- a/src/server/api/call.ts +++ b/src/server/api/call.ts @@ -1,3 +1,4 @@ +import { performance } from 'perf_hooks'; import limiter from './limiter'; import { IUser } from '../../models/user'; import { IApp } from '../../models/app'; @@ -71,6 +72,7 @@ export default async (endpoint: string, user: IUser, app: IApp, data: any, file? } // API invoking + const before = performance.now(); return await ep.exec(data, user, app, file).catch((e: Error) => { if (e instanceof ApiError) { throw e; @@ -88,5 +90,11 @@ export default async (endpoint: string, user: IUser, app: IApp, data: any, file? } }); } + }).finally(() => { + const after = performance.now(); + const time = after - before; + if (time > 1000) { + apiLogger.warn(`SLOW API CALL DETECTED: ${ep.name} (${time}ms)`); + } }); };