@softprobe/softprobe-js 2.0.6 → 2.0.8
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/dist/bootstrap/otel/framework-mutator.d.ts.map +1 -1
- package/dist/bootstrap/otel/framework-mutator.js +21 -13
- package/dist/bootstrap/otel/framework-mutator.js.map +1 -1
- package/dist/bootstrap/otel/mutator.d.ts.map +1 -1
- package/dist/bootstrap/otel/mutator.js +2 -5
- package/dist/bootstrap/otel/mutator.js.map +1 -1
- package/dist/core/runtime/wrap.d.ts +16 -0
- package/dist/core/runtime/wrap.d.ts.map +1 -0
- package/dist/core/runtime/wrap.js +75 -0
- package/dist/core/runtime/wrap.js.map +1 -0
- package/dist/instrumentations/common/http/inbound-capture.d.ts +7 -1
- package/dist/instrumentations/common/http/inbound-capture.d.ts.map +1 -1
- package/dist/instrumentations/common/http/inbound-capture.js +5 -4
- package/dist/instrumentations/common/http/inbound-capture.js.map +1 -1
- package/dist/instrumentations/common/utils/callback.d.ts +8 -0
- package/dist/instrumentations/common/utils/callback.d.ts.map +1 -0
- package/dist/instrumentations/common/utils/callback.js +16 -0
- package/dist/instrumentations/common/utils/callback.js.map +1 -0
- package/dist/instrumentations/express/capture.d.ts.map +1 -1
- package/dist/instrumentations/express/capture.js +4 -0
- package/dist/instrumentations/express/capture.js.map +1 -1
- package/dist/instrumentations/postgres/replay.d.ts.map +1 -1
- package/dist/instrumentations/postgres/replay.js +21 -48
- package/dist/instrumentations/postgres/replay.js.map +1 -1
- package/dist/instrumentations/redis/replay.d.ts.map +1 -1
- package/dist/instrumentations/redis/replay.js +8 -11
- package/dist/instrumentations/redis/replay.js.map +1 -1
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-mutator.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/otel/framework-mutator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"framework-mutator.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/otel/framework-mutator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CA8CtE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAgF7C"}
|
|
@@ -5,15 +5,12 @@
|
|
|
5
5
|
* first middleware/route addition triggers our middleware; patch Fastify factory
|
|
6
6
|
* so new instances get the plugin registered.
|
|
7
7
|
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.patchExpress = patchExpress;
|
|
13
10
|
exports.applyFrameworkMutators = applyFrameworkMutators;
|
|
14
|
-
const shimmer_1 = __importDefault(require("shimmer"));
|
|
15
11
|
const capture_1 = require("../../instrumentations/express/capture");
|
|
16
12
|
const capture_2 = require("../../instrumentations/fastify/capture");
|
|
13
|
+
const wrap_1 = require("../../core/runtime/wrap");
|
|
17
14
|
const nodeRequire = (typeof require !== 'undefined' ? require : undefined);
|
|
18
15
|
/**
|
|
19
16
|
* Patch Express so the first time a route is added (e.g. app.get), we call
|
|
@@ -26,20 +23,31 @@ function patchExpress(express) {
|
|
|
26
23
|
return;
|
|
27
24
|
const exp = express;
|
|
28
25
|
const proto = exp.application ?? Object.getPrototypeOf(express());
|
|
29
|
-
if (!proto || typeof proto.route !== 'function')
|
|
26
|
+
if (!proto || typeof proto.route !== 'function' || typeof proto.use !== 'function')
|
|
30
27
|
return;
|
|
31
28
|
if (proto._softprobeRoutePatched)
|
|
32
29
|
return;
|
|
33
30
|
proto._softprobeRoutePatched = true;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
const originalUse = proto.use;
|
|
32
|
+
const ensureInjected = function () {
|
|
33
|
+
if (this._softprobeMiddlewareAdded)
|
|
34
|
+
return;
|
|
35
|
+
this._softprobeMiddlewareAdded = true;
|
|
36
|
+
originalUse.call(this, capture_1.softprobeExpressMiddleware);
|
|
37
|
+
};
|
|
38
|
+
const patchOnce = (method) => {
|
|
39
|
+
const fn = proto[method];
|
|
40
|
+
if (typeof fn !== 'function')
|
|
41
|
+
return;
|
|
42
|
+
(0, wrap_1.wrapMethodNoConflict)(proto, method, `express.inject.${method}`, (original) => function expressPatched(...args) {
|
|
43
|
+
ensureInjected.call(this);
|
|
40
44
|
return original.apply(this, args);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
const methods = ['route', 'use', 'all', 'get', 'post', 'put', 'delete', 'patch', 'options', 'head'];
|
|
48
|
+
for (const method of methods) {
|
|
49
|
+
patchOnce(method);
|
|
50
|
+
}
|
|
43
51
|
}
|
|
44
52
|
/**
|
|
45
53
|
* Patches Node's require so that when 'express' or 'fastify' is required,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-mutator.js","sourceRoot":"","sources":["../../../src/bootstrap/otel/framework-mutator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"framework-mutator.js","sourceRoot":"","sources":["../../../src/bootstrap/otel/framework-mutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/otel/mutator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,2FAA2F;AAC3F,MAAM,WAAW,0BAA0B;IACzC,2BAA2B,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;CAC/D;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,CAAC,EAAE,0BAA0B,GAClC,IAAI,
|
|
1
|
+
{"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/otel/mutator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,2FAA2F;AAC3F,MAAM,WAAW,0BAA0B;IACzC,2BAA2B,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;CAC/D;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,CAAC,EAAE,0BAA0B,GAClC,IAAI,CAwCN"}
|
|
@@ -5,13 +5,10 @@
|
|
|
5
5
|
* is done solely via the MSW interceptor (replay/http.ts), not undici instrumentation.
|
|
6
6
|
* Design §5.2, §5.3.
|
|
7
7
|
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.applyAutoInstrumentationMutator = applyAutoInstrumentationMutator;
|
|
13
|
-
const shimmer_1 = __importDefault(require("shimmer"));
|
|
14
10
|
const inject_1 = require("./inject");
|
|
11
|
+
const wrap_1 = require("../../core/runtime/wrap");
|
|
15
12
|
const capture_1 = require("../../instrumentations/postgres/capture");
|
|
16
13
|
const capture_2 = require("../../instrumentations/redis/capture");
|
|
17
14
|
/**
|
|
@@ -21,7 +18,7 @@ const capture_2 = require("../../instrumentations/redis/capture");
|
|
|
21
18
|
*/
|
|
22
19
|
function applyAutoInstrumentationMutator(target) {
|
|
23
20
|
const moduleExport = target ?? require('@opentelemetry/auto-instrumentations-node');
|
|
24
|
-
|
|
21
|
+
(0, wrap_1.wrapMethodNoConflict)(moduleExport, 'getNodeAutoInstrumentations', 'otel.auto-instrumentations.getNodeAutoInstrumentations', ((original) => {
|
|
25
22
|
return function wrappedGetNodeAutoInstrumentations(options) {
|
|
26
23
|
// Real getNodeAutoInstrumentations(inputConfigs) creates instances from config;
|
|
27
24
|
// merge our responseHooks into the input so instances get them (E2E).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutator.js","sourceRoot":"","sources":["../../../src/bootstrap/otel/mutator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"mutator.js","sourceRoot":"","sources":["../../../src/bootstrap/otel/mutator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwBH,0EA0CC;AAhED,qCAA0D;AAC1D,kDAA+D;AAC/D,qEAIiD;AACjD,kEAG8C;AAO9C;;;;GAIG;AACH,SAAgB,+BAA+B,CAC7C,MAAmC;IAEnC,MAAM,YAAY,GAChB,MAAM,IAAI,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAEjE,IAAA,2BAAoB,EAClB,YAAkD,EAClD,6BAA6B,EAC7B,wDAAwD,EACxD,CAAC,CAAC,QAA0C,EAAE,EAAE;QAC9C,OAAO,SAAS,kCAAkC,CAEhD,OAAiB;YAEjB,gFAAgF;YAChF,sEAAsE;YACtE,MAAM,KAAK,GACT,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACvE,CAAC,CAAE,OAAmC;gBACtC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,MAAM,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;YACrD,MAAM,CAAC,iCAAuB,CAAC,GAAG;gBAChC,GAAG,CAAE,KAAK,CAAC,iCAAuB,CAAY,IAAI,EAAE,CAAC;gBACrD,WAAW,EAAE,IAAA,kCAAwB,GAAE;gBACvC,YAAY,EAAE,IAAA,mCAAyB,GAAE;aAC1C,CAAC;YACF,MAAM,CAAC,oCAA0B,CAAC,GAAG;gBACnC,GAAG,CAAE,KAAK,CAAC,oCAA0B,CAAY,IAAI,EAAE,CAAC;gBACxD,YAAY,EAAE,IAAA,gCAAsB,GAAE;aACvC,CAAC;YAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,mFAAmF;YACnF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,IAAA,mBAAU,EAAC,GAAG,EAAE,iCAAuB,EAAE,aAAa,EAAE,IAAA,kCAAwB,GAAE,CAAC,CAAC;YACpF,IAAA,2BAAkB,EAAC,GAAG,EAAE,iCAAuB,EAAE,IAAA,mCAAyB,GAAE,CAAC,CAAC;YAC9E,IAAA,2BAAkB,EAAC,GAAG,EAAE,oCAA0B,EAAE,IAAA,gCAAsB,GAAE,CAAC,CAAC;YAC9E,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;IACJ,CAAC,CAAmF,CACrF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Softprobe wrapper utility that avoids shimmer's `__wrapped` metadata.
|
|
3
|
+
* We use Softprobe-owned metadata keys so OpenTelemetry wrapper detection
|
|
4
|
+
* does not treat Softprobe wrappers as foreign wrappers to strip.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SOFTPROBE_WRAPPER_MARKER_KEY = "__softprobeWrapped";
|
|
7
|
+
export declare const SOFTPROBE_WRAPPER_ORIGINAL_NAME_KEY = "__softprobeOriginalName";
|
|
8
|
+
type AnyFn = (...args: unknown[]) => unknown;
|
|
9
|
+
export declare function isMethodWrappedWithMarker(target: Record<string, unknown>, method: string, marker: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Wrap target[method] with wrapperFactory(original) and store Softprobe metadata.
|
|
12
|
+
* Idempotent by marker for each method.
|
|
13
|
+
*/
|
|
14
|
+
export declare function wrapMethodNoConflict(target: Record<string, unknown>, method: string, marker: string, wrapperFactory: (original: AnyFn) => AnyFn): void;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=wrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/wrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,mCAAmC,4BAA4B,CAAC;AAE7E,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AA0C7C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAGT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,KAAK,GACzC,IAAI,CAmBN"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Softprobe wrapper utility that avoids shimmer's `__wrapped` metadata.
|
|
4
|
+
* We use Softprobe-owned metadata keys so OpenTelemetry wrapper detection
|
|
5
|
+
* does not treat Softprobe wrappers as foreign wrappers to strip.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SOFTPROBE_WRAPPER_ORIGINAL_NAME_KEY = exports.SOFTPROBE_WRAPPER_MARKER_KEY = void 0;
|
|
9
|
+
exports.isMethodWrappedWithMarker = isMethodWrappedWithMarker;
|
|
10
|
+
exports.wrapMethodNoConflict = wrapMethodNoConflict;
|
|
11
|
+
exports.SOFTPROBE_WRAPPER_MARKER_KEY = '__softprobeWrapped';
|
|
12
|
+
exports.SOFTPROBE_WRAPPER_ORIGINAL_NAME_KEY = '__softprobeOriginalName';
|
|
13
|
+
function methodFn(target, method) {
|
|
14
|
+
const value = target[method];
|
|
15
|
+
if (typeof value !== 'function')
|
|
16
|
+
return undefined;
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
function markWrapped(fn, marker, originalName) {
|
|
20
|
+
Object.defineProperty(fn, exports.SOFTPROBE_WRAPPER_MARKER_KEY, {
|
|
21
|
+
configurable: true,
|
|
22
|
+
enumerable: false,
|
|
23
|
+
writable: false,
|
|
24
|
+
value: marker,
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(fn, exports.SOFTPROBE_WRAPPER_ORIGINAL_NAME_KEY, {
|
|
27
|
+
configurable: true,
|
|
28
|
+
enumerable: false,
|
|
29
|
+
writable: false,
|
|
30
|
+
value: originalName,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function preserveName(wrapper, originalName) {
|
|
34
|
+
if (!originalName)
|
|
35
|
+
return;
|
|
36
|
+
try {
|
|
37
|
+
Object.defineProperty(wrapper, 'name', {
|
|
38
|
+
configurable: true,
|
|
39
|
+
enumerable: false,
|
|
40
|
+
writable: false,
|
|
41
|
+
value: originalName,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// best effort only; function name may be non-configurable in some runtimes
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function isMethodWrappedWithMarker(target, method, marker) {
|
|
49
|
+
const fn = methodFn(target, method);
|
|
50
|
+
return Boolean(fn && fn[exports.SOFTPROBE_WRAPPER_MARKER_KEY] === marker);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Wrap target[method] with wrapperFactory(original) and store Softprobe metadata.
|
|
54
|
+
* Idempotent by marker for each method.
|
|
55
|
+
*/
|
|
56
|
+
function wrapMethodNoConflict(target, method, marker, wrapperFactory) {
|
|
57
|
+
const original = methodFn(target, method);
|
|
58
|
+
if (!original)
|
|
59
|
+
return;
|
|
60
|
+
if (original[exports.SOFTPROBE_WRAPPER_MARKER_KEY] === marker)
|
|
61
|
+
return;
|
|
62
|
+
const wrapped = wrapperFactory(original);
|
|
63
|
+
if (typeof wrapped !== 'function') {
|
|
64
|
+
throw new Error(`wrapMethodNoConflict expected function wrapper for ${String(method)}`);
|
|
65
|
+
}
|
|
66
|
+
preserveName(wrapped, original.name || String(method));
|
|
67
|
+
markWrapped(wrapped, marker, original.name || String(method));
|
|
68
|
+
Object.defineProperty(target, method, {
|
|
69
|
+
configurable: true,
|
|
70
|
+
enumerable: true,
|
|
71
|
+
writable: true,
|
|
72
|
+
value: wrapped,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=wrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../src/core/runtime/wrap.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA+CH,8DAOC;AAMD,oDAwBC;AAlFY,QAAA,4BAA4B,GAAG,oBAAoB,CAAC;AACpD,QAAA,mCAAmC,GAAG,yBAAyB,CAAC;AAS7E,SAAS,QAAQ,CAAC,MAA+B,EAAE,MAAc;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,KAA2B,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,EAAsB,EAAE,MAAc,EAAE,YAAoB;IAC/E,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,oCAA4B,EAAE;QACtD,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAmC,EAAE;QAC7D,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B,EAAE,YAAoB;IACrE,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;YACrC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,SAAgB,yBAAyB,CACvC,MAA+B,EAC/B,MAAc,EACd,MAAc;IAEd,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,oCAA4B,CAAC,KAAK,MAAM,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,MAA+B,EAC/B,MAAc,EACd,MAAc,EACd,cAA0C;IAE1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,QAAQ,CAAC,oCAA4B,CAAC,KAAK,MAAM;QAAE,OAAO;IAE9D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAuB,CAAC;IAC/D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;QACpC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Cassette, SoftprobeMode } from '../../../types/schema';
|
|
1
2
|
export type QueueInboundResponsePayload = {
|
|
2
3
|
status: number;
|
|
3
4
|
body: unknown;
|
|
@@ -9,11 +10,16 @@ export type QueueInboundResponsePayload = {
|
|
|
9
10
|
/** Response body size in bytes when known from transport headers. */
|
|
10
11
|
responseBodyBytes?: number;
|
|
11
12
|
};
|
|
13
|
+
export type InboundCaptureSnapshot = {
|
|
14
|
+
mode: SoftprobeMode;
|
|
15
|
+
traceId: string;
|
|
16
|
+
cassette?: Cassette;
|
|
17
|
+
};
|
|
12
18
|
/**
|
|
13
19
|
* Queues an inbound HTTP response for capture. Writes one NDJSON record via the capture store.
|
|
14
20
|
* Uses active span context for traceId/spanId when not provided in payload.
|
|
15
21
|
*/
|
|
16
|
-
export declare function queueInboundResponse(traceId: string, payload: QueueInboundResponsePayload): void;
|
|
22
|
+
export declare function queueInboundResponse(traceId: string, payload: QueueInboundResponsePayload, snapshot?: InboundCaptureSnapshot): void;
|
|
17
23
|
/** Engine object for design alignment; used by Express and Fastify. */
|
|
18
24
|
export declare const CaptureEngine: {
|
|
19
25
|
queueInboundResponse: typeof queueInboundResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-capture.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbound-capture.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA2B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK9F,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,EACpC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,IAAI,CA2BN;AAED,uEAAuE;AACvE,eAAO,MAAM,aAAa;;CAEzB,CAAC"}
|
|
@@ -10,13 +10,14 @@ const http_body_1 = require("../../../core/runtime/http-body");
|
|
|
10
10
|
* Queues an inbound HTTP response for capture. Writes one NDJSON record via the capture store.
|
|
11
11
|
* Uses active span context for traceId/spanId when not provided in payload.
|
|
12
12
|
*/
|
|
13
|
-
function queueInboundResponse(traceId, payload) {
|
|
13
|
+
function queueInboundResponse(traceId, payload, snapshot) {
|
|
14
14
|
const span = api_1.trace.getActiveSpan();
|
|
15
15
|
const spanId = span?.spanContext().spanId ?? '';
|
|
16
16
|
const [method, ...urlParts] = payload.identifier.split(' ');
|
|
17
17
|
const url = urlParts.join(' ') || '/';
|
|
18
|
-
const cassette = context_1.SoftprobeContext.getCassette();
|
|
19
|
-
|
|
18
|
+
const cassette = snapshot?.cassette ?? context_1.SoftprobeContext.getCassette();
|
|
19
|
+
const mode = snapshot?.mode ?? context_1.SoftprobeContext.getMode();
|
|
20
|
+
if (mode !== 'CAPTURE' || !cassette)
|
|
20
21
|
return;
|
|
21
22
|
const record = {
|
|
22
23
|
version: '4.1',
|
|
@@ -34,7 +35,7 @@ function queueInboundResponse(traceId, payload) {
|
|
|
34
35
|
requestPayload: { body: payload.requestBody },
|
|
35
36
|
}),
|
|
36
37
|
};
|
|
37
|
-
const tid = context_1.SoftprobeContext.getTraceId();
|
|
38
|
+
const tid = snapshot?.traceId ?? context_1.SoftprobeContext.getTraceId();
|
|
38
39
|
void cassette.saveRecord(tid ? { ...record, traceId: tid } : record).catch(() => { });
|
|
39
40
|
}
|
|
40
41
|
/** Engine object for design alignment; used by Express and Fastify. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-capture.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inbound-capture.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":";;;AA4BA,oDA+BC;AA3DD,4CAA2C;AAE3C,8CAAoD;AACpD,yDAA0D;AAC1D,+DAAoE;AAoBpE;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,OAAe,EACf,OAAoC,EACpC,QAAiC;IAEjC,MAAM,IAAI,GAAG,WAAK,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;IAEhD,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,0BAAgB,CAAC,WAAW,EAAE,CAAC;IACtE,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,0BAAgB,CAAC,OAAO,EAAE,CAAC;IAC1D,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO;IAC5C,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,KAAK;QACd,OAAO;QACP,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAA,2BAAc,EAAC,MAAM,EAAE,GAAG,CAAC;QACvC,eAAe,EAAE;YACf,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,GAAG,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC1F;QACD,GAAG,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI;YACtE,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE;SAC9C,CAAC;KACH,CAAC;IACF,MAAM,GAAG,GAAG,QAAQ,EAAE,OAAO,IAAI,0BAAgB,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,uEAAuE;AAC1D,QAAA,aAAa,GAAG;IAC3B,oBAAoB;CACrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settles an asynchronous callback with a value.
|
|
3
|
+
* @param args - The arguments array.
|
|
4
|
+
* @param value - The value to settle with.
|
|
5
|
+
* @returns A promise that resolves with the value.
|
|
6
|
+
*/
|
|
7
|
+
export declare function settleAsync(args: unknown[], value?: unknown): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/utils/callback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAE,OAAmB,oBAI1E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.settleAsync = settleAsync;
|
|
4
|
+
/**
|
|
5
|
+
* Settles an asynchronous callback with a value.
|
|
6
|
+
* @param args - The arguments array.
|
|
7
|
+
* @param value - The value to settle with.
|
|
8
|
+
* @returns A promise that resolves with the value.
|
|
9
|
+
*/
|
|
10
|
+
async function settleAsync(args, value = undefined) {
|
|
11
|
+
const cb = typeof args[args.length - 1] === 'function' ? args[args.length - 1] : undefined;
|
|
12
|
+
if (cb)
|
|
13
|
+
process.nextTick(() => cb(null, value));
|
|
14
|
+
return Promise.resolve(value);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/utils/callback.ts"],"names":[],"mappings":";;AAMA,kCAIG;AAVH;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAAC,IAAe,EAAE,QAAiB,SAAS;IACzE,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,IAAI,EAAE;QAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAE,EAAkD,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACjG,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAC/C,YAAY,EAAE,2BAA2B,EAAE,CAAC;AAE5C,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,EAC9D,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAC/C,YAAY,EAAE,2BAA2B,EAAE,CAAC;AAE5C,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,EAC9D,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEtB"}
|
|
@@ -72,6 +72,10 @@ function softprobeExpressMiddleware(req, res, next) {
|
|
|
72
72
|
identifier: (0, span_adapter_1.buildInboundHttpIdentifier)(req.method, (0, inbound_path_1.resolveInboundPath)(req)),
|
|
73
73
|
requestBody: req.body,
|
|
74
74
|
requestBodyBytes: (0, http_body_1.parseContentLengthHeader)(req.headers),
|
|
75
|
+
}, {
|
|
76
|
+
mode,
|
|
77
|
+
traceId: ctxTraceId,
|
|
78
|
+
cassette: storage,
|
|
75
79
|
});
|
|
76
80
|
return originalSend.apply(res, arguments);
|
|
77
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAmCH,
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/postgres/replay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/postgres/replay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE;IAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,CA2HhG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C"}
|
|
@@ -4,61 +4,41 @@
|
|
|
4
4
|
* calls are resolved by the SemanticMatcher (no live network). Pairs with capture
|
|
5
5
|
* Task 4.2; identifier = query text per design §3.1, §6.
|
|
6
6
|
*/
|
|
7
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
-
};
|
|
10
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
8
|
exports.applyPostgresReplay = applyPostgresReplay;
|
|
12
9
|
exports.setupPostgresReplay = setupPostgresReplay;
|
|
13
|
-
const shimmer_1 = __importDefault(require("shimmer"));
|
|
14
10
|
const api_1 = require("@opentelemetry/api");
|
|
15
11
|
const context_1 = require("../../context");
|
|
16
12
|
const postgres_span_1 = require("../../core/bindings/postgres-span");
|
|
17
|
-
const
|
|
13
|
+
const callback_1 = require("../common/utils/callback");
|
|
14
|
+
const wrap_1 = require("../../core/runtime/wrap");
|
|
15
|
+
const QUERY_WRAPPED_MARKER = 'postgres.replay.query';
|
|
16
|
+
const CONNECT_WRAPPED_MARKER = 'postgres.replay.connect';
|
|
17
|
+
const END_WRAPPED_MARKER = 'postgres.replay.end';
|
|
18
18
|
/**
|
|
19
19
|
* Patches a pg module so connect is no-op and query uses matcher. Idempotent.
|
|
20
20
|
* Exported so init can call it from a require hook and patch whichever module first requires 'pg' (Task 16.3.1).
|
|
21
21
|
*/
|
|
22
22
|
function applyPostgresReplay(pg) {
|
|
23
|
-
|
|
24
|
-
if (existingQuery[SOFTPROBE_WRAPPED_MARKER])
|
|
23
|
+
if ((0, wrap_1.isMethodWrappedWithMarker)(pg.Client.prototype, 'query', QUERY_WRAPPED_MARKER))
|
|
25
24
|
return;
|
|
26
25
|
const connectKey = 'connect';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// replacing it. Call chain: OTel wrapper → our wrapper → original connect.
|
|
33
|
-
const patchedConnect = function wrappedConnect(...args) {
|
|
34
|
-
if (context_1.SoftprobeContext.getMode() === 'REPLAY')
|
|
35
|
-
return Promise.resolve();
|
|
36
|
-
return origConnect.apply(this, args);
|
|
37
|
-
};
|
|
38
|
-
patchedConnect.__softprobeConnect = true;
|
|
39
|
-
Object.defineProperty(pg.Client.prototype, connectKey, {
|
|
40
|
-
configurable: true,
|
|
41
|
-
writable: true,
|
|
42
|
-
value: patchedConnect,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
26
|
+
(0, wrap_1.wrapMethodNoConflict)(pg.Client.prototype, connectKey, CONNECT_WRAPPED_MARKER, (origConnect) => function wrappedConnect(...args) {
|
|
27
|
+
if (context_1.SoftprobeContext.getMode() === 'REPLAY')
|
|
28
|
+
return (0, callback_1.settleAsync)(args);
|
|
29
|
+
return origConnect.apply(this, args);
|
|
30
|
+
});
|
|
45
31
|
// end() must not touch the network when we never connected (Task 16.3.1). OTel does not wrap
|
|
46
|
-
// end(),
|
|
32
|
+
// end(), but we still use no-conflict wrapper metadata for consistency.
|
|
47
33
|
const endKey = 'end';
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
// Use Object.defineProperty (NOT shimmer.wrap) so OTel does NOT detect __wrapped and strip us.
|
|
58
|
-
// OTel wraps our patchedQuery with its span-creating wrapper; our wrapper stays in the chain.
|
|
59
|
-
// Call chain: OTel query wrapper → our patchedQuery → original query.
|
|
60
|
-
const origQuery = pg.Client.prototype.query;
|
|
61
|
-
const patchedQuery = function wrappedQuery(...args) {
|
|
34
|
+
(0, wrap_1.wrapMethodNoConflict)(pg.Client.prototype, endKey, END_WRAPPED_MARKER, (originalEnd) => function wrappedEnd(...args) {
|
|
35
|
+
if (context_1.SoftprobeContext.getMode() === 'REPLAY')
|
|
36
|
+
return (0, callback_1.settleAsync)(args);
|
|
37
|
+
return originalEnd.apply(this, args);
|
|
38
|
+
});
|
|
39
|
+
// Use no-conflict metadata so OTel's __wrapped checks never treat Softprobe as wrapped.
|
|
40
|
+
// OTel wraps our query wrapper with its span-creating wrapper; our wrapper stays in the chain.
|
|
41
|
+
(0, wrap_1.wrapMethodNoConflict)(pg.Client.prototype, 'query', QUERY_WRAPPED_MARKER, (origQuery) => function wrappedQuery(...args) {
|
|
62
42
|
const matcher = context_1.SoftprobeContext.active().matcher;
|
|
63
43
|
const mode = context_1.SoftprobeContext.getMode();
|
|
64
44
|
const strictReplay = context_1.SoftprobeContext.getStrictReplay();
|
|
@@ -141,12 +121,6 @@ function applyPostgresReplay(pg) {
|
|
|
141
121
|
return undefined;
|
|
142
122
|
}
|
|
143
123
|
return Promise.resolve(mockedResult);
|
|
144
|
-
};
|
|
145
|
-
patchedQuery[SOFTPROBE_WRAPPED_MARKER] = true;
|
|
146
|
-
Object.defineProperty(pg.Client.prototype, 'query', {
|
|
147
|
-
configurable: true,
|
|
148
|
-
writable: true,
|
|
149
|
-
value: patchedQuery,
|
|
150
124
|
});
|
|
151
125
|
}
|
|
152
126
|
/**
|
|
@@ -155,8 +129,7 @@ function applyPostgresReplay(pg) {
|
|
|
155
129
|
*/
|
|
156
130
|
function setupPostgresReplay() {
|
|
157
131
|
const pg = require('pg');
|
|
158
|
-
|
|
159
|
-
if (existingQuery[SOFTPROBE_WRAPPED_MARKER])
|
|
132
|
+
if ((0, wrap_1.isMethodWrappedWithMarker)(pg.Client.prototype, 'query', QUERY_WRAPPED_MARKER))
|
|
160
133
|
return;
|
|
161
134
|
applyPostgresReplay(pg);
|
|
162
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../src/instrumentations/postgres/replay.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../src/instrumentations/postgres/replay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/redis/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/redis/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAgIvC;AAgCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgBrE"}
|
|
@@ -8,16 +8,14 @@
|
|
|
8
8
|
* command (get, set, etc.) is our wrapper; the client captures that executor in
|
|
9
9
|
* a closure when the module loads, so we must patch before the client loads.
|
|
10
10
|
*/
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.setupRedisReplay = setupRedisReplay;
|
|
16
13
|
exports.applyRedisReplay = applyRedisReplay;
|
|
17
14
|
const api_1 = require("@opentelemetry/api");
|
|
18
|
-
const shimmer_1 = __importDefault(require("shimmer"));
|
|
19
15
|
const redis_span_1 = require("../../core/bindings/redis-span");
|
|
20
16
|
const context_1 = require("../../context");
|
|
17
|
+
const callback_1 = require("../common/utils/callback");
|
|
18
|
+
const wrap_1 = require("../../core/runtime/wrap");
|
|
21
19
|
/**
|
|
22
20
|
* Builds the same identifier string as the Redis capture hook (capture/redis.ts):
|
|
23
21
|
* command name (uppercase) plus args joined by space.
|
|
@@ -39,7 +37,7 @@ function setupRedisReplay() {
|
|
|
39
37
|
const { transformCommandArguments, transformCommandReply } = commanderModule;
|
|
40
38
|
if (!transformCommandArguments || !transformCommandReply)
|
|
41
39
|
return;
|
|
42
|
-
|
|
40
|
+
(0, wrap_1.wrapMethodNoConflict)(commanderModule, 'attachCommands', 'redis.replay.attachCommands', (originalAttachCommands) => function patchedAttachCommands(config) {
|
|
43
41
|
const cfg = config;
|
|
44
42
|
const originalExecutor = cfg.executor;
|
|
45
43
|
const wrappedConfig = {
|
|
@@ -135,13 +133,13 @@ function applyInstanceNoops(client) {
|
|
|
135
133
|
const orig = client.connect;
|
|
136
134
|
client.connect = function (...args) {
|
|
137
135
|
if (context_1.SoftprobeContext.getMode() === 'REPLAY')
|
|
138
|
-
return
|
|
136
|
+
return (0, callback_1.settleAsync)(args);
|
|
139
137
|
return orig.apply(this, args);
|
|
140
138
|
};
|
|
141
139
|
}
|
|
142
140
|
const noopQuitFn = (orig) => function (...args) {
|
|
143
141
|
if (context_1.SoftprobeContext.getMode() === 'REPLAY')
|
|
144
|
-
return
|
|
142
|
+
return (0, callback_1.settleAsync)(args, 'OK');
|
|
145
143
|
return orig.apply(this, args);
|
|
146
144
|
};
|
|
147
145
|
if (typeof client.quit === 'function')
|
|
@@ -149,7 +147,7 @@ function applyInstanceNoops(client) {
|
|
|
149
147
|
if (typeof client.QUIT === 'function')
|
|
150
148
|
client.QUIT = noopQuitFn(client.QUIT);
|
|
151
149
|
}
|
|
152
|
-
const SOFTPROBE_CREATE_CLIENT_WRAPPED = '
|
|
150
|
+
const SOFTPROBE_CREATE_CLIENT_WRAPPED = 'redis.replay.createClient';
|
|
153
151
|
/**
|
|
154
152
|
* Wraps createClient so every new client gets connect/quit no-ops as instance own-properties.
|
|
155
153
|
* Using instance-level patching (not prototype) makes it immune to OTel re-patching the redis
|
|
@@ -161,13 +159,12 @@ function applyRedisReplay(redis) {
|
|
|
161
159
|
const target = redis.createClient != null ? redis : redis.default;
|
|
162
160
|
if (!target)
|
|
163
161
|
return;
|
|
164
|
-
if (target
|
|
162
|
+
if ((0, wrap_1.isMethodWrappedWithMarker)(target, 'createClient', SOFTPROBE_CREATE_CLIENT_WRAPPED))
|
|
165
163
|
return;
|
|
166
|
-
|
|
164
|
+
(0, wrap_1.wrapMethodNoConflict)(target, 'createClient', SOFTPROBE_CREATE_CLIENT_WRAPPED, (original) => function (...args) {
|
|
167
165
|
const client = original.apply(this, args);
|
|
168
166
|
applyInstanceNoops(client);
|
|
169
167
|
return client;
|
|
170
168
|
});
|
|
171
|
-
target.createClient[SOFTPROBE_CREATE_CLIENT_WRAPPED] = true;
|
|
172
169
|
}
|
|
173
170
|
//# sourceMappingURL=replay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../src/instrumentations/redis/replay.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../src/instrumentations/redis/replay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softprobe/softprobe-js",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"description": "Topology-aware record & replay testing framework via OpenTelemetry",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"softprobe",
|
|
@@ -66,7 +66,6 @@
|
|
|
66
66
|
"express": "^5.2.1",
|
|
67
67
|
"fastify": "^5.1.0",
|
|
68
68
|
"fastify-plugin": "^5.0.1",
|
|
69
|
-
"shimmer": "^1.2.0",
|
|
70
69
|
"undici": "^6.0.0",
|
|
71
70
|
"yaml": "^2.6.0"
|
|
72
71
|
},
|