Commit 34bc51903c2a97c35c16d51e8b725c81007cbb3a

Authored by Igor Kulikov
1 parent 8fdfacf4

Ability to trace script body executed by JS Executor microservice.

... ... @@ -4,4 +4,5 @@ TB_KAFKA_SERVERS=kafka:9092
4 4 LOGGER_LEVEL=info
5 5 LOG_FOLDER=logs
6 6 LOGGER_FILENAME=tb-js-executor-%DATE%.log
7   -DOCKER_MODE=true
\ No newline at end of file
  7 +DOCKER_MODE=true
  8 +SCRIPT_BODY_TRACE_FREQUENCY=1000
\ No newline at end of file
... ...
... ... @@ -15,16 +15,20 @@
15 15 */
16 16 'use strict';
17 17
18   -const logger = require('../config/logger')('JsInvokeMessageProcessor'),
  18 +const config = require('config'),
  19 + logger = require('../config/logger')('JsInvokeMessageProcessor'),
19 20 Utils = require('./utils'),
20 21 js = require('./jsinvoke.proto').js,
21 22 KeyedMessage = require('kafka-node').KeyedMessage,
22 23 JsExecutor = require('./jsExecutor');
23 24
  25 +const scriptBodyTraceFrequency = Number(config.get('script.script_body_trace_frequency'));
  26 +
24 27 function JsInvokeMessageProcessor(producer) {
25 28 this.producer = producer;
26 29 this.executor = new JsExecutor();
27 30 this.scriptMap = {};
  31 + this.executedScriptsCounter = 0;
28 32 }
29 33
30 34 JsInvokeMessageProcessor.prototype.onJsInvokeMessage = function(message) {
... ... @@ -74,6 +78,13 @@ JsInvokeMessageProcessor.prototype.processCompileRequest = function(requestId, r
74 78 JsInvokeMessageProcessor.prototype.processInvokeRequest = function(requestId, responseTopic, invokeRequest) {
75 79 var scriptId = getScriptId(invokeRequest);
76 80 logger.debug('[%s] Processing invoke request, scriptId: [%s]', requestId, scriptId);
  81 + this.executedScriptsCounter++;
  82 + if ( this.executedScriptsCounter >= scriptBodyTraceFrequency ) {
  83 + this.executedScriptsCounter = 0;
  84 + if (logger.levels[logger.level] >= logger.levels['debug']) {
  85 + logger.debug('[%s] Executing script body: [%s]', scriptId, invokeRequest.scriptBody);
  86 + }
  87 + }
77 88 this.getOrCompileScript(scriptId, invokeRequest.scriptBody).then(
78 89 (script) => {
79 90 this.executor.executeScript(script, invokeRequest.args, invokeRequest.timeout).then(
... ...
... ... @@ -23,3 +23,6 @@ logger:
23 23 level: "LOGGER_LEVEL"
24 24 path: "LOG_FOLDER"
25 25 filename: "LOGGER_FILENAME"
  26 +
  27 +script:
  28 + script_body_trace_frequency: "SCRIPT_BODY_TRACE_FREQUENCY"
... ...
... ... @@ -24,3 +24,6 @@ logger:
24 24 level: "info"
25 25 path: "logs"
26 26 filename: "tb-js-executor-%DATE%.log"
  27 +
  28 +script:
  29 + script_body_trace_frequency: "1000"
... ...