diff --git a/package.json b/package.json index 224842da..bf1e375e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "datadog-lambda-js", - "version": "10.122.0", + "version": "10.123.0", "description": "Lambda client library that supports hybrid tracing in node js", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -29,7 +29,7 @@ "@types/node": "^20.12.10", "@types/promise-retry": "^1.1.3", "@types/shimmer": "^1.0.1", - "dd-trace": "^5.40.0", + "dd-trace": "^5.41.1", "jest": "^27.0.1", "mock-fs": "4.14.0", "nock": "13.5.4", diff --git a/src/trace/cold-start-tracer.ts b/src/trace/cold-start-tracer.ts index 7f843408..8136cc03 100644 --- a/src/trace/cold-start-tracer.ts +++ b/src/trace/cold-start-tracer.ts @@ -78,7 +78,8 @@ export class ColdStartTracer { private traceTree(reqNode: RequireNode, parentSpan: SpanWrapper | undefined): void { if (reqNode.endTime - reqNode.startTime < this.minDuration) { - return; + console.log("[Would have been skipped]" + reqNode.filename); + // return; } if (this.ignoreLibs.includes(reqNode.id)) { @@ -102,11 +103,14 @@ export class ColdStartTracer { this.tracerWrapper.startSpan(this.coldStartSpanOperationName(reqNode.filename), options), {}, ); - if (reqNode.endTime - reqNode.startTime > this.minDuration) { - for (const node of reqNode.children || []) { - this.traceTree(node, newSpan); - } + if (reqNode.endTime - reqNode.startTime < 1) { + console.log(`Duration of ${reqNode.filename} boosted to 1ms`); + reqNode.endTime = reqNode.startTime + 1; // Ensure that spans have a duration of at least 1ms + } + for (const node of reqNode.children || []) { + this.traceTree(node, newSpan); } + newSpan?.finish(reqNode.endTime); } }