@devskin/agent 1.0.2 → 1.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/instrumentation/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAuDlD"}
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/instrumentation/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAsElD"}
@@ -10,16 +10,17 @@ function instrumentMysql(agent) {
10
10
  Module.prototype.require = function (id) {
11
11
  const module = originalRequire.apply(this, arguments);
12
12
  if (id === 'mysql2' && module.Connection && !module.__devskin_instrumented) {
13
- if (agent.getConfig().debug) {
14
- console.log('[DevSkin Agent] Intercepted mysql2 load, instrumenting...');
15
- }
16
13
  instrumentMysql2(agent, module);
17
14
  module.__devskin_instrumented = true;
18
15
  }
19
- if (id === 'mysql' && module.Connection && !module.__devskin_instrumented) {
20
- if (agent.getConfig().debug) {
21
- console.log('[DevSkin Agent] Intercepted mysql load, instrumenting...');
16
+ if (id === 'mysql2/promise') {
17
+ const mysql2Base = require('mysql2');
18
+ if (mysql2Base.Connection && !mysql2Base.__devskin_instrumented) {
19
+ instrumentMysql2(agent, mysql2Base);
20
+ mysql2Base.__devskin_instrumented = true;
22
21
  }
22
+ }
23
+ if (id === 'mysql' && module.Connection && !module.__devskin_instrumented) {
23
24
  instrumentMysqlLegacy(agent, module);
24
25
  module.__devskin_instrumented = true;
25
26
  }
@@ -32,7 +33,17 @@ function instrumentMysql(agent) {
32
33
  mysql2.__devskin_instrumented = true;
33
34
  }
34
35
  }
35
- catch {
36
+ catch (e) {
37
+ }
38
+ try {
39
+ const mysql2Promise = require('mysql2/promise');
40
+ const mysql2Base = require('mysql2');
41
+ if (mysql2Base && mysql2Base.Connection && !mysql2Base.__devskin_instrumented) {
42
+ instrumentMysql2(agent, mysql2Base);
43
+ mysql2Base.__devskin_instrumented = true;
44
+ }
45
+ }
46
+ catch (e) {
36
47
  }
37
48
  try {
38
49
  const mysql = require('mysql');
@@ -52,10 +63,12 @@ function instrumentMysql(agent) {
52
63
  }
53
64
  function instrumentMysql2(agent, mysql2) {
54
65
  const config = agent.getConfig();
55
- const originalQuery = mysql2.Connection.prototype.query;
66
+ const originalConnectionQuery = mysql2.Connection.prototype.query;
67
+ const originalPoolQuery = mysql2.Pool ? mysql2.Pool.prototype.query : null;
68
+ const originalPoolConnectionQuery = mysql2.PoolConnection ? mysql2.PoolConnection.prototype.query : null;
56
69
  mysql2.Connection.prototype.query = function (sql, values, callback) {
57
70
  if (!agent.shouldSample()) {
58
- return originalQuery.call(this, sql, values, callback);
71
+ return originalConnectionQuery.call(this, sql, values, callback);
59
72
  }
60
73
  let actualSql = sql;
61
74
  let actualValues = values;
@@ -112,10 +125,10 @@ function instrumentMysql2(agent, mysql2) {
112
125
  }
113
126
  };
114
127
  if (actualCallback) {
115
- return originalQuery.call(this, actualSql, actualValues, wrappedCallback);
128
+ return originalConnectionQuery.call(this, actualSql, actualValues, wrappedCallback);
116
129
  }
117
130
  else {
118
- const query = originalQuery.call(this, actualSql, actualValues);
131
+ const query = originalConnectionQuery.call(this, actualSql, actualValues);
119
132
  return query
120
133
  .then((results) => {
121
134
  const duration = Date.now() - startTime;
@@ -142,6 +155,100 @@ function instrumentMysql2(agent, mysql2) {
142
155
  });
143
156
  }
144
157
  };
158
+ if (mysql2.Pool && mysql2.Pool.prototype.query && originalPoolQuery) {
159
+ const originalPoolQueryMethod = originalPoolQuery;
160
+ mysql2.Pool.prototype.query = function (sql, values, callback) {
161
+ return originalPoolQueryMethod.call(this, sql, values, callback);
162
+ };
163
+ }
164
+ if (mysql2.PoolConnection && mysql2.PoolConnection.prototype.query && originalPoolConnectionQuery) {
165
+ mysql2.PoolConnection.prototype.query = function (sql, values, callback) {
166
+ if (!agent.shouldSample()) {
167
+ return originalPoolConnectionQuery.call(this, sql, values, callback);
168
+ }
169
+ let actualSql = sql;
170
+ let actualValues = values;
171
+ let actualCallback = callback;
172
+ if (typeof sql === 'object') {
173
+ actualSql = sql.sql;
174
+ actualValues = sql.values;
175
+ }
176
+ if (typeof values === 'function') {
177
+ actualCallback = values;
178
+ actualValues = undefined;
179
+ }
180
+ const connectionConfig = this.config;
181
+ const dbName = connectionConfig?.database || 'unknown';
182
+ const host = connectionConfig?.host || 'localhost';
183
+ const port = connectionConfig?.port || 3306;
184
+ const user = connectionConfig?.user;
185
+ const span = new span_1.SpanBuilder(`mysql.query`, types_1.SpanKind.CLIENT, config.serviceName, config.serviceVersion, config.environment, agent);
186
+ const queryType = extractQueryType(actualSql);
187
+ span.setAttributes({
188
+ 'db.system': 'mysql',
189
+ 'db.name': dbName,
190
+ 'db.statement': normalizeQuery(actualSql),
191
+ 'db.operation': queryType,
192
+ 'db.user': user,
193
+ 'net.peer.name': host,
194
+ 'net.peer.port': port,
195
+ 'db.connection_string': `mysql://${host}:${port}/${dbName}`,
196
+ });
197
+ span.setAttribute('span.kind', 'client');
198
+ const startTime = Date.now();
199
+ const wrappedCallback = (err, results, fields) => {
200
+ if (err) {
201
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
202
+ span.setAttribute('error', true);
203
+ span.setAttribute('error.message', err.message);
204
+ span.setAttribute('error.type', err.code || 'Error');
205
+ }
206
+ else {
207
+ span.setStatus(types_1.SpanStatus.OK);
208
+ if (results) {
209
+ if (Array.isArray(results)) {
210
+ span.setAttribute('db.rows_affected', results.length);
211
+ }
212
+ else if (results.affectedRows !== undefined) {
213
+ span.setAttribute('db.rows_affected', results.affectedRows);
214
+ }
215
+ }
216
+ }
217
+ span.end();
218
+ if (actualCallback) {
219
+ actualCallback(err, results, fields);
220
+ }
221
+ };
222
+ if (actualCallback) {
223
+ return originalPoolConnectionQuery.call(this, actualSql, actualValues, wrappedCallback);
224
+ }
225
+ else {
226
+ const query = originalPoolConnectionQuery.call(this, actualSql, actualValues);
227
+ return query
228
+ .then((results) => {
229
+ span.setStatus(types_1.SpanStatus.OK);
230
+ if (results && results[0]) {
231
+ if (Array.isArray(results[0])) {
232
+ span.setAttribute('db.rows_affected', results[0].length);
233
+ }
234
+ else if (results[0].affectedRows !== undefined) {
235
+ span.setAttribute('db.rows_affected', results[0].affectedRows);
236
+ }
237
+ }
238
+ span.end();
239
+ return results;
240
+ })
241
+ .catch((err) => {
242
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
243
+ span.setAttribute('error', true);
244
+ span.setAttribute('error.message', err.message);
245
+ span.setAttribute('error.type', err.code || 'Error');
246
+ span.end();
247
+ throw err;
248
+ });
249
+ }
250
+ };
251
+ }
145
252
  if (config.debug) {
146
253
  console.log('[DevSkin Agent] MySQL2 instrumentation enabled');
147
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/instrumentation/mysql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/instrumentation/mysql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devskin/agent",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "DevSkin Monitor Agent - JavaScript/Node.js Instrumentation SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,6 +17,7 @@
17
17
  "prepublishOnly": "npm run build"
18
18
  },
19
19
  "dependencies": {
20
+ "@devskin/agent": "^1.0.2",
20
21
  "axios": "^1.6.5",
21
22
  "uuid": "^9.0.1"
22
23
  },
@@ -14,20 +14,23 @@ export function instrumentMysql(agent: Agent): void {
14
14
  Module.prototype.require = function (id: string) {
15
15
  const module = originalRequire.apply(this, arguments);
16
16
 
17
- // Instrument mysql2 when it's loaded
17
+ // Instrument mysql2 (base module)
18
18
  if (id === 'mysql2' && module.Connection && !module.__devskin_instrumented) {
19
- if (agent.getConfig().debug) {
20
- console.log('[DevSkin Agent] Intercepted mysql2 load, instrumenting...');
21
- }
22
19
  instrumentMysql2(agent, module);
23
20
  module.__devskin_instrumented = true;
24
21
  }
25
22
 
23
+ // Instrument mysql2/promise (used by TypeORM) - instrument base mysql2
24
+ if (id === 'mysql2/promise') {
25
+ const mysql2Base = require('mysql2');
26
+ if (mysql2Base.Connection && !mysql2Base.__devskin_instrumented) {
27
+ instrumentMysql2(agent, mysql2Base);
28
+ mysql2Base.__devskin_instrumented = true;
29
+ }
30
+ }
31
+
26
32
  // Instrument mysql when it's loaded
27
33
  if (id === 'mysql' && module.Connection && !module.__devskin_instrumented) {
28
- if (agent.getConfig().debug) {
29
- console.log('[DevSkin Agent] Intercepted mysql load, instrumenting...');
30
- }
31
34
  instrumentMysqlLegacy(agent, module);
32
35
  module.__devskin_instrumented = true;
33
36
  }
@@ -42,10 +45,22 @@ export function instrumentMysql(agent: Agent): void {
42
45
  instrumentMysql2(agent, mysql2);
43
46
  mysql2.__devskin_instrumented = true;
44
47
  }
45
- } catch {
48
+ } catch (e) {
46
49
  // mysql2 not yet loaded
47
50
  }
48
51
 
52
+ // Also try mysql2/promise (used by TypeORM)
53
+ try {
54
+ const mysql2Promise = require('mysql2/promise');
55
+ const mysql2Base = require('mysql2');
56
+ if (mysql2Base && mysql2Base.Connection && !mysql2Base.__devskin_instrumented) {
57
+ instrumentMysql2(agent, mysql2Base);
58
+ mysql2Base.__devskin_instrumented = true;
59
+ }
60
+ } catch (e) {
61
+ // mysql2/promise not yet loaded
62
+ }
63
+
49
64
  try {
50
65
  const mysql = require('mysql');
51
66
  if (mysql && mysql.Connection && !mysql.__devskin_instrumented) {
@@ -68,11 +83,15 @@ export function instrumentMysql(agent: Agent): void {
68
83
  function instrumentMysql2(agent: Agent, mysql2: any): void {
69
84
  const config = agent.getConfig();
70
85
 
86
+ // Save original methods BEFORE patching
87
+ const originalConnectionQuery = mysql2.Connection.prototype.query;
88
+ const originalPoolQuery = mysql2.Pool ? mysql2.Pool.prototype.query : null;
89
+ const originalPoolConnectionQuery = mysql2.PoolConnection ? mysql2.PoolConnection.prototype.query : null;
90
+
71
91
  // Patch Connection.prototype.query
72
- const originalQuery = mysql2.Connection.prototype.query;
73
92
  mysql2.Connection.prototype.query = function (sql: any, values: any, callback: any) {
74
93
  if (!agent.shouldSample()) {
75
- return originalQuery.call(this, sql, values, callback);
94
+ return originalConnectionQuery.call(this, sql, values, callback);
76
95
  }
77
96
 
78
97
  // Handle different call signatures
@@ -156,10 +175,10 @@ function instrumentMysql2(agent: Agent, mysql2: any): void {
156
175
 
157
176
  // Call original query with wrapped callback
158
177
  if (actualCallback) {
159
- return originalQuery.call(this, actualSql, actualValues, wrappedCallback);
178
+ return originalConnectionQuery.call(this, actualSql, actualValues, wrappedCallback);
160
179
  } else {
161
180
  // Promise-based query
162
- const query = originalQuery.call(this, actualSql, actualValues);
181
+ const query = originalConnectionQuery.call(this, actualSql, actualValues);
163
182
 
164
183
  // Wrap promise
165
184
  return query
@@ -188,6 +207,116 @@ function instrumentMysql2(agent: Agent, mysql2: any): void {
188
207
  }
189
208
  };
190
209
 
210
+ // CRITICAL: Also patch Pool.query for TypeORM support
211
+ // TypeORM uses Pool.query() directly, not Connection instances
212
+ if (mysql2.Pool && mysql2.Pool.prototype.query && originalPoolQuery) {
213
+ const originalPoolQueryMethod = originalPoolQuery;
214
+ mysql2.Pool.prototype.query = function (sql: any, values: any, callback: any) {
215
+ // Pool.query internally gets a connection from the pool and calls connection.query()
216
+ // Since we already instrumented Connection.prototype.query, just call the original
217
+ // Pool.query and it will use an instrumented connection
218
+ return originalPoolQueryMethod.call(this, sql, values, callback);
219
+ };
220
+ }
221
+
222
+ // CRITICAL: PoolConnection has its own query() method - instrument it with full logic
223
+ if (mysql2.PoolConnection && mysql2.PoolConnection.prototype.query && originalPoolConnectionQuery) {
224
+ mysql2.PoolConnection.prototype.query = function (sql: any, values: any, callback: any) {
225
+ if (!agent.shouldSample()) {
226
+ return originalPoolConnectionQuery.call(this, sql, values, callback);
227
+ }
228
+
229
+ let actualSql = sql;
230
+ let actualValues = values;
231
+ let actualCallback = callback;
232
+ if (typeof sql === 'object') {
233
+ actualSql = sql.sql;
234
+ actualValues = sql.values;
235
+ }
236
+ if (typeof values === 'function') {
237
+ actualCallback = values;
238
+ actualValues = undefined;
239
+ }
240
+ const connectionConfig = (this as any).config;
241
+ const dbName = connectionConfig?.database || 'unknown';
242
+ const host = connectionConfig?.host || 'localhost';
243
+ const port = connectionConfig?.port || 3306;
244
+ const user = connectionConfig?.user;
245
+ const span = new SpanBuilder(
246
+ `mysql.query`,
247
+ SpanKind.CLIENT,
248
+ config.serviceName!,
249
+ config.serviceVersion,
250
+ config.environment,
251
+ agent
252
+ );
253
+ const queryType = extractQueryType(actualSql);
254
+ span.setAttributes({
255
+ 'db.system': 'mysql',
256
+ 'db.name': dbName,
257
+ 'db.statement': normalizeQuery(actualSql),
258
+ 'db.operation': queryType,
259
+ 'db.user': user,
260
+ 'net.peer.name': host,
261
+ 'net.peer.port': port,
262
+ 'db.connection_string': `mysql://${host}:${port}/${dbName}`,
263
+ });
264
+ span.setAttribute('span.kind', 'client');
265
+ const startTime = Date.now();
266
+ const wrappedCallback = (err: any, results: any, fields: any) => {
267
+ if (err) {
268
+ span.setStatus(SpanStatus.ERROR, err.message);
269
+ span.setAttribute('error', true);
270
+ span.setAttribute('error.message', err.message);
271
+ span.setAttribute('error.type', err.code || 'Error');
272
+ }
273
+ else {
274
+ span.setStatus(SpanStatus.OK);
275
+ if (results) {
276
+ if (Array.isArray(results)) {
277
+ span.setAttribute('db.rows_affected', results.length);
278
+ }
279
+ else if (results.affectedRows !== undefined) {
280
+ span.setAttribute('db.rows_affected', results.affectedRows);
281
+ }
282
+ }
283
+ }
284
+ span.end();
285
+ if (actualCallback) {
286
+ actualCallback(err, results, fields);
287
+ }
288
+ };
289
+ if (actualCallback) {
290
+ return originalPoolConnectionQuery.call(this, actualSql, actualValues, wrappedCallback);
291
+ }
292
+ else {
293
+ const query = originalPoolConnectionQuery.call(this, actualSql, actualValues);
294
+ return query
295
+ .then((results: any) => {
296
+ span.setStatus(SpanStatus.OK);
297
+ if (results && results[0]) {
298
+ if (Array.isArray(results[0])) {
299
+ span.setAttribute('db.rows_affected', results[0].length);
300
+ }
301
+ else if (results[0].affectedRows !== undefined) {
302
+ span.setAttribute('db.rows_affected', results[0].affectedRows);
303
+ }
304
+ }
305
+ span.end();
306
+ return results;
307
+ })
308
+ .catch((err: any) => {
309
+ span.setStatus(SpanStatus.ERROR, err.message);
310
+ span.setAttribute('error', true);
311
+ span.setAttribute('error.message', err.message);
312
+ span.setAttribute('error.type', err.code || 'Error');
313
+ span.end();
314
+ throw err;
315
+ });
316
+ }
317
+ };
318
+ }
319
+
191
320
  if (config.debug) {
192
321
  console.log('[DevSkin Agent] MySQL2 instrumentation enabled');
193
322
  }