Ability to trace script body executed by JS Executor microservice.
This commit is contained in:
		
							parent
							
								
									8fdfacf492
								
							
						
					
					
						commit
						34bc51903c
					
				@ -4,4 +4,5 @@ TB_KAFKA_SERVERS=kafka:9092
 | 
				
			|||||||
LOGGER_LEVEL=info
 | 
					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