Ability to trace script body executed by JS Executor microservice.
This commit is contained in:
parent
8fdfacf492
commit
34bc51903c
@ -5,3 +5,4 @@ LOGGER_LEVEL=info
|
|||||||
LOG_FOLDER=logs
|
LOG_FOLDER=logs
|
||||||
LOGGER_FILENAME=tb-js-executor-%DATE%.log
|
LOGGER_FILENAME=tb-js-executor-%DATE%.log
|
||||||
DOCKER_MODE=true
|
DOCKER_MODE=true
|
||||||
|
SCRIPT_BODY_TRACE_FREQUENCY=1000
|
||||||
@ -15,16 +15,20 @@
|
|||||||
*/
|
*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const logger = require('../config/logger')('JsInvokeMessageProcessor'),
|
const config = require('config'),
|
||||||
|
logger = require('../config/logger')('JsInvokeMessageProcessor'),
|
||||||
Utils = require('./utils'),
|
Utils = require('./utils'),
|
||||||
js = require('./jsinvoke.proto').js,
|
js = require('./jsinvoke.proto').js,
|
||||||
KeyedMessage = require('kafka-node').KeyedMessage,
|
KeyedMessage = require('kafka-node').KeyedMessage,
|
||||||
JsExecutor = require('./jsExecutor');
|
JsExecutor = require('./jsExecutor');
|
||||||
|
|
||||||
|
const scriptBodyTraceFrequency = Number(config.get('script.script_body_trace_frequency'));
|
||||||
|
|
||||||
function JsInvokeMessageProcessor(producer) {
|
function JsInvokeMessageProcessor(producer) {
|
||||||
this.producer = producer;
|
this.producer = producer;
|
||||||
this.executor = new JsExecutor();
|
this.executor = new JsExecutor();
|
||||||
this.scriptMap = {};
|
this.scriptMap = {};
|
||||||
|
this.executedScriptsCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) {
|
JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) {
|
||||||
@ -74,6 +78,13 @@ JsInvokeMessageProcessor.prototype.processCompileRequest = function(requestId, r
|
|||||||
JsInvokeMessageProcessor.prototype.processInvokeRequest = function(requestId, responseTopic, invokeRequest) {
|
JsInvokeMessageProcessor.prototype.processInvokeRequest = function(requestId, responseTopic, invokeRequest) {
|
||||||
var scriptId = getScriptId(invokeRequest);
|
var scriptId = getScriptId(invokeRequest);
|
||||||
logger.debug('[%s] Processing invoke request, scriptId: [%s]', requestId, scriptId);
|
logger.debug('[%s] Processing invoke request, scriptId: [%s]', requestId, scriptId);
|
||||||
|
this.executedScriptsCounter++;
|
||||||
|
if ( this.executedScriptsCounter >= scriptBodyTraceFrequency ) {
|
||||||
|
this.executedScriptsCounter = 0;
|
||||||
|
if (logger.levels[logger.level] >= logger.levels['debug']) {
|
||||||
|
logger.debug('[%s] Executing script body: [%s]', scriptId, invokeRequest.scriptBody);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.getOrCompileScript(scriptId, invokeRequest.scriptBody).then(
|
this.getOrCompileScript(scriptId, invokeRequest.scriptBody).then(
|
||||||
(script) => {
|
(script) => {
|
||||||
this.executor.executeScript(script, invokeRequest.args, invokeRequest.timeout).then(
|
this.executor.executeScript(script, invokeRequest.args, invokeRequest.timeout).then(
|
||||||
|
|||||||
@ -23,3 +23,6 @@ logger:
|
|||||||
level: "LOGGER_LEVEL"
|
level: "LOGGER_LEVEL"
|
||||||
path: "LOG_FOLDER"
|
path: "LOG_FOLDER"
|
||||||
filename: "LOGGER_FILENAME"
|
filename: "LOGGER_FILENAME"
|
||||||
|
|
||||||
|
script:
|
||||||
|
script_body_trace_frequency: "SCRIPT_BODY_TRACE_FREQUENCY"
|
||||||
|
|||||||
@ -24,3 +24,6 @@ logger:
|
|||||||
level: "info"
|
level: "info"
|
||||||
path: "logs"
|
path: "logs"
|
||||||
filename: "tb-js-executor-%DATE%.log"
|
filename: "tb-js-executor-%DATE%.log"
|
||||||
|
|
||||||
|
script:
|
||||||
|
script_body_trace_frequency: "1000"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user