From 34bc51903c2a97c35c16d51e8b725c81007cbb3a Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 12 Feb 2019 17:17:50 +0200 Subject: [PATCH] Ability to trace script body executed by JS Executor microservice. --- docker/tb-js-executor.env | 3 ++- msa/js-executor/api/jsInvokeMessageProcessor.js | 13 ++++++++++++- .../config/custom-environment-variables.yml | 3 +++ msa/js-executor/config/default.yml | 3 +++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docker/tb-js-executor.env b/docker/tb-js-executor.env index f7f24acabf..38f283cd1a 100644 --- a/docker/tb-js-executor.env +++ b/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 \ No newline at end of file +DOCKER_MODE=true +SCRIPT_BODY_TRACE_FREQUENCY=1000 \ No newline at end of file diff --git a/msa/js-executor/api/jsInvokeMessageProcessor.js b/msa/js-executor/api/jsInvokeMessageProcessor.js index f79233ef76..1a1df75e09 100644 --- a/msa/js-executor/api/jsInvokeMessageProcessor.js +++ b/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( diff --git a/msa/js-executor/config/custom-environment-variables.yml b/msa/js-executor/config/custom-environment-variables.yml index d074bd9e45..99f47cb5f1 100644 --- a/msa/js-executor/config/custom-environment-variables.yml +++ b/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" diff --git a/msa/js-executor/config/default.yml b/msa/js-executor/config/default.yml index 9f82caa016..fb470567e7 100644 --- a/msa/js-executor/config/default.yml +++ b/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"