diff --git a/lerna.json b/lerna.json index 91cecd5db3..abf1e4d21a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.18.0", + "version": "2.18.1", "npmClient": "yarn", "packages": [ "packages/*", diff --git a/packages/server/src/utilities/scriptRunner.ts b/packages/server/src/utilities/scriptRunner.ts index 138b98fdbf..72042a5791 100644 --- a/packages/server/src/utilities/scriptRunner.ts +++ b/packages/server/src/utilities/scriptRunner.ts @@ -1,3 +1,4 @@ +import tracer, { Span } from "dd-trace" import env from "../environment" import { IsolatedVM } from "../jsRunner/vm" @@ -7,7 +8,11 @@ class ScriptRunner { private code: string private vm: IsolatedVM + private tracerSpan: Span + constructor(script: string, context: any, { parseBson = false } = {}) { + this.tracerSpan = tracer.startSpan("scriptRunner", { tags: { parseBson } }) + this.code = `(() => {${script}})();` this.vm = new IsolatedVM({ memoryLimit: env.JS_RUNNER_MEMORY_LIMIT, @@ -20,7 +25,15 @@ class ScriptRunner { } execute() { - const result = this.vm.execute(this.code) + const result = tracer.trace( + "scriptRunner.execute", + { childOf: this.tracerSpan }, + () => { + const result = this.vm.execute(this.code) + return result + } + ) + this.tracerSpan.finish() return result } }