From bd1207a8910fdbd61d5921b2da85a178d4d8b43a Mon Sep 17 00:00:00 2001 From: Sohan Kshirsagar Date: Mon, 23 Mar 2026 17:12:25 -0700 Subject: [PATCH] feat: auto-mark app as ready on first inbound HTTP request --- src/core/TuskDrift.ts | 8 ++++++-- src/instrumentation/libraries/http/Instrumentation.ts | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/core/TuskDrift.ts b/src/core/TuskDrift.ts index 7071c097..795346e0 100644 --- a/src/core/TuskDrift.ts +++ b/src/core/TuskDrift.ts @@ -170,12 +170,16 @@ export class TuskDriftCore { } if (!status.enabled) { - logger.info(`Rust core path disabled at startup (env=${envDisplay}, reason=${status.reason}).`); + logger.info( + `Rust core path disabled at startup (env=${envDisplay}, reason=${status.reason}).`, + ); return; } if (status.bindingLoaded) { - logger.info(`Rust core path enabled at startup (env=${envDisplay}, reason=${status.reason}).`); + logger.info( + `Rust core path enabled at startup (env=${envDisplay}, reason=${status.reason}).`, + ); return; } diff --git a/src/instrumentation/libraries/http/Instrumentation.ts b/src/instrumentation/libraries/http/Instrumentation.ts index 7f1a520e..92dfc8a4 100644 --- a/src/instrumentation/libraries/http/Instrumentation.ts +++ b/src/instrumentation/libraries/http/Instrumentation.ts @@ -1365,7 +1365,10 @@ export class HttpInstrumentation extends TdInstrumentationBase { return (originalEmit: Function) => { return function (this: Server, eventName: string, ...args: any[]) { if (eventName === "request") { - // Sample as soon as we can to avoid additional overhead if this request is not sampled + if (!self.tuskDrift.isAppReady()) { + self.tuskDrift.markAppAsReady(); + } + if (self.mode === TuskDriftMode.RECORD) { if ( !shouldSample({