|
|
|
@ -28,6 +28,9 @@ const config = require('config'), |
|
|
|
const scriptBodyTraceFrequency = Number(config.get('script.script_body_trace_frequency')); |
|
|
|
const useSandbox = config.get('script.use_sandbox') === 'true'; |
|
|
|
const maxActiveScripts = Number(config.get('script.max_active_scripts')); |
|
|
|
const slowQueryLogMs = Number(config.get('script.slow_query_log_ms')); |
|
|
|
|
|
|
|
const {performance} = require('perf_hooks'); |
|
|
|
|
|
|
|
function JsInvokeMessageProcessor(producer) { |
|
|
|
console.log("Producer:", producer); |
|
|
|
@ -39,13 +42,16 @@ function JsInvokeMessageProcessor(producer) { |
|
|
|
} |
|
|
|
|
|
|
|
JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) { |
|
|
|
|
|
|
|
var tStart = performance.now(); |
|
|
|
let requestId; |
|
|
|
let responseTopic; |
|
|
|
let headers; |
|
|
|
let request; |
|
|
|
let buf; |
|
|
|
try { |
|
|
|
let request = JSON.parse(Buffer.from(message.data).toString('utf8')); |
|
|
|
let headers = message.headers; |
|
|
|
let buf = Buffer.from(headers.data['requestId']); |
|
|
|
request = JSON.parse(Buffer.from(message.data).toString('utf8')); |
|
|
|
headers = message.headers; |
|
|
|
buf = Buffer.from(headers.data['requestId']); |
|
|
|
requestId = Utils.UUIDFromBuffer(buf); |
|
|
|
buf = Buffer.from(headers.data['responseTopic']); |
|
|
|
responseTopic = buf.toString('utf8'); |
|
|
|
@ -66,6 +72,25 @@ JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) { |
|
|
|
logger.error('[%s] Failed to process request: %s', requestId, err.message); |
|
|
|
logger.error(err.stack); |
|
|
|
} |
|
|
|
|
|
|
|
var tFinish = performance.now(); |
|
|
|
var tTook = tFinish - tStart; |
|
|
|
|
|
|
|
if ( tTook > slowQueryLogMs ) { |
|
|
|
let functionName; |
|
|
|
if (request.invokeRequest) { |
|
|
|
try { |
|
|
|
buf = Buffer.from(request.invokeRequest['functionName']); |
|
|
|
functionName = buf.toString('utf8'); |
|
|
|
} catch (err){ |
|
|
|
logger.error('[%s] Failed to read functionName from message header: %s', requestId, err.message); |
|
|
|
logger.error(err.stack); |
|
|
|
} |
|
|
|
} |
|
|
|
logger.warn('[%s] SLOW PROCESSING [%s]ms, functionName [%s], request: ', requestId, tTook, functionName); |
|
|
|
logger.warn('request: %s', JSON.stringify(request, null, 4)) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
JsInvokeMessageProcessor.prototype.processCompileRequest = function(requestId, responseTopic, headers, compileRequest) { |
|
|
|
|