@justanalyticsapp/node 0.2.1 → 0.3.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/dist/client.d.ts +23 -1
- package/dist/client.js +139 -1
- package/dist/client.js.map +1 -1
- package/dist/integrations/axios-integration.d.ts +53 -0
- package/dist/integrations/axios-integration.js +221 -0
- package/dist/integrations/axios-integration.js.map +1 -0
- package/dist/integrations/drizzle.d.ts +54 -0
- package/dist/integrations/drizzle.js +245 -0
- package/dist/integrations/drizzle.js.map +1 -0
- package/dist/integrations/http.d.ts +3 -1
- package/dist/integrations/http.js +12 -1
- package/dist/integrations/http.js.map +1 -1
- package/dist/integrations/mongodb.d.ts +50 -0
- package/dist/integrations/mongodb.js +260 -0
- package/dist/integrations/mongodb.js.map +1 -0
- package/dist/integrations/mysql.d.ts +56 -0
- package/dist/integrations/mysql.js +307 -0
- package/dist/integrations/mysql.js.map +1 -0
- package/dist/integrations/next.d.ts +41 -0
- package/dist/integrations/next.js +204 -0
- package/dist/integrations/next.js.map +1 -1
- package/dist/integrations/pg.d.ts +31 -3
- package/dist/integrations/pg.js +102 -22
- package/dist/integrations/pg.js.map +1 -1
- package/dist/integrations/postgres-js.d.ts +57 -0
- package/dist/integrations/postgres-js.js +311 -0
- package/dist/integrations/postgres-js.js.map +1 -0
- package/dist/integrations/prisma.d.ts +54 -0
- package/dist/integrations/prisma.js +186 -0
- package/dist/integrations/prisma.js.map +1 -0
- package/dist/integrations/redis.d.ts +6 -0
- package/dist/integrations/redis.js +16 -19
- package/dist/integrations/redis.js.map +1 -1
- package/dist/integrations/upstash-redis.d.ts +43 -0
- package/dist/integrations/upstash-redis.js +170 -0
- package/dist/integrations/upstash-redis.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file packages/node-sdk/src/integrations/prisma.ts
|
|
4
|
+
* @description Prisma auto-instrumentation integration for the JustAnalytics Node.js SDK.
|
|
5
|
+
*
|
|
6
|
+
* Uses Prisma's `$use` middleware API to intercept all queries and create
|
|
7
|
+
* `db.query` spans with model name, operation, and duration.
|
|
8
|
+
*
|
|
9
|
+
* Also supports Prisma's `$extends` client extensions API (Prisma 4.16+) as a
|
|
10
|
+
* fallback if `$use` is unavailable.
|
|
11
|
+
*
|
|
12
|
+
* Follows the same pattern as other integrations:
|
|
13
|
+
* - Integration class with `enable()`/`disable()` lifecycle methods
|
|
14
|
+
* - Fail-open design: never crashes the host process
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.PrismaIntegration = void 0;
|
|
18
|
+
const span_1 = require("../span");
|
|
19
|
+
const context_1 = require("../context");
|
|
20
|
+
const id_1 = require("../utils/id");
|
|
21
|
+
/**
|
|
22
|
+
* PrismaIntegration patches PrismaClient.prototype._request (internal) or
|
|
23
|
+
* uses $use middleware to intercept all Prisma queries and create db.query spans.
|
|
24
|
+
*
|
|
25
|
+
* Since Prisma's `$use` middleware is per-instance, we patch the constructor
|
|
26
|
+
* to auto-register our middleware on every new PrismaClient instance.
|
|
27
|
+
*/
|
|
28
|
+
class PrismaIntegration {
|
|
29
|
+
constructor(serviceName, options, onSpanEnd) {
|
|
30
|
+
this._enabled = false;
|
|
31
|
+
this._instrumentedDriver = null;
|
|
32
|
+
// Store original constructor for restoration
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
this._PrismaClientClass = null;
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
this._originalRequest = null;
|
|
37
|
+
this._serviceName = serviceName;
|
|
38
|
+
this._onSpanEnd = onSpanEnd;
|
|
39
|
+
const opts = options || {};
|
|
40
|
+
this._options = {
|
|
41
|
+
enabled: opts.enabled !== false,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
get instrumentedDriver() {
|
|
45
|
+
return this._instrumentedDriver;
|
|
46
|
+
}
|
|
47
|
+
enable() {
|
|
48
|
+
if (this._enabled)
|
|
49
|
+
return;
|
|
50
|
+
if (!this._options.enabled)
|
|
51
|
+
return;
|
|
52
|
+
try {
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
54
|
+
let prismaClient;
|
|
55
|
+
try {
|
|
56
|
+
prismaClient = require('@prisma/client');
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const PrismaClient = prismaClient.PrismaClient;
|
|
62
|
+
if (!PrismaClient || !PrismaClient.prototype) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this._PrismaClientClass = PrismaClient;
|
|
66
|
+
// Strategy: Patch PrismaClient.prototype._request which is the internal
|
|
67
|
+
// method all operations go through. This avoids per-instance $use.
|
|
68
|
+
const originalRequest = PrismaClient.prototype._request;
|
|
69
|
+
if (typeof originalRequest === 'function') {
|
|
70
|
+
this._originalRequest = originalRequest;
|
|
71
|
+
PrismaClient.prototype._request = this._wrapRequest(originalRequest);
|
|
72
|
+
this._instrumentedDriver = '@prisma/client';
|
|
73
|
+
this._enabled = true;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Fallback: patch _executeRequest (older Prisma versions)
|
|
77
|
+
const originalExecuteRequest = PrismaClient.prototype._executeRequest;
|
|
78
|
+
if (typeof originalExecuteRequest === 'function') {
|
|
79
|
+
this._originalRequest = originalExecuteRequest;
|
|
80
|
+
PrismaClient.prototype._executeRequest = this._wrapRequest(originalExecuteRequest);
|
|
81
|
+
this._instrumentedDriver = '@prisma/client';
|
|
82
|
+
this._enabled = true;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// No patchable method found
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
this._restoreOriginals();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
disable() {
|
|
92
|
+
if (!this._enabled)
|
|
93
|
+
return;
|
|
94
|
+
this._restoreOriginals();
|
|
95
|
+
this._instrumentedDriver = null;
|
|
96
|
+
this._enabled = false;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Wrap PrismaClient.prototype._request to create db.query spans.
|
|
100
|
+
*
|
|
101
|
+
* Prisma's internal _request receives a params object with:
|
|
102
|
+
* - model: string (e.g., 'User', 'Post')
|
|
103
|
+
* - action: string (e.g., 'findMany', 'create', 'update', 'delete')
|
|
104
|
+
* - args: object (query arguments -- NOT captured for security)
|
|
105
|
+
* - dataPath: string[]
|
|
106
|
+
* - clientMethod: string (e.g., 'user.findMany')
|
|
107
|
+
*/
|
|
108
|
+
_wrapRequest(original) {
|
|
109
|
+
const integration = this;
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
|
+
return function patchedRequest(...args) {
|
|
112
|
+
try {
|
|
113
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114
|
+
const params = args[0];
|
|
115
|
+
if (!params || typeof params !== 'object') {
|
|
116
|
+
return original.apply(this, args);
|
|
117
|
+
}
|
|
118
|
+
const model = params.model || params.modelName || 'unknown';
|
|
119
|
+
const action = params.action || params.operation || 'unknown';
|
|
120
|
+
const clientMethod = params.clientMethod || `${model}.${action}`;
|
|
121
|
+
const parentSpan = (0, context_1.getActiveSpan)();
|
|
122
|
+
const traceId = parentSpan?.traceId ?? (0, id_1.generateTraceId)();
|
|
123
|
+
const parentSpanId = parentSpan?.id ?? null;
|
|
124
|
+
const operationName = `db.query ${action}`;
|
|
125
|
+
const attributes = {
|
|
126
|
+
'db.system': 'prisma',
|
|
127
|
+
'db.operation': action,
|
|
128
|
+
'db.prisma.model': model,
|
|
129
|
+
'db.prisma.method': clientMethod,
|
|
130
|
+
'db.statement': `prisma.${clientMethod}`,
|
|
131
|
+
};
|
|
132
|
+
const span = new span_1.Span({
|
|
133
|
+
operationName,
|
|
134
|
+
serviceName: integration._serviceName,
|
|
135
|
+
kind: 'client',
|
|
136
|
+
traceId,
|
|
137
|
+
parentSpanId,
|
|
138
|
+
attributes,
|
|
139
|
+
});
|
|
140
|
+
try {
|
|
141
|
+
const result = original.apply(this, args);
|
|
142
|
+
if (result && typeof result.then === 'function') {
|
|
143
|
+
return result.then((value) => {
|
|
144
|
+
span.end();
|
|
145
|
+
integration._onSpanEnd(span);
|
|
146
|
+
return value;
|
|
147
|
+
}, (error) => {
|
|
148
|
+
span.setStatus('error', error instanceof Error ? error.message : String(error));
|
|
149
|
+
span.end();
|
|
150
|
+
integration._onSpanEnd(span);
|
|
151
|
+
throw error;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
span.end();
|
|
155
|
+
integration._onSpanEnd(span);
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
span.setStatus('error', error instanceof Error ? error.message : String(error));
|
|
160
|
+
span.end();
|
|
161
|
+
integration._onSpanEnd(span);
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return original.apply(this, args);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
_restoreOriginals() {
|
|
171
|
+
if (this._PrismaClientClass && this._originalRequest) {
|
|
172
|
+
// Determine which method was patched
|
|
173
|
+
if (this._PrismaClientClass.prototype._request === undefined) {
|
|
174
|
+
// _executeRequest was patched
|
|
175
|
+
this._PrismaClientClass.prototype._executeRequest = this._originalRequest;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
this._PrismaClientClass.prototype._request = this._originalRequest;
|
|
179
|
+
}
|
|
180
|
+
this._originalRequest = null;
|
|
181
|
+
this._PrismaClientClass = null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.PrismaIntegration = PrismaIntegration;
|
|
186
|
+
//# sourceMappingURL=prisma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/integrations/prisma.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,8 @@ export declare class RedisIntegration {
|
|
|
95
95
|
private _options;
|
|
96
96
|
private _serviceName;
|
|
97
97
|
private _onSpanEnd;
|
|
98
|
+
/** Which driver(s) were actually instrumented (for logging) */
|
|
99
|
+
private _instrumentedDriver;
|
|
98
100
|
private _originalIoRedisSendCommand;
|
|
99
101
|
private _ioRedisPrototype;
|
|
100
102
|
private _originalNodeRedisSendCommand;
|
|
@@ -107,6 +109,10 @@ export declare class RedisIntegration {
|
|
|
107
109
|
* @param onSpanEnd - Callback invoked when a span ends (enqueues to transport)
|
|
108
110
|
*/
|
|
109
111
|
constructor(serviceName: string, options: RedisIntegrationOptions | undefined, onSpanEnd: (span: Span) => void);
|
|
112
|
+
/**
|
|
113
|
+
* Get which driver was instrumented, or null if none.
|
|
114
|
+
*/
|
|
115
|
+
get instrumentedDriver(): string | null;
|
|
110
116
|
/**
|
|
111
117
|
* Activate the integration: load Redis modules and patch prototypes.
|
|
112
118
|
*
|
|
@@ -208,6 +208,8 @@ class RedisIntegration {
|
|
|
208
208
|
*/
|
|
209
209
|
constructor(serviceName, options, onSpanEnd) {
|
|
210
210
|
this._enabled = false;
|
|
211
|
+
/** Which driver(s) were actually instrumented (for logging) */
|
|
212
|
+
this._instrumentedDriver = null;
|
|
211
213
|
// ioredis originals
|
|
212
214
|
this._originalIoRedisSendCommand = null;
|
|
213
215
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -225,6 +227,12 @@ class RedisIntegration {
|
|
|
225
227
|
maxStatementLength: opts.maxStatementLength ?? 512,
|
|
226
228
|
};
|
|
227
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Get which driver was instrumented, or null if none.
|
|
232
|
+
*/
|
|
233
|
+
get instrumentedDriver() {
|
|
234
|
+
return this._instrumentedDriver;
|
|
235
|
+
}
|
|
228
236
|
/**
|
|
229
237
|
* Activate the integration: load Redis modules and patch prototypes.
|
|
230
238
|
*
|
|
@@ -240,12 +248,12 @@ class RedisIntegration {
|
|
|
240
248
|
if (!this._options.enabled)
|
|
241
249
|
return;
|
|
242
250
|
try {
|
|
243
|
-
|
|
251
|
+
const drivers = [];
|
|
244
252
|
// Attempt to patch ioredis
|
|
245
253
|
try {
|
|
246
254
|
this._patchIoRedis();
|
|
247
255
|
if (this._ioRedisPrototype) {
|
|
248
|
-
|
|
256
|
+
drivers.push('ioredis');
|
|
249
257
|
}
|
|
250
258
|
}
|
|
251
259
|
catch {
|
|
@@ -255,18 +263,17 @@ class RedisIntegration {
|
|
|
255
263
|
try {
|
|
256
264
|
this._patchNodeRedis();
|
|
257
265
|
if (this._nodeRedisPrototype) {
|
|
258
|
-
|
|
266
|
+
drivers.push('@redis/client');
|
|
259
267
|
}
|
|
260
268
|
}
|
|
261
269
|
catch {
|
|
262
270
|
// @redis/client not available or patching failed -- silently skip
|
|
263
271
|
}
|
|
264
|
-
if (
|
|
265
|
-
|
|
266
|
-
console.debug('[JustAnalytics] Neither ioredis nor @redis/client found. Skipping Redis auto-instrumentation.');
|
|
267
|
-
}
|
|
272
|
+
if (drivers.length === 0) {
|
|
273
|
+
// Neither found - no error, caller handles logging
|
|
268
274
|
return;
|
|
269
275
|
}
|
|
276
|
+
this._instrumentedDriver = drivers.join(', ');
|
|
270
277
|
this._enabled = true;
|
|
271
278
|
}
|
|
272
279
|
catch (error) {
|
|
@@ -286,6 +293,7 @@ class RedisIntegration {
|
|
|
286
293
|
if (!this._enabled)
|
|
287
294
|
return;
|
|
288
295
|
this._restoreOriginals();
|
|
296
|
+
this._instrumentedDriver = null;
|
|
289
297
|
this._enabled = false;
|
|
290
298
|
}
|
|
291
299
|
/**
|
|
@@ -303,16 +311,10 @@ class RedisIntegration {
|
|
|
303
311
|
}
|
|
304
312
|
catch {
|
|
305
313
|
// ioredis module is not installed -- silently skip
|
|
306
|
-
if (typeof console !== 'undefined') {
|
|
307
|
-
console.debug('[JustAnalytics] ioredis module not found. Skipping ioredis auto-instrumentation.');
|
|
308
|
-
}
|
|
309
314
|
return;
|
|
310
315
|
}
|
|
311
316
|
const RedisClass = ioredis.default || ioredis;
|
|
312
317
|
if (!RedisClass || !RedisClass.prototype) {
|
|
313
|
-
if (typeof console !== 'undefined') {
|
|
314
|
-
console.debug('[JustAnalytics] ioredis.Redis prototype not found. Skipping ioredis auto-instrumentation.');
|
|
315
|
-
}
|
|
316
318
|
return;
|
|
317
319
|
}
|
|
318
320
|
// Store references for restoration
|
|
@@ -335,9 +337,6 @@ class RedisIntegration {
|
|
|
335
337
|
}
|
|
336
338
|
catch {
|
|
337
339
|
// @redis/client module is not installed -- silently skip
|
|
338
|
-
if (typeof console !== 'undefined') {
|
|
339
|
-
console.debug('[JustAnalytics] @redis/client module not found. Skipping node-redis auto-instrumentation.');
|
|
340
|
-
}
|
|
341
340
|
return;
|
|
342
341
|
}
|
|
343
342
|
// node-redis v4+ exposes a default Commander or client class
|
|
@@ -356,9 +355,7 @@ class RedisIntegration {
|
|
|
356
355
|
nodeRedis.default.prototype.sendCommand = this._wrapNodeRedisSendCommand(this._originalNodeRedisSendCommand);
|
|
357
356
|
return;
|
|
358
357
|
}
|
|
359
|
-
|
|
360
|
-
console.debug('[JustAnalytics] @redis/client sendCommand method not found. Skipping node-redis auto-instrumentation.');
|
|
361
|
-
}
|
|
358
|
+
// sendCommand method not found on @redis/client -- silently skip
|
|
362
359
|
}
|
|
363
360
|
/**
|
|
364
361
|
* Restore all patched functions to their originals.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/integrations/redis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/integrations/redis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file packages/node-sdk/src/integrations/upstash-redis.ts
|
|
3
|
+
* @description Upstash Redis auto-instrumentation integration for the JustAnalytics Node.js SDK.
|
|
4
|
+
*
|
|
5
|
+
* Patches the `@upstash/redis` Redis class to auto-create `cache` spans
|
|
6
|
+
* for all Redis commands. Upstash Redis uses an HTTP-based transport, so
|
|
7
|
+
* it's commonly used in serverless environments (Vercel, Cloudflare Workers).
|
|
8
|
+
*
|
|
9
|
+
* Follows the same pattern as other integrations:
|
|
10
|
+
* - Integration class with `enable()`/`disable()` lifecycle methods
|
|
11
|
+
* - Fail-open design: never crashes the host process
|
|
12
|
+
*
|
|
13
|
+
* SECURITY: Redis values are NEVER captured. Only command name + key(s).
|
|
14
|
+
*/
|
|
15
|
+
import { Span } from '../span';
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for the Upstash Redis auto-instrumentation integration.
|
|
18
|
+
*/
|
|
19
|
+
export interface UpstashRedisIntegrationOptions {
|
|
20
|
+
/** Enable/disable the integration (default: true) */
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
/** Maximum character length for the db.statement attribute (default: 512) */
|
|
23
|
+
maxStatementLength?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* UpstashRedisIntegration patches the @upstash/redis Redis class prototype
|
|
27
|
+
* to auto-create cache spans for all Redis commands.
|
|
28
|
+
*/
|
|
29
|
+
export declare class UpstashRedisIntegration {
|
|
30
|
+
private _enabled;
|
|
31
|
+
private _options;
|
|
32
|
+
private _serviceName;
|
|
33
|
+
private _onSpanEnd;
|
|
34
|
+
private _instrumentedDriver;
|
|
35
|
+
private _redisProto;
|
|
36
|
+
private _originals;
|
|
37
|
+
constructor(serviceName: string, options: UpstashRedisIntegrationOptions | undefined, onSpanEnd: (span: Span) => void);
|
|
38
|
+
get instrumentedDriver(): string | null;
|
|
39
|
+
enable(): void;
|
|
40
|
+
disable(): void;
|
|
41
|
+
private _wrapCommand;
|
|
42
|
+
private _restoreOriginals;
|
|
43
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file packages/node-sdk/src/integrations/upstash-redis.ts
|
|
4
|
+
* @description Upstash Redis auto-instrumentation integration for the JustAnalytics Node.js SDK.
|
|
5
|
+
*
|
|
6
|
+
* Patches the `@upstash/redis` Redis class to auto-create `cache` spans
|
|
7
|
+
* for all Redis commands. Upstash Redis uses an HTTP-based transport, so
|
|
8
|
+
* it's commonly used in serverless environments (Vercel, Cloudflare Workers).
|
|
9
|
+
*
|
|
10
|
+
* Follows the same pattern as other integrations:
|
|
11
|
+
* - Integration class with `enable()`/`disable()` lifecycle methods
|
|
12
|
+
* - Fail-open design: never crashes the host process
|
|
13
|
+
*
|
|
14
|
+
* SECURITY: Redis values are NEVER captured. Only command name + key(s).
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.UpstashRedisIntegration = void 0;
|
|
18
|
+
const span_1 = require("../span");
|
|
19
|
+
const context_1 = require("../context");
|
|
20
|
+
const id_1 = require("../utils/id");
|
|
21
|
+
const redis_1 = require("./redis");
|
|
22
|
+
/** Common Redis commands used by @upstash/redis */
|
|
23
|
+
const UPSTASH_COMMANDS = [
|
|
24
|
+
'get', 'set', 'del', 'exists', 'expire', 'ttl', 'incr', 'decr',
|
|
25
|
+
'hget', 'hset', 'hdel', 'hgetall', 'hmget', 'hmset',
|
|
26
|
+
'lpush', 'rpush', 'lpop', 'rpop', 'lrange', 'llen',
|
|
27
|
+
'sadd', 'srem', 'smembers', 'sismember', 'scard',
|
|
28
|
+
'zadd', 'zrem', 'zrange', 'zrangebyscore', 'zscore', 'zcard',
|
|
29
|
+
'mget', 'mset', 'append', 'strlen',
|
|
30
|
+
'setex', 'psetex', 'setnx', 'getset',
|
|
31
|
+
'publish', 'subscribe',
|
|
32
|
+
'eval', 'evalsha',
|
|
33
|
+
'json', 'scan', 'hscan', 'sscan', 'zscan',
|
|
34
|
+
'ping', 'dbsize', 'flushdb', 'flushall',
|
|
35
|
+
'incrby', 'decrby', 'incrbyfloat',
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* UpstashRedisIntegration patches the @upstash/redis Redis class prototype
|
|
39
|
+
* to auto-create cache spans for all Redis commands.
|
|
40
|
+
*/
|
|
41
|
+
class UpstashRedisIntegration {
|
|
42
|
+
constructor(serviceName, options, onSpanEnd) {
|
|
43
|
+
this._enabled = false;
|
|
44
|
+
this._instrumentedDriver = null;
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
this._redisProto = null;
|
|
47
|
+
this._originals = new Map();
|
|
48
|
+
this._serviceName = serviceName;
|
|
49
|
+
this._onSpanEnd = onSpanEnd;
|
|
50
|
+
const opts = options || {};
|
|
51
|
+
this._options = {
|
|
52
|
+
enabled: opts.enabled !== false,
|
|
53
|
+
maxStatementLength: opts.maxStatementLength ?? 512,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
get instrumentedDriver() {
|
|
57
|
+
return this._instrumentedDriver;
|
|
58
|
+
}
|
|
59
|
+
enable() {
|
|
60
|
+
if (this._enabled)
|
|
61
|
+
return;
|
|
62
|
+
if (!this._options.enabled)
|
|
63
|
+
return;
|
|
64
|
+
try {
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
66
|
+
let upstashRedis;
|
|
67
|
+
try {
|
|
68
|
+
upstashRedis = require('@upstash/redis');
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const Redis = upstashRedis.Redis;
|
|
74
|
+
if (!Redis || !Redis.prototype) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this._redisProto = Redis.prototype;
|
|
78
|
+
let patchedCount = 0;
|
|
79
|
+
for (const cmd of UPSTASH_COMMANDS) {
|
|
80
|
+
const original = Redis.prototype[cmd];
|
|
81
|
+
if (typeof original !== 'function')
|
|
82
|
+
continue;
|
|
83
|
+
this._originals.set(cmd, original);
|
|
84
|
+
Redis.prototype[cmd] = this._wrapCommand(original, cmd);
|
|
85
|
+
patchedCount++;
|
|
86
|
+
}
|
|
87
|
+
if (patchedCount === 0)
|
|
88
|
+
return;
|
|
89
|
+
this._instrumentedDriver = '@upstash/redis';
|
|
90
|
+
this._enabled = true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
this._restoreOriginals();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
disable() {
|
|
97
|
+
if (!this._enabled)
|
|
98
|
+
return;
|
|
99
|
+
this._restoreOriginals();
|
|
100
|
+
this._instrumentedDriver = null;
|
|
101
|
+
this._enabled = false;
|
|
102
|
+
}
|
|
103
|
+
_wrapCommand(original, command) {
|
|
104
|
+
const integration = this;
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
|
+
return function patchedCommand(...args) {
|
|
107
|
+
try {
|
|
108
|
+
const parentSpan = (0, context_1.getActiveSpan)();
|
|
109
|
+
const traceId = parentSpan?.traceId ?? (0, id_1.generateTraceId)();
|
|
110
|
+
const parentSpanId = parentSpan?.id ?? null;
|
|
111
|
+
const upperCommand = command.toUpperCase();
|
|
112
|
+
const statement = (0, redis_1.formatRedisStatement)(upperCommand, args, integration._options.maxStatementLength);
|
|
113
|
+
const operationName = `cache ${upperCommand}`;
|
|
114
|
+
const attributes = {
|
|
115
|
+
'db.system': 'redis',
|
|
116
|
+
'db.statement': statement,
|
|
117
|
+
'db.operation': upperCommand,
|
|
118
|
+
'db.driver': '@upstash/redis',
|
|
119
|
+
};
|
|
120
|
+
const span = new span_1.Span({
|
|
121
|
+
operationName,
|
|
122
|
+
serviceName: integration._serviceName,
|
|
123
|
+
kind: 'client',
|
|
124
|
+
traceId,
|
|
125
|
+
parentSpanId,
|
|
126
|
+
attributes,
|
|
127
|
+
});
|
|
128
|
+
try {
|
|
129
|
+
const result = original.apply(this, args);
|
|
130
|
+
// @upstash/redis methods return Promises (HTTP-based)
|
|
131
|
+
if (result && typeof result.then === 'function') {
|
|
132
|
+
return result.then((value) => {
|
|
133
|
+
span.end();
|
|
134
|
+
integration._onSpanEnd(span);
|
|
135
|
+
return value;
|
|
136
|
+
}, (error) => {
|
|
137
|
+
span.setStatus('error', error instanceof Error ? error.message : String(error));
|
|
138
|
+
span.end();
|
|
139
|
+
integration._onSpanEnd(span);
|
|
140
|
+
throw error;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
span.end();
|
|
144
|
+
integration._onSpanEnd(span);
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
span.setStatus('error', error instanceof Error ? error.message : String(error));
|
|
149
|
+
span.end();
|
|
150
|
+
integration._onSpanEnd(span);
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return original.apply(this, args);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
_restoreOriginals() {
|
|
160
|
+
if (this._redisProto) {
|
|
161
|
+
for (const [cmd, original] of this._originals) {
|
|
162
|
+
this._redisProto[cmd] = original;
|
|
163
|
+
}
|
|
164
|
+
this._originals.clear();
|
|
165
|
+
this._redisProto = null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.UpstashRedisIntegration = UpstashRedisIntegration;
|
|
170
|
+
//# sourceMappingURL=upstash-redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upstash-redis.js","sourceRoot":"","sources":["../../src/integrations/upstash-redis.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,kCAA+B;AAC/B,wCAA2C;AAC3C,oCAA8C;AAC9C,mCAA+C;AAiB/C,mDAAmD;AACnD,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAC9D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAClD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO;IAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO;IAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACpC,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACzC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IACvC,QAAQ,EAAE,QAAQ,EAAE,aAAa;CACzB,CAAC;AAEX;;;GAGG;AACH,MAAa,uBAAuB;IAYlC,YACE,WAAmB,EACnB,OAAmD,EACnD,SAA+B;QAdzB,aAAQ,GAAY,KAAK,CAAC;QAK1B,wBAAmB,GAAkB,IAAI,CAAC;QAElD,8DAA8D;QACtD,gBAAW,GAAQ,IAAI,CAAC;QACxB,eAAU,GAAiD,IAAI,GAAG,EAAE,CAAC;QAO3E,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;YAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,GAAG;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,8DAA8D;YAC9D,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;YACnC,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,OAAO,QAAQ,KAAK,UAAU;oBAAE,SAAS;gBAE7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACnC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACxD,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,YAAY,KAAK,CAAC;gBAAE,OAAO;YAE/B,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEO,YAAY,CAClB,QAAyC,EACzC,OAAe;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,8DAA8D;QAC9D,OAAO,SAAS,cAAc,CAAY,GAAG,IAAe;YAC1D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,IAAA,oBAAe,GAAE,CAAC;gBACzD,MAAM,YAAY,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;gBAE5C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAA,4BAAoB,EACpC,YAAY,EACZ,IAAI,EACJ,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CACxC,CAAC;gBACF,MAAM,aAAa,GAAG,SAAS,YAAY,EAAE,CAAC;gBAE9C,MAAM,UAAU,GAA4B;oBAC1C,WAAW,EAAE,OAAO;oBACpB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,YAAY;oBAC5B,WAAW,EAAE,gBAAgB;iBAC9B,CAAC;gBAEF,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC;oBACpB,aAAa;oBACb,WAAW,EAAE,WAAW,CAAC,YAAY;oBACrC,IAAI,EAAE,QAAQ;oBACd,OAAO;oBACP,YAAY;oBACZ,UAAU;iBACX,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAE1C,sDAAsD;oBACtD,IAAI,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACtE,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,KAAc,EAAE,EAAE;4BACjB,IAAI,CAAC,GAAG,EAAE,CAAC;4BACX,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC7B,OAAO,KAAK,CAAC;wBACf,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;4BACjB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;4BAChF,IAAI,CAAC,GAAG,EAAE,CAAC;4BACX,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC7B,MAAM,KAAK,CAAC;wBACd,CAAC,CACF,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AA9JD,0DA8JC"}
|