@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.
@@ -21,6 +21,7 @@ exports.PostgresJsInstrumentation = void 0;
21
21
  const api_1 = require("@opentelemetry/api");
22
22
  const instrumentation_1 = require("@opentelemetry/instrumentation");
23
23
  const callsite_js_1 = require("./callsite.js");
24
+ const keys_js_1 = require("./keys.js");
24
25
  const privacy_js_1 = require("./privacy.js");
25
26
  const processor_js_1 = require("./processor.js");
26
27
  /** Bounds. */
@@ -29,14 +30,22 @@ const supportedVersions = ['>=3.0.0 <4'];
29
30
  const rootcatSpan = Symbol('rootcat.span');
30
31
  const rootcatWrapped = Symbol('rootcat.wrapped');
31
32
  const rootcatOptions = Symbol('rootcat.options');
33
+ /** ownFactories are the package's wrappers of the postgres() factory. */
34
+ const ownFactories = new WeakSet();
32
35
  /** probe is a template that is never executed; it only yields the class. */
33
36
  const probe = Object.freeze(Object.assign(['select 1'], { raw: Object.freeze(['select 1']) }));
34
37
  class PostgresJsInstrumentation extends instrumentation_1.InstrumentationBase {
35
38
  patched = new WeakSet();
36
39
  /** origins remembers the parsed call site per template, null for none. */
37
40
  origins = new WeakMap();
41
+ /** recording maps a sql function to its site-recording proxy (spans false). */
42
+ recording = new WeakMap();
43
+ /** templateSites remembers the captured call site per template (spans false). */
44
+ templateSites = new WeakMap();
45
+ /** querySites holds the call site captured for a query until it is handled (spans false). */
46
+ querySites = new WeakMap();
38
47
  constructor(options) {
39
- super('@rootcat/node/postgres-js', '0.1.0', options);
48
+ super('@rootcat/node/postgres-js', '0.2.0', options);
40
49
  }
41
50
  init() {
42
51
  return new instrumentation_1.InstrumentationNodeModuleDefinition('postgres', supportedVersions, (moduleExports) => this.patchModule(moduleExports), (moduleExports) => this.unpatchModule(moduleExports));
@@ -64,6 +73,12 @@ class PostgresJsInstrumentation extends instrumentation_1.InstrumentationBase {
64
73
  unpatchModule(moduleExports) {
65
74
  const ns = moduleExports;
66
75
  const wrapped = typeof ns === 'function' ? ns : ns?.default;
76
+ // Only the package's own wrapper is taken off: another SDK's wrapper
77
+ // of it (Sentry's Proxy forwards the symbol below) stays, and the
78
+ // package's inside it passes through once disabled.
79
+ if (!ownFactories.has(wrapped)) {
80
+ return;
81
+ }
67
82
  const original = wrapped?.[rootcatWrapped];
68
83
  if (original && typeof ns !== 'function' && ns) {
69
84
  ns.default = original;
@@ -77,8 +92,14 @@ class PostgresJsInstrumentation extends instrumentation_1.InstrumentationBase {
77
92
  const instrumentation = this;
78
93
  const wrapper = function postgres(...args) {
79
94
  const sql = original.apply(this, args);
95
+ if (!instrumentation.isEnabled()) {
96
+ return sql;
97
+ }
80
98
  try {
81
99
  instrumentation.patchQueryClass(sql);
100
+ if (instrumentation.getConfig().spans === false) {
101
+ return instrumentation.siteRecording(sql);
102
+ }
82
103
  }
83
104
  catch {
84
105
  // the driver works untraced
@@ -88,8 +109,91 @@ class PostgresJsInstrumentation extends instrumentation_1.InstrumentationBase {
88
109
  Object.assign(wrapper, original);
89
110
  Object.setPrototypeOf(wrapper, Object.getPrototypeOf(original));
90
111
  wrapper[rootcatWrapped] = original;
112
+ ownFactories.add(wrapper);
91
113
  return wrapper;
92
114
  }
115
+ /**
116
+ * siteRecording is the sql function as the application gets it when
117
+ * another SDK (Sentry) spans the queries: the driver's own origin then
118
+ * cannot name the application, as it keeps four frames and Sentry's
119
+ * wrapper of the sql function takes the last one. The call site is
120
+ * captured here instead, where the application calls: once per tagged
121
+ * template (a template is one place in the source, as the driver's own
122
+ * origin cache assumes), and per unsafe() call unless an outer layer
123
+ * (Drizzle) already carries one; queries inside sql.begin() get the
124
+ * same treatment through the transaction's sql function.
125
+ */
126
+ siteRecording(sql) {
127
+ const instrumentation = this;
128
+ const known = this.recording.get(sql);
129
+ if (known) {
130
+ return known;
131
+ }
132
+ const unsafe = function unsafe(...args) {
133
+ const query = sql.unsafe(...args);
134
+ try {
135
+ const config = instrumentation.getConfig();
136
+ if (query && typeof query === 'object' && api_1.context.active().getValue(keys_js_1.callSiteContextKey) === undefined && config.sampling.take()) {
137
+ const site = (0, callsite_js_1.captureCallSite)(callsite_js_1.defaultDepth, callsite_js_1.isAppFile, unsafe);
138
+ if (site) {
139
+ instrumentation.querySites.set(query, site);
140
+ }
141
+ }
142
+ }
143
+ catch {
144
+ // the query runs without a site
145
+ }
146
+ return query;
147
+ };
148
+ const begin = function begin(...args) {
149
+ const last = args.length - 1;
150
+ const callback = args[last];
151
+ if (typeof callback === 'function') {
152
+ args[last] = function (scoped) {
153
+ return callback.call(this, typeof scoped === 'function' ? instrumentation.siteRecording(scoped) : scoped);
154
+ };
155
+ }
156
+ return sql.begin(...args);
157
+ };
158
+ const handler = {
159
+ // The trap is the frame a capture starts below.
160
+ apply: function apply(target, thisArg, args) {
161
+ const query = Reflect.apply(target, thisArg, args);
162
+ if (!instrumentation.isEnabled()) {
163
+ return query;
164
+ }
165
+ try {
166
+ const strings = args[0];
167
+ if (query && typeof query === 'object' && Array.isArray(strings) && Array.isArray(strings.raw)) {
168
+ let site = instrumentation.templateSites.get(strings);
169
+ if (site === undefined && instrumentation.getConfig().sampling.on) {
170
+ site = (0, callsite_js_1.captureCallSite)(callsite_js_1.defaultDepth, callsite_js_1.isAppFile, handler.apply) ?? null;
171
+ instrumentation.templateSites.set(strings, site);
172
+ }
173
+ if (site) {
174
+ instrumentation.querySites.set(query, site);
175
+ }
176
+ }
177
+ }
178
+ catch {
179
+ // the query runs without a site
180
+ }
181
+ return query;
182
+ },
183
+ get(target, property, receiver) {
184
+ if (property === 'unsafe' && typeof target.unsafe === 'function') {
185
+ return unsafe;
186
+ }
187
+ if (property === 'begin' && typeof target.begin === 'function') {
188
+ return begin;
189
+ }
190
+ return Reflect.get(target, property, receiver);
191
+ },
192
+ };
193
+ const proxy = new Proxy(sql, handler);
194
+ this.recording.set(sql, proxy);
195
+ return proxy;
196
+ }
93
197
  /** patchQueryClass finds Query.prototype through an unexecuted query. */
94
198
  patchQueryClass(sql) {
95
199
  if (typeof sql !== 'function') {
@@ -112,15 +216,39 @@ class PostgresJsInstrumentation extends instrumentation_1.InstrumentationBase {
112
216
  return;
113
217
  }
114
218
  this.patched.add(proto);
115
- if ((0, instrumentation_1.isWrapped)(proto.handle)) {
219
+ if ((0, instrumentation_1.isWrapped)(proto.handle) && (0, keys_js_1.mine)(proto.handle)) {
116
220
  this._unwrap(proto, 'handle');
117
221
  }
222
+ const before = proto.handle;
118
223
  this._wrap(proto, 'handle', this.wrapHandle);
224
+ if (proto.handle !== before) {
225
+ (0, keys_js_1.marked)(proto.handle); // not when a guard kept another SDK's wrapper
226
+ }
119
227
  }
120
228
  wrapHandle = (original) => {
121
229
  const instrumentation = this;
122
230
  return function handle(...args) {
123
- if (this.executed || this[rootcatSpan]) {
231
+ if (this.executed || this[rootcatSpan] || !instrumentation.isEnabled()) {
232
+ return original.apply(this, args);
233
+ }
234
+ if (typeof this.canceller !== 'function') {
235
+ // The driver's own queries on a new connection (the array type
236
+ // lookup, the read-only check) have no canceller: they are part
237
+ // of connecting, like the handshake, and are not traced (they
238
+ // would show as a second span for the query that opened it).
239
+ return original.apply(this, args);
240
+ }
241
+ const config = instrumentation.getConfig();
242
+ if (config.spans === false) {
243
+ try {
244
+ const site = instrumentation.querySites.get(this) ?? (config.sampling.on ? instrumentation.originSite(this) : undefined);
245
+ if (site) {
246
+ config.onSite?.(site);
247
+ }
248
+ }
249
+ catch {
250
+ // the query runs without a site
251
+ }
124
252
  return original.apply(this, args);
125
253
  }
126
254
  let span;
@@ -1 +1 @@
1
- {"version":3,"file":"postgresjs.js","sourceRoot":"","sources":["../src/postgresjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgresjs.js","sourceRoot":"","sources":["../src/postgresjs.ts"],"names":[],"mappings":"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"}
package/dist/privacy.d.ts CHANGED
@@ -2,9 +2,9 @@ import type { Attributes } from '@opentelemetry/api';
2
2
  /** StatementMode is what query text keeps: its shape with literals masked, or its first keyword. */
3
3
  export type StatementMode = 'masked' | 'off';
4
4
  /** urlKeys hold a URL or path whose query, fragment and opaque segments are cut. */
5
- export declare const urlKeys: readonly ["http.url", "url.full", "http.target", "url.path"];
6
- /** clearedKeys hold a query string, a client's address or a user agent; they are emptied. */
7
- export declare const clearedKeys: readonly ["url.query", "http.client_ip", "client.address", "net.peer.ip", "net.sock.peer.addr", "network.peer.address", "user_agent.original", "http.user_agent"];
5
+ export declare const urlKeys: readonly ["http.url", "url.full", "http.target", "url.path", "url"];
6
+ /** clearedKeys hold a query string, a connection string, a client's address or a user agent; they are emptied. */
7
+ export declare const clearedKeys: readonly ["url.query", "url.fragment", "http.query", "db.connection_string", "http.client_ip", "client.address", "net.peer.ip", "net.sock.peer.addr", "network.peer.address", "user_agent.original", "http.user_agent"];
8
8
  /** maxStatementLength bounds the text the masker reads. */
9
9
  export declare const maxStatementLength = 4096;
10
10
  /** statementKeys hold query text. */
package/dist/privacy.js CHANGED
@@ -8,10 +8,13 @@ exports.statementKeyword = statementKeyword;
8
8
  exports.maskLiterals = maskLiterals;
9
9
  exports.scrubbed = scrubbed;
10
10
  /** urlKeys hold a URL or path whose query, fragment and opaque segments are cut. */
11
- exports.urlKeys = ['http.url', 'url.full', 'http.target', 'url.path'];
12
- /** clearedKeys hold a query string, a client's address or a user agent; they are emptied. */
11
+ exports.urlKeys = ['http.url', 'url.full', 'http.target', 'url.path', 'url'];
12
+ /** clearedKeys hold a query string, a connection string, a client's address or a user agent; they are emptied. */
13
13
  exports.clearedKeys = [
14
14
  'url.query',
15
+ 'url.fragment',
16
+ 'http.query',
17
+ 'db.connection_string',
15
18
  'http.client_ip',
16
19
  'client.address',
17
20
  'net.peer.ip',
@@ -130,8 +133,19 @@ function scrubbed(attributes, statement) {
130
133
  set(key, '');
131
134
  }
132
135
  }
136
+ const redis = attributes['db.system'] === 'redis' || attributes['db.system.name'] === 'redis';
133
137
  for (const key of exports.statementKeys) {
134
138
  const value = attributes[key];
139
+ if (typeof value === 'string' && value !== '' && redis) {
140
+ // A Redis statement is its command and the argument count (the
141
+ // package's own serializer); one written by another SDK (Sentry's
142
+ // "get user:42:session") keeps only the command: keys name users.
143
+ const kept = /^\S+( \[\d+ args\])?$/.test(value) ? value : value.split(' ', 1)[0].slice(0, 64);
144
+ if (kept !== value) {
145
+ set(key, kept);
146
+ }
147
+ continue;
148
+ }
135
149
  if (typeof value === 'string' && value !== '') {
136
150
  // The span limits bound attribute values; the masker never runs over
137
151
  // more than that, whatever set the attribute.
@@ -1 +1 @@
1
- {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type Context } from '@opentelemetry/api';
1
+ import { type Attributes, type Context, type Span as ApiSpan, type SpanStatus } from '@opentelemetry/api';
2
+ import type { Resource } from '@opentelemetry/resources';
2
3
  import type { ReadableSpan, Span, SpanProcessor } from '@opentelemetry/sdk-trace-base';
3
4
  import { type CallSiteLocation } from './callsite.js';
4
5
  import { type StatementMode } from './privacy.js';
@@ -24,7 +25,7 @@ export declare class CallSiteSampling {
24
25
  /**
25
26
  * carry is what an entry wrapper calls before the operation it wraps:
26
27
  * it returns the context to run the operation in, or undefined to run
27
- * it as it is. Under an unsampled span nothing happens. Outside any
28
+ * it as it is. Under an unrecorded span nothing happens. Outside any
28
29
  * span with a ratio below 1, the trace decision is made here (the
29
30
  * sampler follows it), and an unsampled operation captures nothing. A
30
31
  * site already carried by an outer layer of the same operation stands,
@@ -34,9 +35,40 @@ export declare class CallSiteSampling {
34
35
  */
35
36
  carry(capture: () => CallSiteLocation | undefined, override?: boolean): Context | undefined;
36
37
  }
38
+ /**
39
+ * recorded reports whether a span in this process is part of a recorded
40
+ * trace: it is recording (beside an errors-only Sentry the package
41
+ * records spans without the sampled flag, see RecordOnlySampler), or it
42
+ * carries the flag (a span context an application wrapped itself, to
43
+ * continue a trace from a queued job).
44
+ */
45
+ export declare function recorded(span: ApiSpan): boolean;
46
+ /**
47
+ * droppedMark is the trace-state key on the spans the package itself
48
+ * decided not to record beside Sentry (see RecordOnlySampler), so they
49
+ * can be told from another SDK's unrecorded spans.
50
+ */
51
+ export declare const droppedMark = "rootcat";
52
+ /**
53
+ * parentPolicy says how an unrecorded parent from another SDK counts.
54
+ * Beside an errors-only Sentry every span on Sentry's provider is
55
+ * unrecorded (Next.js starts its own through it), and the package's spans
56
+ * below one must not be lost: such a parent is passed through, as if the
57
+ * span had none, and the trace ratio decides on its trace id. Set once,
58
+ * when the package starts beside Sentry.
59
+ */
60
+ export declare const parentPolicy: {
61
+ transparentForeign: boolean;
62
+ };
63
+ /**
64
+ * localParent is the span in ctx when it was started in this process
65
+ * (not a parent from an incoming header), and counts as one (see
66
+ * parentPolicy).
67
+ */
68
+ export declare function localParent(ctx: Context): ApiSpan | undefined;
37
69
  /**
38
70
  * unsampled reports whether a span started under ctx would not be
39
- * recorded (an unsampled parent, or a root an entry wrapper decided
71
+ * recorded (an unrecorded parent, or a root an entry wrapper decided
40
72
  * against): the drivers then run untouched, without even a
41
73
  * non-recording span or a context of their own.
42
74
  */
@@ -58,6 +90,21 @@ export interface CallSiteProcessorOptions {
58
90
  * SDK tracer's startSpan), so the walk skips the SDK's own frames.
59
91
  */
60
92
  above?: Function;
93
+ /**
94
+ * readOnly leaves the spans as they are: the processor sits in another
95
+ * SDK's provider, which sends those spans on. The call site and the
96
+ * privacy rules then apply only to the copy the package exports
97
+ * (exportView).
98
+ */
99
+ readOnly?: boolean;
100
+ /**
101
+ * keepHostKeys leaves another SDK's keys (sentry.*) on the live span
102
+ * at its end: beside Sentry, Sentry reads an ended span still active in
103
+ * a request's context (a call made after the response), and its source
104
+ * must stay what UrlSource pinned. The exported copy drops them (see
105
+ * FlaggedExport).
106
+ */
107
+ keepHostKeys?: boolean;
61
108
  }
62
109
  /** Attribute keys written. */
63
110
  export declare const codeFilepath = "code.filepath";
@@ -67,8 +114,15 @@ export declare const codeFunction = "code.function";
67
114
  * eligible reports whether a span is a client operation worth a call
68
115
  * site: client and producer spans, anything carrying db.system, and the
69
116
  * operation spans of the ORMs that start their work in application code.
117
+ * A processor runs for recorded spans only, so every span here exports.
70
118
  */
71
119
  export declare function eligible(span: ReadableSpan): boolean;
120
+ /**
121
+ * clientOperationByOp reports whether a Sentry span is a client
122
+ * operation by its op, the one attribute Sentry sets when it starts a
123
+ * span (its postgres.js span gets db.system.name only after the start).
124
+ */
125
+ export declare function clientOperationByOp(span: ReadableSpan): boolean;
72
126
  /** CallSiteProcessor implements SpanProcessor. */
73
127
  export declare class CallSiteProcessor implements SpanProcessor {
74
128
  readonly sampling: CallSiteSampling;
@@ -77,10 +131,20 @@ export declare class CallSiteProcessor implements SpanProcessor {
77
131
  private readonly isApp;
78
132
  /** above is where a processor capture starts (the SDK tracer startSpan); set once the provider exists. */
79
133
  above: Function | undefined;
134
+ readonly readOnly: boolean;
135
+ private readonly keepHostKeys;
80
136
  private readonly sites;
81
137
  /** captured counts spans given a call site (tests and the benchmark). */
82
138
  captured: number;
83
139
  constructor(options: CallSiteProcessorOptions);
140
+ /**
141
+ * assign gives a started span a call site found after its start (a
142
+ * driver's own origin, read once another SDK's span exists); it
143
+ * replaces any the processor found at the start.
144
+ */
145
+ assign(span: object, site: CallSiteLocation): void;
146
+ /** siteOf is the call site the processor holds for a span. */
147
+ siteOf(span: object): CallSiteLocation | undefined;
84
148
  onStart(span: Span, parentContext: Context): void;
85
149
  /**
86
150
  * locate takes a site already carried in the context or by the parent
@@ -89,6 +153,45 @@ export declare class CallSiteProcessor implements SpanProcessor {
89
153
  */
90
154
  private locate;
91
155
  onEnd(span: ReadableSpan): void;
156
+ /**
157
+ * exportView is the span as the package exports it from a read-only
158
+ * processor: a copy of its attributes, events and status with the
159
+ * privacy rules and the call site applied, under the package's
160
+ * resource. The span itself is not touched.
161
+ */
162
+ exportView(span: ReadableSpan, resource?: Resource): ReadableSpan;
163
+ /** statementName is a statement-shaped span name under the statement rule. */
164
+ private statementName;
92
165
  shutdown(): Promise<void>;
93
166
  forceFlush(): Promise<void>;
94
167
  }
168
+ /**
169
+ * routeFromHost drops the keys never exported and turns what a Sentry
170
+ * framework instrumentation wrote on the active span into the package's own
171
+ * vocabulary. @sentry/hono renames the server span to "GET /users/:id"
172
+ * once the route is known (sentry.source "route"): the template becomes
173
+ * http.route.
174
+ */
175
+ export declare function routeFromHost(name: string, attributes: Record<string, unknown>): unknown;
176
+ /**
177
+ * exportedName is the name a span is exported under. Another SDK's HTTP
178
+ * span is named by the method and the path or URL it served or called
179
+ * (Sentry's: "GET /reset/3f9c...", "GET https://api.example.com/u/42"):
180
+ * the target is masked as an attribute URL is, unless the name is a
181
+ * route template a framework set (sentry.source "route").
182
+ */
183
+ export declare function exportedName(name: string, source: unknown): string;
184
+ /** Overrides is what a view replaces; the rest reads through to the span. */
185
+ interface Overrides {
186
+ name?: string;
187
+ attributes?: Attributes;
188
+ events?: ReadableSpan['events'];
189
+ status?: SpanStatus;
190
+ resource?: Resource;
191
+ }
192
+ /**
193
+ * view is a ReadableSpan with the span's fields except the given ones,
194
+ * and always flagged sampled: the package exports only spans it chose to
195
+ * record, whatever flag they carry inside the process.
196
+ */
197
+ export declare function view(span: ReadableSpan, overrides?: Overrides): ReadableSpan;