Browse Source

Ability to trace script body executed by JS Executor microservice.

pull/1503/head
Igor Kulikov 7 years ago
parent
commit
34bc51903c
  1. 3
      docker/tb-js-executor.env
  2. 13
      msa/js-executor/api/jsInvokeMessageProcessor.js
  3. 3
      msa/js-executor/config/custom-environment-variables.yml
  4. 3
      msa/js-executor/config/default.yml

3
docker/tb-js-executor.env

@ -4,4 +4,5 @@ TB_KAFKA_SERVERS=kafka:9092
LOGGER_LEVEL=info
LOG_FOLDER=logs
LOGGER_FILENAME=tb-js-executor-%DATE%.log
DOCKER_MODE=true
DOCKER_MODE=true
SCRIPT_BODY_TRACE_FREQUENCY=1000

13
msa/js-executor/api/jsInvokeMessageProcessor.js

@ -15,16 +15,20 @@
*/
'use strict';
const logger = require('../config/logger')('JsInvokeMessageProcessor'),
const config = require('config'),
logger = require('../config/logger')('JsInvokeMessageProcessor'),
Utils = require('./utils'),
js = require('./jsinvoke.proto').js,
KeyedMessage = require('kafka-node').KeyedMessage,
JsExecutor = require('./jsExecutor');
const scriptBodyTraceFrequency = Number(config.get('script.script_body_trace_frequency'));
function JsInvokeMessageProcessor(producer) {
this.producer = producer;
this.executor = new JsExecutor();
this.scriptMap = {};
this.executedScriptsCounter = 0;
}
JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) {
@ -74,6 +78,13 @@ JsInvokeMessageProcessor.prototype.processCompileRequest = function(requestId, r
JsInvokeMessageProcessor.prototype.processInvokeRequest = function(requestId, responseTopic, invokeRequest) {
var scriptId = getScriptId(invokeRequest);
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(
(script) => {
this.executor.executeScript(script, invokeRequest.args, invokeRequest.timeout).then(

3
msa/js-executor/config/custom-environment-variables.yml

@ -23,3 +23,6 @@ logger:
level: "LOGGER_LEVEL"
path: "LOG_FOLDER"
filename: "LOGGER_FILENAME"
script:
script_body_trace_frequency: "SCRIPT_BODY_TRACE_FREQUENCY"

3
msa/js-executor/config/default.yml

@ -24,3 +24,6 @@ logger:
level: "info"
path: "logs"
filename: "tb-js-executor-%DATE%.log"
script:
script_body_trace_frequency: "1000"

Loading…
Cancel
Save