@rootcat/node 0.0.0-stage → 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/LICENSE +202 -0
- package/README.md +294 -2
- package/dist/attach.d.ts +1 -0
- package/dist/attach.js +24 -0
- package/dist/attach.js.map +1 -0
- package/dist/callsite.d.ts +109 -0
- package/dist/callsite.js +565 -0
- package/dist/callsite.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/config.d.ts +75 -0
- package/dist/config.js +182 -0
- package/dist/config.js.map +1 -0
- package/dist/drizzle.d.ts +21 -0
- package/dist/drizzle.js +127 -0
- package/dist/drizzle.js.map +1 -0
- package/dist/esm.mjs +57 -0
- package/dist/esmhook.d.ts +52 -0
- package/dist/esmhook.js +158 -0
- package/dist/esmhook.js.map +1 -0
- package/dist/iitm-hook.mjs +83 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/intake.d.ts +40 -0
- package/dist/intake.js +164 -0
- package/dist/intake.js.map +1 -0
- package/dist/keys.d.ts +20 -0
- package/dist/keys.js +33 -0
- package/dist/keys.js.map +1 -0
- package/dist/notices.d.ts +2 -0
- package/dist/notices.js +21 -0
- package/dist/notices.js.map +1 -0
- package/dist/otlp.d.ts +75 -0
- package/dist/otlp.js +449 -0
- package/dist/otlp.js.map +1 -0
- package/dist/pg.d.ts +16 -0
- package/dist/pg.js +170 -0
- package/dist/pg.js.map +1 -0
- package/dist/pgpool.d.ts +20 -0
- package/dist/pgpool.js +99 -0
- package/dist/pgpool.js.map +1 -0
- package/dist/postgresjs.d.ts +60 -0
- package/dist/postgresjs.js +400 -0
- package/dist/postgresjs.js.map +1 -0
- package/dist/privacy.d.ts +38 -0
- package/dist/privacy.js +161 -0
- package/dist/privacy.js.map +1 -0
- package/dist/processor.d.ts +197 -0
- package/dist/processor.js +494 -0
- package/dist/processor.js.map +1 -0
- package/dist/register.d.ts +1 -0
- package/dist/register.js +12 -0
- package/dist/register.js.map +1 -0
- package/dist/sampler.d.ts +30 -0
- package/dist/sampler.js +101 -0
- package/dist/sampler.js.map +1 -0
- package/dist/sdk.d.ts +129 -0
- package/dist/sdk.js +606 -0
- package/dist/sdk.js.map +1 -0
- package/package.json +72 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/register.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// The --require entry: starts tracing as a side effect of being loaded.
|
|
4
|
+
// NODE_OPTIONS="--require @rootcat/node"
|
|
5
|
+
// The module loader hooks thread runs the same preloads as the main
|
|
6
|
+
// thread; tracing belongs to the main thread only.
|
|
7
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
8
|
+
const sdk_js_1 = require("./sdk.js");
|
|
9
|
+
if (node_worker_threads_1.isMainThread) {
|
|
10
|
+
(0, sdk_js_1.start)();
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;AAAA,wEAAwE;AACxE,2CAA2C;AAC3C,oEAAoE;AACpE,mDAAmD;AACnD,6DAAmD;AACnD,qCAAiC;AAEjC,IAAI,kCAAY,EAAE,CAAC;IACjB,IAAA,cAAK,GAAE,CAAC;AACV,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Attributes, type Context, type Link, type SpanKind } from '@opentelemetry/api';
|
|
2
|
+
import { type Sampler, type SamplingResult } from '@opentelemetry/sdk-trace-base';
|
|
3
|
+
/** RootcatSampler is the ratio sampler that honours a wrapper's root decision. */
|
|
4
|
+
export declare class RootcatSampler implements Sampler {
|
|
5
|
+
readonly ratio: number;
|
|
6
|
+
private readonly inner;
|
|
7
|
+
constructor(ratio: number);
|
|
8
|
+
shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
|
|
9
|
+
toString(): string;
|
|
10
|
+
}
|
|
11
|
+
/** rootcatSampler builds the sampler for a ratio between 0 and 1. */
|
|
12
|
+
export declare function rootcatSampler(ratio: number): Sampler;
|
|
13
|
+
/**
|
|
14
|
+
* RecordOnlySampler is the sampler beside an errors-only Sentry. It takes
|
|
15
|
+
* the same decisions as RootcatSampler but records a span without setting
|
|
16
|
+
* its sampled flag, and a child follows whether its parent is recorded.
|
|
17
|
+
* Sentry reads the active span to fill the sentry-trace and baggage
|
|
18
|
+
* headers of outgoing requests and the trace context of its error events:
|
|
19
|
+
* with the flag unset, those say what they said before Rootcat was added
|
|
20
|
+
* (no sampling decision), so a downstream service that traces with Sentry
|
|
21
|
+
* does not start keeping every trace this one sends it. The package's
|
|
22
|
+
* exporter flags what it sends (see view in processor.ts).
|
|
23
|
+
*/
|
|
24
|
+
export declare class RecordOnlySampler implements Sampler {
|
|
25
|
+
readonly ratio: number;
|
|
26
|
+
private readonly inner;
|
|
27
|
+
constructor(ratio: number);
|
|
28
|
+
shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
|
|
29
|
+
toString(): string;
|
|
30
|
+
}
|
package/dist/sampler.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecordOnlySampler = exports.RootcatSampler = void 0;
|
|
4
|
+
exports.rootcatSampler = rootcatSampler;
|
|
5
|
+
// The sampler: parent-based, with a trace-id ratio at the root
|
|
6
|
+
// (ROOTCAT_SAMPLE, 1 by default) and for a parent from outside the
|
|
7
|
+
// process, whose sampled flag is not trusted. A root span whose context carries a
|
|
8
|
+
// decision an entry wrapper already made (see CallSiteSampling.carry)
|
|
9
|
+
// follows it, so the wrapper's capture and the span's fate agree. A span
|
|
10
|
+
// the sampler refuses is never recording: no processor runs for it.
|
|
11
|
+
const api_1 = require("@opentelemetry/api");
|
|
12
|
+
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
13
|
+
const core_1 = require("@opentelemetry/core");
|
|
14
|
+
const keys_js_1 = require("./keys.js");
|
|
15
|
+
const processor_js_1 = require("./processor.js");
|
|
16
|
+
const sampled = { decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED };
|
|
17
|
+
const dropped = { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD };
|
|
18
|
+
/** RootcatSampler is the ratio sampler that honours a wrapper's root decision. */
|
|
19
|
+
class RootcatSampler {
|
|
20
|
+
ratio;
|
|
21
|
+
inner;
|
|
22
|
+
constructor(ratio) {
|
|
23
|
+
this.ratio = ratio;
|
|
24
|
+
// A parent from outside the process (an incoming traceparent) does not
|
|
25
|
+
// decide: anyone on the internet could otherwise force full tracing of
|
|
26
|
+
// their requests with the sampled flag, or hide them with 00. The
|
|
27
|
+
// ratio decides on the trace id, which the request keeps, so the trace
|
|
28
|
+
// still joins its caller's.
|
|
29
|
+
const root = ratio >= 1 ? new sdk_trace_base_1.AlwaysOnSampler() : new sdk_trace_base_1.TraceIdRatioBasedSampler(ratio);
|
|
30
|
+
this.inner = new sdk_trace_base_1.ParentBasedSampler({ root, remoteParentSampled: root, remoteParentNotSampled: root });
|
|
31
|
+
}
|
|
32
|
+
shouldSample(context, traceId, spanName, spanKind, attributes, links) {
|
|
33
|
+
const parent = api_1.trace.getSpanContext(context);
|
|
34
|
+
if (!parent || !api_1.trace.isSpanContextValid(parent) || parent.isRemote) {
|
|
35
|
+
const decided = context.getValue(keys_js_1.rootDecisionKey);
|
|
36
|
+
if (decided === true) {
|
|
37
|
+
return sampled;
|
|
38
|
+
}
|
|
39
|
+
if (decided === false) {
|
|
40
|
+
return dropped;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return this.inner.shouldSample(context, traceId, spanName, spanKind, attributes, links);
|
|
44
|
+
}
|
|
45
|
+
toString() {
|
|
46
|
+
return `RootcatSampler(${this.ratio})`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.RootcatSampler = RootcatSampler;
|
|
50
|
+
/** rootcatSampler builds the sampler for a ratio between 0 and 1. */
|
|
51
|
+
function rootcatSampler(ratio) {
|
|
52
|
+
return new RootcatSampler(ratio);
|
|
53
|
+
}
|
|
54
|
+
const recorded = { decision: sdk_trace_base_1.SamplingDecision.RECORD };
|
|
55
|
+
/**
|
|
56
|
+
* markedDropped is a refusal the package's own: the unrecorded span
|
|
57
|
+
* carries droppedMark in its trace state, so its children are refused too
|
|
58
|
+
* rather than passed through as another SDK's.
|
|
59
|
+
*/
|
|
60
|
+
const markedDropped = { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD, traceState: new core_1.TraceState().set(processor_js_1.droppedMark, '0') };
|
|
61
|
+
/**
|
|
62
|
+
* RecordOnlySampler is the sampler beside an errors-only Sentry. It takes
|
|
63
|
+
* the same decisions as RootcatSampler but records a span without setting
|
|
64
|
+
* its sampled flag, and a child follows whether its parent is recorded.
|
|
65
|
+
* Sentry reads the active span to fill the sentry-trace and baggage
|
|
66
|
+
* headers of outgoing requests and the trace context of its error events:
|
|
67
|
+
* with the flag unset, those say what they said before Rootcat was added
|
|
68
|
+
* (no sampling decision), so a downstream service that traces with Sentry
|
|
69
|
+
* does not start keeping every trace this one sends it. The package's
|
|
70
|
+
* exporter flags what it sends (see view in processor.ts).
|
|
71
|
+
*/
|
|
72
|
+
class RecordOnlySampler {
|
|
73
|
+
ratio;
|
|
74
|
+
inner;
|
|
75
|
+
constructor(ratio) {
|
|
76
|
+
this.ratio = ratio;
|
|
77
|
+
this.inner = new RootcatSampler(ratio);
|
|
78
|
+
}
|
|
79
|
+
shouldSample(context, traceId, spanName, spanKind, attributes, links) {
|
|
80
|
+
// localParent passes through another SDK's unrecorded span (Sentry's,
|
|
81
|
+
// Next.js's through Sentry's provider): the span is then decided as a
|
|
82
|
+
// root, by the ratio on its trace id.
|
|
83
|
+
const parent = (0, processor_js_1.localParent)(context);
|
|
84
|
+
if (parent) {
|
|
85
|
+
return parent.isRecording() || (parent.spanContext().traceFlags & api_1.TraceFlags.SAMPLED) !== 0 ? recorded : markedDropped;
|
|
86
|
+
}
|
|
87
|
+
// A remote parent goes to the inner sampler as it is (it decides by
|
|
88
|
+
// the ratio, ignoring its flag); a passed-through one is removed.
|
|
89
|
+
const asRoot = api_1.trace.getSpanContext(context)?.isRemote ? context : api_1.trace.deleteSpan(context);
|
|
90
|
+
const result = this.inner.shouldSample(asRoot, traceId, spanName, spanKind, attributes, links);
|
|
91
|
+
if (result.decision === sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED) {
|
|
92
|
+
return { ...result, decision: sdk_trace_base_1.SamplingDecision.RECORD };
|
|
93
|
+
}
|
|
94
|
+
return result.decision === sdk_trace_base_1.SamplingDecision.NOT_RECORD ? markedDropped : result;
|
|
95
|
+
}
|
|
96
|
+
toString() {
|
|
97
|
+
return `RecordOnlySampler(${this.ratio})`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.RecordOnlySampler = RecordOnlySampler;
|
|
101
|
+
//# sourceMappingURL=sampler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampler.js","sourceRoot":"","sources":["../src/sampler.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { type Instrumentation } from '@opentelemetry/instrumentation';
|
|
2
|
+
import { type Sampler, type SpanExporter, type SpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
3
|
+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
4
|
+
import { type Config } from './config.js';
|
|
5
|
+
import { type ESMHook } from './esmhook.js';
|
|
6
|
+
import { CallSiteProcessor, CallSiteSampling } from './processor.js';
|
|
7
|
+
/**
|
|
8
|
+
* Exporter bounds, fixed: sized for a loopback intake that takes 1 MiB
|
|
9
|
+
* per request (512 protobuf spans are a few hundred KiB) and four
|
|
10
|
+
* uploads per sender. The queue holds 4096 ended spans; past that the
|
|
11
|
+
* newest are dropped, and the drop is reported once on stderr.
|
|
12
|
+
*/
|
|
13
|
+
export declare const exporterTimeoutMillis = 2000;
|
|
14
|
+
export declare const exporterConcurrency = 2;
|
|
15
|
+
export declare const batchMaxQueueSize = 4096;
|
|
16
|
+
export declare const batchMaxExportSize = 512;
|
|
17
|
+
export declare const batchDelayMillis = 10000;
|
|
18
|
+
/**
|
|
19
|
+
* spanLimits bound every span, so a batch of them can be split into
|
|
20
|
+
* requests the agent accepts and nothing the application records (a
|
|
21
|
+
* statement from any driver, an exception stack) grows without bound:
|
|
22
|
+
* each attribute value at most 4 KiB, 64 attributes, 8 events of 8
|
|
23
|
+
* attributes. The largest possible span then encodes to about half a MiB.
|
|
24
|
+
*/
|
|
25
|
+
export declare const spanLimits: {
|
|
26
|
+
attributeValueLengthLimit: number;
|
|
27
|
+
attributeCountLimit: number;
|
|
28
|
+
eventCountLimit: number;
|
|
29
|
+
attributePerEventCountLimit: number;
|
|
30
|
+
linkCountLimit: number;
|
|
31
|
+
attributePerLinkCountLimit: number;
|
|
32
|
+
};
|
|
33
|
+
/** signalFlushMillis bounds the flush attempted on SIGTERM and SIGINT. */
|
|
34
|
+
export declare const signalFlushMillis = 2000;
|
|
35
|
+
/**
|
|
36
|
+
* Mode says where the package's spans come from: its own provider,
|
|
37
|
+
* registered globally ('own'); its own provider beside another tracer
|
|
38
|
+
* that records nothing (Sentry for errors only), not registered
|
|
39
|
+
* ('beside'); or that tracer's provider, when it records spans
|
|
40
|
+
* ('inside').
|
|
41
|
+
*/
|
|
42
|
+
export type Mode = 'own' | 'beside' | 'inside';
|
|
43
|
+
/** Started is a running SDK. */
|
|
44
|
+
export interface Started {
|
|
45
|
+
config: Config;
|
|
46
|
+
mode: Mode;
|
|
47
|
+
/** provider is the package's own provider; undefined inside another tracer's. */
|
|
48
|
+
provider: NodeTracerProvider | undefined;
|
|
49
|
+
callSites: CallSiteProcessor;
|
|
50
|
+
/** esmHook says whether the module loader hook is registered. */
|
|
51
|
+
esmHook: ESMHook;
|
|
52
|
+
/** instrumentations are the ones registered (the benchmark disables and enables them). */
|
|
53
|
+
instrumentations: Instrumentation[];
|
|
54
|
+
/** shutdown flushes and stops; it resolves within the exporter timeout. */
|
|
55
|
+
shutdown(): Promise<void>;
|
|
56
|
+
/** detach removes the exit and signal handlers the start installed. */
|
|
57
|
+
detach(): void;
|
|
58
|
+
}
|
|
59
|
+
/** StartOptions override the environment (tests). */
|
|
60
|
+
export interface StartOptions {
|
|
61
|
+
env?: NodeJS.ProcessEnv;
|
|
62
|
+
cwd?: string;
|
|
63
|
+
/** spanProcessors replace the exporting processor (tests pass an in-memory one). */
|
|
64
|
+
spanProcessors?: SpanProcessor[];
|
|
65
|
+
/** exporter replaces the OTLP exporter behind the batching processor. */
|
|
66
|
+
exporter?: SpanExporter;
|
|
67
|
+
/** sampler replaces the default sampler. */
|
|
68
|
+
sampler?: Sampler;
|
|
69
|
+
/** esmHook false skips the module loader hook (the benchmark measures its cost). */
|
|
70
|
+
esmHook?: boolean;
|
|
71
|
+
/** instrumentations replace the curated set (tests). */
|
|
72
|
+
instrumentations?: Instrumentation[];
|
|
73
|
+
/** hooks installs the exit and signal handlers; default true. */
|
|
74
|
+
hooks?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* alongside says the caller is startAlongside(), which a refusal to
|
|
77
|
+
* start names in its message.
|
|
78
|
+
*/
|
|
79
|
+
alongside?: boolean;
|
|
80
|
+
/** late marks startAlongside()'s second look, a tick after a call that came before the tracer. */
|
|
81
|
+
late?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/** instrumentationNames are the names ROOTCAT_DISABLE accepts. */
|
|
84
|
+
export declare const instrumentationNames: readonly ["http", "undici", "pg", "postgres", "drizzle", "mysql2", "mongodb", "ioredis", "redis", "prisma"];
|
|
85
|
+
/** redisStatement records the command name and the argument count only. */
|
|
86
|
+
export declare function redisStatement(command: string, args: unknown[]): string;
|
|
87
|
+
/**
|
|
88
|
+
* curatedInstrumentations builds the instrumentation set the config
|
|
89
|
+
* allows; sampling is the call-site gate they share with the processor.
|
|
90
|
+
*/
|
|
91
|
+
export declare function curatedInstrumentations(config: Config, sampling?: CallSiteSampling, beside?: boolean, http?: boolean): Instrumentation[];
|
|
92
|
+
/**
|
|
93
|
+
* prismaInstrumentation loads @prisma/instrumentation from the application
|
|
94
|
+
* when the application has it (Prisma ships it beside its client, and its
|
|
95
|
+
* version must match the client's), and nothing otherwise.
|
|
96
|
+
*/
|
|
97
|
+
export declare function prismaInstrumentation(cwd: string): Instrumentation | undefined;
|
|
98
|
+
/** current returns the running SDK, if any. */
|
|
99
|
+
export declare function current(): Started | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* start reads the configuration and starts the SDK once per process. A
|
|
102
|
+
* later call (the import line and NODE_OPTIONS both, or a second copy of
|
|
103
|
+
* the package) returns the first result. It never throws.
|
|
104
|
+
*/
|
|
105
|
+
export declare function start(options?: StartOptions): Started | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* rootcatSpanProcessors returns the processor for another tracer's
|
|
108
|
+
* provider (Sentry.init's openTelemetrySpanProcessors, NodeSDK's
|
|
109
|
+
* spanProcessors): when that tracer records spans, it receives them and
|
|
110
|
+
* exports a copy of each (with its call site, under the privacy rules)
|
|
111
|
+
* to the host agent; the tracer's own spans and what it sends are
|
|
112
|
+
* unchanged. When the tracer records nothing (Sentry for errors only), it
|
|
113
|
+
* receives nothing and startAlongside() runs the package beside it
|
|
114
|
+
* instead. It never throws; disabled, it returns an empty list.
|
|
115
|
+
*/
|
|
116
|
+
export declare function rootcatSpanProcessors(options?: StartOptions): SpanProcessor[];
|
|
117
|
+
/**
|
|
118
|
+
* startAlongside starts the package after another tracer set up
|
|
119
|
+
* OpenTelemetry (Sentry.init, an app's NodeSDK): beside it when it
|
|
120
|
+
* records nothing (Sentry for errors only, or disabled with enabled:
|
|
121
|
+
* false, which still sets up its OpenTelemetry), inside it when it
|
|
122
|
+
* records spans (with rootcatSpanProcessors() in its provider), and on
|
|
123
|
+
* its own when nothing was set up (Sentry not initialised here, no DSN):
|
|
124
|
+
* if a Sentry client appears right after, the order was wrong and stderr
|
|
125
|
+
* says so. It never throws.
|
|
126
|
+
*/
|
|
127
|
+
export declare function startAlongside(options?: StartOptions): Started | undefined;
|
|
128
|
+
/** otlpExporter builds the package's OTLP/HTTP protobuf exporter (see otlp.ts). */
|
|
129
|
+
export declare function otlpExporter(url: string): SpanExporter;
|