@rootcat/node 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/README.md +88 -7
- package/dist/attach.d.ts +1 -0
- package/dist/attach.js +24 -0
- package/dist/attach.js.map +1 -0
- package/dist/coexist.d.ts +183 -0
- package/dist/coexist.js +587 -0
- package/dist/coexist.js.map +1 -0
- package/dist/drizzle.js +4 -1
- package/dist/drizzle.js.map +1 -1
- package/dist/esm.mjs +32 -16
- package/dist/esmhook.d.ts +42 -2
- package/dist/esmhook.js +84 -10
- package/dist/esmhook.js.map +1 -1
- package/dist/iitm-hook.mjs +83 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +11 -0
- package/dist/keys.js +19 -1
- package/dist/keys.js.map +1 -1
- package/dist/pg.js +8 -3
- package/dist/pg.js.map +1 -1
- package/dist/pgpool.d.ts +7 -0
- package/dist/pgpool.js +19 -5
- package/dist/pgpool.js.map +1 -1
- package/dist/postgresjs.d.ts +27 -0
- package/dist/postgresjs.js +131 -3
- package/dist/postgresjs.js.map +1 -1
- package/dist/privacy.d.ts +3 -3
- package/dist/privacy.js +16 -2
- package/dist/privacy.js.map +1 -1
- package/dist/processor.d.ts +106 -3
- package/dist/processor.js +278 -36
- package/dist/processor.js.map +1 -1
- package/dist/sampler.d.ts +18 -0
- package/dist/sampler.js +50 -1
- package/dist/sampler.js.map +1 -1
- package/dist/sdk.d.ts +43 -2
- package/dist/sdk.js +333 -32
- package/dist/sdk.js.map +1 -1
- package/package.json +10 -3
package/dist/sdk.js
CHANGED
|
@@ -39,6 +39,8 @@ exports.curatedInstrumentations = curatedInstrumentations;
|
|
|
39
39
|
exports.prismaInstrumentation = prismaInstrumentation;
|
|
40
40
|
exports.current = current;
|
|
41
41
|
exports.start = start;
|
|
42
|
+
exports.rootcatSpanProcessors = rootcatSpanProcessors;
|
|
43
|
+
exports.startAlongside = startAlongside;
|
|
42
44
|
exports.otlpExporter = otlpExporter;
|
|
43
45
|
// The SDK: one tracer provider with the call-site processor and a batching
|
|
44
46
|
// OTLP/HTTP (protobuf) exporter to the host agent, the curated
|
|
@@ -59,6 +61,7 @@ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
|
59
61
|
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
60
62
|
const node_module_1 = require("node:module");
|
|
61
63
|
const path = __importStar(require("node:path"));
|
|
64
|
+
const coexist_js_1 = require("./coexist.js");
|
|
62
65
|
const config_js_1 = require("./config.js");
|
|
63
66
|
const drizzle_js_1 = require("./drizzle.js");
|
|
64
67
|
const esmhook_js_1 = require("./esmhook.js");
|
|
@@ -109,14 +112,16 @@ function redisStatement(command, args) {
|
|
|
109
112
|
* curatedInstrumentations builds the instrumentation set the config
|
|
110
113
|
* allows; sampling is the call-site gate they share with the processor.
|
|
111
114
|
*/
|
|
112
|
-
function curatedInstrumentations(config, sampling = new processor_js_1.CallSiteSampling(config.callsiteSample, config.sampleRatio)) {
|
|
115
|
+
function curatedInstrumentations(config, sampling = new processor_js_1.CallSiteSampling(config.callsiteSample, config.sampleRatio), beside = false, http = true) {
|
|
113
116
|
const want = (name) => !config.disabled.has(name);
|
|
114
117
|
const list = [];
|
|
115
|
-
if (want('http')) {
|
|
118
|
+
if (http && want('http')) {
|
|
116
119
|
list.push(new instrumentation_http_1.HttpInstrumentation({}));
|
|
117
120
|
}
|
|
118
121
|
if (want('undici')) {
|
|
119
|
-
|
|
122
|
+
// Beside Sentry, whose fetch instrumentation propagates first, the
|
|
123
|
+
// instrumentation adds no second set of headers (see propagatedOnce).
|
|
124
|
+
list.push(beside ? (0, coexist_js_1.propagatedOnce)(new instrumentation_undici_1.UndiciInstrumentation({})) : new instrumentation_undici_1.UndiciInstrumentation({}));
|
|
120
125
|
}
|
|
121
126
|
if (want('pg')) {
|
|
122
127
|
list.push(new pg_js_1.PgInstrumentation({ sampling, depth: config.callsiteDepth }));
|
|
@@ -134,11 +139,14 @@ function curatedInstrumentations(config, sampling = new processor_js_1.CallSiteS
|
|
|
134
139
|
if (want('mongodb')) {
|
|
135
140
|
list.push(new instrumentation_mongodb_1.MongoDBInstrumentation({ enhancedDatabaseReporting: false }));
|
|
136
141
|
}
|
|
142
|
+
// Redis commands are traced inside a traced operation only: a queue
|
|
143
|
+
// (BullMQ) polls Redis all the time outside any, which would otherwise
|
|
144
|
+
// be a trace per poll.
|
|
137
145
|
if (want('ioredis')) {
|
|
138
|
-
list.push(new instrumentation_ioredis_1.IORedisInstrumentation({ dbStatementSerializer: redisStatement }));
|
|
146
|
+
list.push(new instrumentation_ioredis_1.IORedisInstrumentation({ dbStatementSerializer: redisStatement, requireParentSpan: true }));
|
|
139
147
|
}
|
|
140
148
|
if (want('redis')) {
|
|
141
|
-
list.push(new instrumentation_redis_1.RedisInstrumentation({ dbStatementSerializer: redisStatement }));
|
|
149
|
+
list.push(new instrumentation_redis_1.RedisInstrumentation({ dbStatementSerializer: redisStatement, requireParentSpan: true }));
|
|
142
150
|
}
|
|
143
151
|
if (want('prisma')) {
|
|
144
152
|
const prisma = prismaInstrumentation(config.cwd);
|
|
@@ -146,7 +154,8 @@ function curatedInstrumentations(config, sampling = new processor_js_1.CallSiteS
|
|
|
146
154
|
list.push(prisma);
|
|
147
155
|
}
|
|
148
156
|
}
|
|
149
|
-
|
|
157
|
+
// No wrapper of another SDK is ever removed; beside one, none is wrapped over.
|
|
158
|
+
return list.map((instrumentation) => (0, coexist_js_1.guardWrappers)(instrumentation, beside));
|
|
150
159
|
}
|
|
151
160
|
/**
|
|
152
161
|
* prismaInstrumentation loads @prisma/instrumentation from the application
|
|
@@ -184,6 +193,9 @@ function start(options = {}) {
|
|
|
184
193
|
}
|
|
185
194
|
try {
|
|
186
195
|
const started = startOnce(options);
|
|
196
|
+
if (started === notYet) {
|
|
197
|
+
return undefined; // a later call, after Sentry.init, may start
|
|
198
|
+
}
|
|
187
199
|
holder[startedKey] = started ?? null;
|
|
188
200
|
return started;
|
|
189
201
|
}
|
|
@@ -193,26 +205,53 @@ function start(options = {}) {
|
|
|
193
205
|
return undefined;
|
|
194
206
|
}
|
|
195
207
|
}
|
|
208
|
+
/** notYet is startOnce's answer when a later call (after Sentry.init) may start. */
|
|
209
|
+
const notYet = Symbol('rootcat.notYet');
|
|
196
210
|
function startOnce(options) {
|
|
197
211
|
const config = (0, config_js_1.readConfig)(options.env ?? process.env, options.cwd ?? process.cwd(), () => (0, intake_js_1.discoverIntake)());
|
|
198
212
|
if (!config.enabled) {
|
|
199
213
|
return undefined;
|
|
200
214
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
// registered
|
|
204
|
-
//
|
|
205
|
-
|
|
206
|
-
|
|
215
|
+
const existing = (0, coexist_js_1.existingSetup)();
|
|
216
|
+
if (existing?.registered) {
|
|
217
|
+
// Another tracer registered the global provider and context manager:
|
|
218
|
+
// the package registers neither. Beside it when it records nothing,
|
|
219
|
+
// inside it (through rootcatSpanProcessors()) when it traces.
|
|
220
|
+
if (options.late) {
|
|
221
|
+
process.stderr.write('rootcat: startAlongside() ran before the tracer was set up; started a tick later, so modules loaded before then may be untraced (call startAlongside() after Sentry.init)\n');
|
|
222
|
+
}
|
|
223
|
+
return existing.tracing ? startInside(config, options, existing) : startBeside(config, options, existing);
|
|
224
|
+
}
|
|
225
|
+
if (existing) {
|
|
226
|
+
// A Sentry client without a registered provider: Sentry.init ran with
|
|
227
|
+
// skipOpenTelemetrySetup, and the application sets up OpenTelemetry
|
|
228
|
+
// itself (with Sentry's context manager), which must come first.
|
|
229
|
+
process.stderr.write('rootcat: Sentry was initialised without its OpenTelemetry setup (skipOpenTelemetrySetup) and no provider is registered yet; @rootcat/node does not start\n');
|
|
230
|
+
return notYet;
|
|
231
|
+
}
|
|
232
|
+
const dependency = (0, coexist_js_1.tracerDependency)(config.cwd);
|
|
233
|
+
if (dependency && !options.alongside) {
|
|
234
|
+
// Started before that tracer (the import line first, NODE_OPTIONS),
|
|
235
|
+
// the package would take the global provider and context manager from
|
|
236
|
+
// it, and Sentry's scopes (request isolation) depend on its own.
|
|
237
|
+
process.stderr.write(`rootcat: this application uses ${dependency}, which is not initialised yet; call startAlongside() from @rootcat/node/attach after it initialises (see "Alongside another tracer" in the README)\n`);
|
|
238
|
+
return notYet;
|
|
239
|
+
}
|
|
240
|
+
if (dependency) {
|
|
241
|
+
// startAlongside() before the tracer it is meant to run alongside
|
|
242
|
+
// (called above Sentry.init, say). Registering anything globally now
|
|
243
|
+
// would take the context manager from Sentry and break its request
|
|
244
|
+
// isolation. The package starts beside it at once, which registers
|
|
245
|
+
// nothing globally and patches the drivers before the application
|
|
246
|
+
// loads them, and settles once the current module has run: beside
|
|
247
|
+
// Sentry for errors only it stays; otherwise it undoes itself and
|
|
248
|
+
// starts inside a tracing Sentry, or not at all.
|
|
249
|
+
const provisional = startBeside(config, options, { kind: 'sentry', registered: false, tracing: false, debug: false, processors: undefined }, true);
|
|
250
|
+
setImmediate(() => settle(provisional, options)).unref();
|
|
251
|
+
return provisional;
|
|
207
252
|
}
|
|
208
253
|
api_1.diag.setLogger(config.debug ? new api_1.DiagConsoleLogger() : new QuietLogger(), config.debug ? api_1.DiagLogLevel.DEBUG : api_1.DiagLogLevel.WARN);
|
|
209
|
-
|
|
210
|
-
// detector runs, so no command line, environment or host facts travel.
|
|
211
|
-
const resource = (0, resources_1.defaultResource)().merge((0, resources_1.resourceFromAttributes)({
|
|
212
|
-
'service.name': config.serviceName,
|
|
213
|
-
...(config.serviceVersion !== '' ? { 'service.version': config.serviceVersion } : {}),
|
|
214
|
-
...(config.environment !== '' ? { 'deployment.environment.name': config.environment } : {}),
|
|
215
|
-
}));
|
|
254
|
+
const resource = rootcatResource(config);
|
|
216
255
|
const sampling = new processor_js_1.CallSiteSampling(config.callsiteSample, config.sampleRatio);
|
|
217
256
|
const callSites = new processor_js_1.CallSiteProcessor({ sampling, depth: config.callsiteDepth, statement: config.statement });
|
|
218
257
|
const spanProcessors = [callSites, ...(options.spanProcessors ?? [exportingProcessor(config, options)])];
|
|
@@ -220,24 +259,256 @@ function startOnce(options) {
|
|
|
220
259
|
provider.register();
|
|
221
260
|
// A capture from the processor starts below the SDK's startSpan, where
|
|
222
261
|
// the instrumentation that called it is.
|
|
223
|
-
callSites.above =
|
|
224
|
-
const esmHook = options
|
|
262
|
+
callSites.above = tracerStartSpan(provider);
|
|
263
|
+
const esmHook = esmHookFor(config, options);
|
|
264
|
+
const instrumentations = options.instrumentations ?? curatedInstrumentations(config, sampling);
|
|
265
|
+
(0, instrumentation_1.registerInstrumentations)({ tracerProvider: provider, instrumentations });
|
|
266
|
+
patchBuiltins();
|
|
267
|
+
const shutdown = () => provider.shutdown().catch(() => undefined);
|
|
268
|
+
const detach = options.hooks !== false ? installHooks(provider) : () => undefined;
|
|
269
|
+
say(config, `tracing ${config.serviceName} to ${config.url} (traces ${config.sampleRatio}, call sites 1 in ${config.callsiteSample}; ES module hook ${esmHook})`);
|
|
270
|
+
return { config, mode: 'own', provider, callSites, esmHook, instrumentations, shutdown, detach };
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* settle decides, a tick after startAlongside() came before the tracer,
|
|
274
|
+
* what the provisional start beside it becomes: it stays beside a Sentry
|
|
275
|
+
* that set up OpenTelemetry for errors only; otherwise it is undone (its
|
|
276
|
+
* instrumentations disabled, which removes only the package's own
|
|
277
|
+
* wrappers, its provider shut down) and the package starts inside a
|
|
278
|
+
* tracing Sentry, or not at all. Each outcome is one line on stderr.
|
|
279
|
+
*/
|
|
280
|
+
function settle(provisional, options) {
|
|
281
|
+
try {
|
|
282
|
+
const existing = (0, coexist_js_1.existingSetup)();
|
|
283
|
+
if (existing?.registered && !existing.tracing) {
|
|
284
|
+
// Beside it is: the http instrumentation is made and goes in now.
|
|
285
|
+
if (deferredHttp.has(provisional) && provisional.provider) {
|
|
286
|
+
const http = (0, coexist_js_1.guardWrappers)(new instrumentation_http_1.HttpInstrumentation({}), true);
|
|
287
|
+
(0, instrumentation_1.registerInstrumentations)({ tracerProvider: provisional.provider, instrumentations: [http] });
|
|
288
|
+
provisional.instrumentations.push(http);
|
|
289
|
+
patchBuiltins();
|
|
290
|
+
}
|
|
291
|
+
process.stderr.write('rootcat: startAlongside() ran before Sentry.init; it registered nothing globally and runs beside Sentry (call startAlongside() after Sentry.init)\n');
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
for (const instrumentation of provisional.instrumentations) {
|
|
295
|
+
instrumentation.disable();
|
|
296
|
+
}
|
|
297
|
+
provisional.detach();
|
|
298
|
+
void provisional.shutdown();
|
|
299
|
+
processor_js_1.parentPolicy.transparentForeign = false;
|
|
300
|
+
holder[startedKey] = undefined;
|
|
301
|
+
if (existing?.registered) {
|
|
302
|
+
start({ ...options, late: true });
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
// Stopped: nothing of the package runs any more. The loader hook
|
|
306
|
+
// cannot be removed, so it passes every module through; a processor
|
|
307
|
+
// already given to a provider (rootcatSpanProcessors()) goes inert,
|
|
308
|
+
// and one asked for later is not made.
|
|
309
|
+
holder[startedKey] = null;
|
|
310
|
+
holder[stoppedKey] = true;
|
|
311
|
+
(0, esmhook_js_1.quietESMHook)();
|
|
312
|
+
holder[pendingKey]?.processor.stop();
|
|
313
|
+
process.stderr.write('rootcat: startAlongside() found Sentry not initialised, then or a tick later; @rootcat/node stopped: no spans, no processor, the loader hook idle (call startAlongside() after Sentry.init)\n');
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
// never reaches the application
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* startBeside runs the package's own provider beside a tracer that
|
|
321
|
+
* records nothing (Sentry for errors only): the same instrumentations,
|
|
322
|
+
* sampler decisions and processors as on its own, but the provider is
|
|
323
|
+
* not registered (the owner's stays the global one, with its context
|
|
324
|
+
* manager and propagator) and spans are recorded without the sampled flag
|
|
325
|
+
* (see RecordOnlySampler), so nothing the owner reads or sends changes.
|
|
326
|
+
* The owner's provider never sees these spans.
|
|
327
|
+
*/
|
|
328
|
+
function startBeside(config, options, existing, provisional = false) {
|
|
329
|
+
if (!existing.debug) {
|
|
330
|
+
// The owner sets the diagnostic logger only in its debug mode;
|
|
331
|
+
// otherwise the package's quiet one (the full-queue notice) takes the
|
|
332
|
+
// empty place.
|
|
333
|
+
api_1.diag.setLogger(config.debug ? new api_1.DiagConsoleLogger() : new QuietLogger(), config.debug ? api_1.DiagLogLevel.DEBUG : api_1.DiagLogLevel.WARN);
|
|
334
|
+
}
|
|
335
|
+
const resource = rootcatResource(config);
|
|
336
|
+
const sampling = new processor_js_1.CallSiteSampling(config.callsiteSample, config.sampleRatio);
|
|
337
|
+
const callSites = new processor_js_1.CallSiteProcessor({ sampling, depth: config.callsiteDepth, statement: config.statement, keepHostKeys: true });
|
|
338
|
+
const exporting = options.spanProcessors ?? [exportingProcessor(config, options)];
|
|
339
|
+
const spanProcessors = [new coexist_js_1.UrlSource(), callSites, ...exporting.map((processor) => new coexist_js_1.FlaggedExport(processor))];
|
|
340
|
+
processor_js_1.parentPolicy.transparentForeign = true;
|
|
341
|
+
const provider = new sdk_trace_node_1.NodeTracerProvider({ resource, spanProcessors, spanLimits: exports.spanLimits, sampler: options.sampler ?? new sampler_js_1.RecordOnlySampler(config.sampleRatio) });
|
|
342
|
+
callSites.above = tracerStartSpan(provider);
|
|
343
|
+
// Provisional (registered before Sentry's, so inside it): with
|
|
344
|
+
// import-in-the-middle copies apart, a module the package's hook marks
|
|
345
|
+
// would reach only the package's instrumentations, Sentry's (with
|
|
346
|
+
// tracing on) never: the hook then watches only Drizzle's query
|
|
347
|
+
// classes, which Sentry does not instrument.
|
|
348
|
+
const include = provisional && !(0, coexist_js_1.sentryLoaderShared)(config.cwd) ? esmhook_js_1.drizzleModules : undefined;
|
|
349
|
+
const esmHook = esmHookFor(config, options, esmhook_js_1.ownedModules, include);
|
|
350
|
+
// Provisional (before the tracer is set up): the http instrumentation
|
|
351
|
+
// is not even made until settle(). Made, it is enabled at once and
|
|
352
|
+
// falls back to the global provider, Sentry's once Sentry.init has
|
|
353
|
+
// run, and Sentry.init itself requires http: inside a tracing Sentry
|
|
354
|
+
// it would add a second span to every request and outgoing call.
|
|
355
|
+
const deferHttp = provisional && options.instrumentations === undefined && !config.disabled.has('http');
|
|
356
|
+
const now = options.instrumentations ?? curatedInstrumentations(config, sampling, true, !deferHttp);
|
|
357
|
+
(0, instrumentation_1.registerInstrumentations)({ tracerProvider: provider, instrumentations: now });
|
|
358
|
+
if (!provisional) {
|
|
359
|
+
patchBuiltins();
|
|
360
|
+
}
|
|
361
|
+
const shutdown = () => provider.shutdown().catch(() => undefined);
|
|
362
|
+
const detach = options.hooks !== false ? installHooks(provider) : () => undefined;
|
|
363
|
+
say(config, `tracing ${config.serviceName} to ${config.url} beside the ${existing.kind} tracer (which records nothing; traces ${config.sampleRatio}, call sites 1 in ${config.callsiteSample}; ES module hook ${esmHook})`);
|
|
364
|
+
const started = { config, mode: 'beside', provider, callSites, esmHook, instrumentations: now, shutdown, detach };
|
|
365
|
+
if (deferHttp) {
|
|
366
|
+
deferredHttp.add(started);
|
|
367
|
+
}
|
|
368
|
+
return started;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* startInside finishes the setup inside a tracer that records spans: the
|
|
372
|
+
* processor rootcatSpanProcessors() gave its provider receives its spans;
|
|
373
|
+
* here only the entry wrappers that carry call sites to them are
|
|
374
|
+
* registered (the owner instruments the libraries itself, so the package
|
|
375
|
+
* adds no span). Without the processor in the owner's provider, nothing
|
|
376
|
+
* starts. For an owner whose options cannot be read (not Sentry), the
|
|
377
|
+
* processor having been built is taken as given to it.
|
|
378
|
+
*/
|
|
379
|
+
function startInside(config, options, existing) {
|
|
380
|
+
const pending = holder[pendingKey];
|
|
381
|
+
if (!pending || existing.processors === false) {
|
|
382
|
+
process.stderr.write(existing.kind === 'sentry'
|
|
383
|
+
? 'rootcat: Sentry traces in this process (tracesSampleRate is set); its spans reach Rootcat only through Sentry.init({ openTelemetrySpanProcessors: rootcatSpanProcessors() }); @rootcat/node does not start\n'
|
|
384
|
+
: 'rootcat: another OpenTelemetry SDK is already registered in this process; its spans reach Rootcat only through its span processors (rootcatSpanProcessors() from @rootcat/node/attach); @rootcat/node does not start\n');
|
|
385
|
+
return undefined;
|
|
386
|
+
}
|
|
387
|
+
const { callSites, processor } = pending;
|
|
388
|
+
// The owner's tracer is the global one; a capture starts below its startSpan.
|
|
389
|
+
callSites.above = tracerStartSpan(api_1.trace.getTracerProvider());
|
|
390
|
+
const esmHook = esmHookFor(config, options, esmhook_js_1.drizzleModules);
|
|
391
|
+
const instrumentations = options.instrumentations ?? carryingInstrumentations(config, callSites);
|
|
392
|
+
(0, instrumentation_1.registerInstrumentations)({ instrumentations });
|
|
393
|
+
const shutdown = () => processor.shutdown().catch(() => undefined);
|
|
394
|
+
const detach = options.hooks !== false ? installHooks(processor) : () => undefined;
|
|
395
|
+
say(config, `tracing ${config.serviceName} to ${config.url} inside the ${existing.kind} tracer (its sample; traces ${config.sampleRatio} of it, call sites 1 in ${config.callsiteSample}; ES module hook ${esmHook})`);
|
|
396
|
+
return { config, mode: 'inside', provider: undefined, callSites, esmHook, instrumentations, shutdown, detach };
|
|
397
|
+
}
|
|
398
|
+
/** pendingKey holds rootcatSpanProcessors()'s result on globalThis. */
|
|
399
|
+
const pendingKey = Symbol.for('rootcat.node.providerProcessors');
|
|
400
|
+
/** stoppedKey marks a package that stopped (see settle). */
|
|
401
|
+
const stoppedKey = Symbol.for('rootcat.node.stopped');
|
|
402
|
+
/** deferredHttp marks a provisional start whose http instrumentation settle() makes. */
|
|
403
|
+
const deferredHttp = new WeakSet();
|
|
404
|
+
/**
|
|
405
|
+
* rootcatSpanProcessors returns the processor for another tracer's
|
|
406
|
+
* provider (Sentry.init's openTelemetrySpanProcessors, NodeSDK's
|
|
407
|
+
* spanProcessors): when that tracer records spans, it receives them and
|
|
408
|
+
* exports a copy of each (with its call site, under the privacy rules)
|
|
409
|
+
* to the host agent; the tracer's own spans and what it sends are
|
|
410
|
+
* unchanged. When the tracer records nothing (Sentry for errors only), it
|
|
411
|
+
* receives nothing and startAlongside() runs the package beside it
|
|
412
|
+
* instead. It never throws; disabled, it returns an empty list.
|
|
413
|
+
*/
|
|
414
|
+
function rootcatSpanProcessors(options = {}) {
|
|
415
|
+
try {
|
|
416
|
+
if (holder[stoppedKey] === true) {
|
|
417
|
+
return []; // the package stopped (see settle)
|
|
418
|
+
}
|
|
419
|
+
const existing = holder[pendingKey];
|
|
420
|
+
if (existing) {
|
|
421
|
+
return [existing.processor];
|
|
422
|
+
}
|
|
423
|
+
const config = (0, config_js_1.readConfig)(options.env ?? process.env, options.cwd ?? process.cwd(), () => (0, intake_js_1.discoverIntake)());
|
|
424
|
+
if (!config.enabled) {
|
|
425
|
+
return [];
|
|
426
|
+
}
|
|
427
|
+
// The owner decides which traces are recorded; the trace ratio applies
|
|
428
|
+
// at export (InProviderProcessor), so the entry wrappers never decide.
|
|
429
|
+
const sampling = new processor_js_1.CallSiteSampling(config.callsiteSample, 1);
|
|
430
|
+
const callSites = new processor_js_1.CallSiteProcessor({ sampling, depth: config.callsiteDepth, statement: config.statement, readOnly: true });
|
|
431
|
+
const exporting = options.spanProcessors ?? [exportingProcessor(config, options)];
|
|
432
|
+
const processor = new coexist_js_1.InProviderProcessor(callSites, exporting, rootcatResource(config), config.sampleRatio);
|
|
433
|
+
holder[pendingKey] = { config, callSites, processor };
|
|
434
|
+
return [processor];
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
438
|
+
process.stderr.write(`rootcat: no span processor: ${reason.slice(0, 200)}\n`);
|
|
439
|
+
return [];
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* startAlongside starts the package after another tracer set up
|
|
444
|
+
* OpenTelemetry (Sentry.init, an app's NodeSDK): beside it when it
|
|
445
|
+
* records nothing (Sentry for errors only, or disabled with enabled:
|
|
446
|
+
* false, which still sets up its OpenTelemetry), inside it when it
|
|
447
|
+
* records spans (with rootcatSpanProcessors() in its provider), and on
|
|
448
|
+
* its own when nothing was set up (Sentry not initialised here, no DSN):
|
|
449
|
+
* if a Sentry client appears right after, the order was wrong and stderr
|
|
450
|
+
* says so. It never throws.
|
|
451
|
+
*/
|
|
452
|
+
function startAlongside(options = {}) {
|
|
453
|
+
return start({ ...options, alongside: true });
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* carryingInstrumentations are the entry wrappers that only carry call
|
|
457
|
+
* sites, for another tracer's spans: the pg pool's and Drizzle's
|
|
458
|
+
* captures, and postgres.js's origins, given to the database span the
|
|
459
|
+
* tracer starts for each query.
|
|
460
|
+
*/
|
|
461
|
+
function carryingInstrumentations(config, callSites) {
|
|
462
|
+
const want = (name) => !config.disabled.has(name);
|
|
463
|
+
const sampling = callSites.sampling;
|
|
464
|
+
const list = [];
|
|
465
|
+
if (want('pg')) {
|
|
466
|
+
list.push(new pgpool_js_1.PgPoolEntryInstrumentation({ depth: config.callsiteDepth, sampling, connect: false }));
|
|
467
|
+
}
|
|
468
|
+
if (want('postgres')) {
|
|
469
|
+
list.push(new postgresjs_js_1.PostgresJsInstrumentation({
|
|
470
|
+
sampling,
|
|
471
|
+
spans: false,
|
|
472
|
+
onSite: (site) => {
|
|
473
|
+
const span = (0, coexist_js_1.activeDatabaseSpan)();
|
|
474
|
+
if (span) {
|
|
475
|
+
callSites.assign(span, site);
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
}));
|
|
479
|
+
}
|
|
480
|
+
if (want('drizzle')) {
|
|
481
|
+
list.push(new drizzle_js_1.DrizzleEntryInstrumentation({ depth: config.callsiteDepth, sampling }));
|
|
482
|
+
}
|
|
483
|
+
return list.map((instrumentation) => (0, coexist_js_1.guardWrappers)(instrumentation, false));
|
|
484
|
+
}
|
|
485
|
+
/** rootcatResource is the package's resource: the SDK's identity and the service's. */
|
|
486
|
+
function rootcatResource(config) {
|
|
487
|
+
// defaultResource is the SDK's own identity (telemetry.sdk.*); no
|
|
488
|
+
// detector runs, so no command line, environment or host facts travel.
|
|
489
|
+
return (0, resources_1.defaultResource)().merge((0, resources_1.resourceFromAttributes)({
|
|
490
|
+
'service.name': config.serviceName,
|
|
491
|
+
...(config.serviceVersion !== '' ? { 'service.version': config.serviceVersion } : {}),
|
|
492
|
+
...(config.environment !== '' ? { 'deployment.environment.name': config.environment } : {}),
|
|
493
|
+
}));
|
|
494
|
+
}
|
|
495
|
+
/** tracerStartSpan is the startSpan of a provider's tracers, where SDK frames end. */
|
|
496
|
+
function tracerStartSpan(provider) {
|
|
497
|
+
return Object.getPrototypeOf(provider.getTracer('@rootcat/node')).startSpan;
|
|
498
|
+
}
|
|
499
|
+
function esmHookFor(config, options, takeOver, include) {
|
|
500
|
+
return options.esmHook === false
|
|
225
501
|
? 'off'
|
|
226
502
|
: (0, esmhook_js_1.registerESMHook)((reason) => {
|
|
227
503
|
if (config.debug) {
|
|
228
504
|
process.stderr.write(`rootcat: ES module hook: ${reason.slice(0, 300)}\n`);
|
|
229
505
|
}
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const shutdown = () => provider.shutdown().catch(() => undefined);
|
|
234
|
-
if (options.hooks !== false) {
|
|
235
|
-
installHooks(provider);
|
|
236
|
-
}
|
|
506
|
+
}, takeOver, include);
|
|
507
|
+
}
|
|
508
|
+
function say(config, line) {
|
|
237
509
|
if (config.debug) {
|
|
238
|
-
process.stderr.write(`rootcat:
|
|
510
|
+
process.stderr.write(`rootcat: ${line}\n`);
|
|
239
511
|
}
|
|
240
|
-
return { config, provider, callSites, esmHook, instrumentations, shutdown };
|
|
241
512
|
}
|
|
242
513
|
/** otlpExporter builds the package's OTLP/HTTP protobuf exporter (see otlp.ts). */
|
|
243
514
|
function otlpExporter(url) {
|
|
@@ -278,9 +549,11 @@ function exportingProcessor(config, options) {
|
|
|
278
549
|
* spans of its last batch interval are lost.
|
|
279
550
|
*/
|
|
280
551
|
function installHooks(provider) {
|
|
281
|
-
|
|
552
|
+
const beforeExit = () => {
|
|
282
553
|
provider.forceFlush().catch(() => undefined);
|
|
283
|
-
}
|
|
554
|
+
};
|
|
555
|
+
process.once('beforeExit', beforeExit);
|
|
556
|
+
const installed = [];
|
|
284
557
|
for (const signal of ['SIGTERM', 'SIGINT']) {
|
|
285
558
|
const listener = () => {
|
|
286
559
|
const flush = Promise.race([provider.forceFlush(), delay(exports.signalFlushMillis)]).catch(() => undefined);
|
|
@@ -294,7 +567,14 @@ function installHooks(provider) {
|
|
|
294
567
|
});
|
|
295
568
|
};
|
|
296
569
|
process.on(signal, listener);
|
|
570
|
+
installed.push([signal, listener]);
|
|
297
571
|
}
|
|
572
|
+
return () => {
|
|
573
|
+
process.removeListener('beforeExit', beforeExit);
|
|
574
|
+
for (const [signal, listener] of installed) {
|
|
575
|
+
process.removeListener(signal, listener);
|
|
576
|
+
}
|
|
577
|
+
};
|
|
298
578
|
}
|
|
299
579
|
function delay(ms) {
|
|
300
580
|
return new Promise((resolve) => {
|
|
@@ -302,4 +582,25 @@ function delay(ms) {
|
|
|
302
582
|
timer.unref();
|
|
303
583
|
});
|
|
304
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* patchBuiltins requires node:http and node:https once the
|
|
587
|
+
* instrumentations are registered, so the CommonJS hook patches the
|
|
588
|
+
* builtin modules' shared exports (http.Server.prototype.emit,
|
|
589
|
+
* http.request) whatever loads them later. An ES module application
|
|
590
|
+
* imports them through the loader, where the package's hook does not
|
|
591
|
+
* wrap builtins: before, they were patched only when another SDK's hook
|
|
592
|
+
* wrapped node:http through the same import-in-the-middle copy (npm
|
|
593
|
+
* dedupes Sentry's and the package's), and not at all with copies apart
|
|
594
|
+
* (pnpm), so no server span was recorded.
|
|
595
|
+
*/
|
|
596
|
+
function patchBuiltins() {
|
|
597
|
+
try {
|
|
598
|
+
const load = (0, node_module_1.createRequire)(__filename);
|
|
599
|
+
load('http');
|
|
600
|
+
load('https');
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
// an instrumentation without them still records the rest
|
|
604
|
+
}
|
|
605
|
+
}
|
|
305
606
|
//# sourceMappingURL=sdk.js.map
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rootcat/node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Zero-code OpenTelemetry tracing for Node services that report to the Rootcat host agent, with the line of application code behind every database and HTTP client span.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
"default": "./dist/register.js"
|
|
17
17
|
},
|
|
18
18
|
"./esm": "./dist/esm.mjs",
|
|
19
|
+
"./attach": {
|
|
20
|
+
"types": "./dist/attach.d.ts",
|
|
21
|
+
"default": "./dist/attach.js"
|
|
22
|
+
},
|
|
19
23
|
"./sdk": {
|
|
20
24
|
"types": "./dist/index.d.ts",
|
|
21
25
|
"default": "./dist/index.js"
|
|
@@ -25,19 +29,22 @@
|
|
|
25
29
|
"files": [
|
|
26
30
|
"dist",
|
|
27
31
|
"README.md",
|
|
32
|
+
"CHANGELOG.md",
|
|
28
33
|
"LICENSE"
|
|
29
34
|
],
|
|
30
35
|
"engines": {
|
|
31
36
|
"node": ">=18.19.0"
|
|
32
37
|
},
|
|
33
38
|
"scripts": {
|
|
34
|
-
"build": "tsc -p tsconfig.json && node scripts/copy-esm.mjs",
|
|
39
|
+
"build": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.json && node scripts/copy-esm.mjs",
|
|
35
40
|
"build:fixtures": "tsc -p test/fixtures/ts/tsconfig.json && tsc -p test/fixtures/ts-inline/tsconfig.json",
|
|
36
41
|
"prepack": "npm run build",
|
|
37
|
-
"setup:next": "node scripts/setup-
|
|
42
|
+
"setup:next": "node scripts/setup-fixture.mjs next",
|
|
43
|
+
"setup:sentry": "node scripts/setup-fixture.mjs sentry && node scripts/setup-fixture.mjs sentry-v8 && node scripts/setup-fixture.mjs sentry-v9",
|
|
38
44
|
"pretest": "npm run build && npm run build:fixtures",
|
|
39
45
|
"test": "node --test --test-concurrency=1 test/*.test.mts",
|
|
40
46
|
"bench": "node --test test/bench.test.mts",
|
|
47
|
+
"bench:sentry": "node scripts/bench-sentry.mts",
|
|
41
48
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
42
49
|
},
|
|
43
50
|
"dependencies": {
|