@devskin/agent 1.0.0 → 1.0.2

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.
Files changed (46) hide show
  1. package/README.md +5 -0
  2. package/dist/agent.d.ts +1 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +27 -1
  5. package/dist/agent.js.map +1 -1
  6. package/dist/api-client.d.ts +2 -1
  7. package/dist/api-client.d.ts.map +1 -1
  8. package/dist/api-client.js +10 -5
  9. package/dist/api-client.js.map +1 -1
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +5 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/instrumentation/elasticsearch.d.ts +3 -0
  15. package/dist/instrumentation/elasticsearch.d.ts.map +1 -0
  16. package/dist/instrumentation/elasticsearch.js +77 -0
  17. package/dist/instrumentation/elasticsearch.js.map +1 -0
  18. package/dist/instrumentation/mongodb.d.ts +3 -0
  19. package/dist/instrumentation/mongodb.d.ts.map +1 -0
  20. package/dist/instrumentation/mongodb.js +121 -0
  21. package/dist/instrumentation/mongodb.js.map +1 -0
  22. package/dist/instrumentation/mysql.d.ts +3 -0
  23. package/dist/instrumentation/mysql.d.ts.map +1 -0
  24. package/dist/instrumentation/mysql.js +243 -0
  25. package/dist/instrumentation/mysql.js.map +1 -0
  26. package/dist/instrumentation/postgres.d.ts +3 -0
  27. package/dist/instrumentation/postgres.d.ts.map +1 -0
  28. package/dist/instrumentation/postgres.js +173 -0
  29. package/dist/instrumentation/postgres.js.map +1 -0
  30. package/dist/instrumentation/redis.d.ts +3 -0
  31. package/dist/instrumentation/redis.d.ts.map +1 -0
  32. package/dist/instrumentation/redis.js +118 -0
  33. package/dist/instrumentation/redis.js.map +1 -0
  34. package/dist/types.d.ts +2 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/agent.ts +38 -0
  39. package/src/api-client.ts +13 -5
  40. package/src/index.ts +3 -0
  41. package/src/instrumentation/elasticsearch.ts +98 -0
  42. package/src/instrumentation/mongodb.ts +150 -0
  43. package/src/instrumentation/mysql.ts +319 -0
  44. package/src/instrumentation/postgres.ts +216 -0
  45. package/src/instrumentation/redis.ts +166 -0
  46. package/src/types.ts +6 -0
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instrumentMysql = instrumentMysql;
4
+ const span_1 = require("../span");
5
+ const types_1 = require("../types");
6
+ function instrumentMysql(agent) {
7
+ try {
8
+ const Module = require('module');
9
+ const originalRequire = Module.prototype.require;
10
+ Module.prototype.require = function (id) {
11
+ const module = originalRequire.apply(this, arguments);
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
+ instrumentMysql2(agent, module);
17
+ module.__devskin_instrumented = true;
18
+ }
19
+ if (id === 'mysql' && module.Connection && !module.__devskin_instrumented) {
20
+ if (agent.getConfig().debug) {
21
+ console.log('[DevSkin Agent] Intercepted mysql load, instrumenting...');
22
+ }
23
+ instrumentMysqlLegacy(agent, module);
24
+ module.__devskin_instrumented = true;
25
+ }
26
+ return module;
27
+ };
28
+ try {
29
+ const mysql2 = require('mysql2');
30
+ if (mysql2 && mysql2.Connection && !mysql2.__devskin_instrumented) {
31
+ instrumentMysql2(agent, mysql2);
32
+ mysql2.__devskin_instrumented = true;
33
+ }
34
+ }
35
+ catch {
36
+ }
37
+ try {
38
+ const mysql = require('mysql');
39
+ if (mysql && mysql.Connection && !mysql.__devskin_instrumented) {
40
+ instrumentMysqlLegacy(agent, mysql);
41
+ mysql.__devskin_instrumented = true;
42
+ }
43
+ }
44
+ catch {
45
+ }
46
+ }
47
+ catch (error) {
48
+ if (agent.getConfig().debug) {
49
+ console.error('[DevSkin Agent] Failed to instrument MySQL:', error.message);
50
+ }
51
+ }
52
+ }
53
+ function instrumentMysql2(agent, mysql2) {
54
+ const config = agent.getConfig();
55
+ const originalQuery = mysql2.Connection.prototype.query;
56
+ mysql2.Connection.prototype.query = function (sql, values, callback) {
57
+ if (!agent.shouldSample()) {
58
+ return originalQuery.call(this, sql, values, callback);
59
+ }
60
+ let actualSql = sql;
61
+ let actualValues = values;
62
+ let actualCallback = callback;
63
+ if (typeof sql === 'object') {
64
+ actualSql = sql.sql;
65
+ actualValues = sql.values;
66
+ }
67
+ if (typeof values === 'function') {
68
+ actualCallback = values;
69
+ actualValues = undefined;
70
+ }
71
+ const connectionConfig = this.config;
72
+ const dbName = connectionConfig?.database || 'unknown';
73
+ const host = connectionConfig?.host || 'localhost';
74
+ const port = connectionConfig?.port || 3306;
75
+ const user = connectionConfig?.user;
76
+ const span = new span_1.SpanBuilder(`mysql.query`, types_1.SpanKind.CLIENT, config.serviceName, config.serviceVersion, config.environment, agent);
77
+ const queryType = extractQueryType(actualSql);
78
+ span.setAttributes({
79
+ 'db.system': 'mysql',
80
+ 'db.name': dbName,
81
+ 'db.statement': normalizeQuery(actualSql),
82
+ 'db.operation': queryType,
83
+ 'db.user': user,
84
+ 'net.peer.name': host,
85
+ 'net.peer.port': port,
86
+ 'db.connection_string': `mysql://${host}:${port}/${dbName}`,
87
+ });
88
+ span.setAttribute('span.kind', 'client');
89
+ const startTime = Date.now();
90
+ const wrappedCallback = (err, results, fields) => {
91
+ const duration = Date.now() - startTime;
92
+ if (err) {
93
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
94
+ span.setAttribute('error', true);
95
+ span.setAttribute('error.message', err.message);
96
+ span.setAttribute('error.type', err.code || 'Error');
97
+ }
98
+ else {
99
+ span.setStatus(types_1.SpanStatus.OK);
100
+ if (results) {
101
+ if (Array.isArray(results)) {
102
+ span.setAttribute('db.rows_affected', results.length);
103
+ }
104
+ else if (results.affectedRows !== undefined) {
105
+ span.setAttribute('db.rows_affected', results.affectedRows);
106
+ }
107
+ }
108
+ }
109
+ span.end();
110
+ if (actualCallback) {
111
+ actualCallback(err, results, fields);
112
+ }
113
+ };
114
+ if (actualCallback) {
115
+ return originalQuery.call(this, actualSql, actualValues, wrappedCallback);
116
+ }
117
+ else {
118
+ const query = originalQuery.call(this, actualSql, actualValues);
119
+ return query
120
+ .then((results) => {
121
+ const duration = Date.now() - startTime;
122
+ span.setStatus(types_1.SpanStatus.OK);
123
+ if (results && results[0]) {
124
+ if (Array.isArray(results[0])) {
125
+ span.setAttribute('db.rows_affected', results[0].length);
126
+ }
127
+ else if (results[0].affectedRows !== undefined) {
128
+ span.setAttribute('db.rows_affected', results[0].affectedRows);
129
+ }
130
+ }
131
+ span.end();
132
+ return results;
133
+ })
134
+ .catch((err) => {
135
+ const duration = Date.now() - startTime;
136
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
137
+ span.setAttribute('error', true);
138
+ span.setAttribute('error.message', err.message);
139
+ span.setAttribute('error.type', err.code || 'Error');
140
+ span.end();
141
+ throw err;
142
+ });
143
+ }
144
+ };
145
+ if (config.debug) {
146
+ console.log('[DevSkin Agent] MySQL2 instrumentation enabled');
147
+ }
148
+ }
149
+ function instrumentMysqlLegacy(agent, mysql) {
150
+ const config = agent.getConfig();
151
+ const originalQuery = mysql.Connection.prototype.query;
152
+ mysql.Connection.prototype.query = function (sql, values, callback) {
153
+ if (!agent.shouldSample()) {
154
+ return originalQuery.call(this, sql, values, callback);
155
+ }
156
+ let actualSql = sql;
157
+ let actualValues = values;
158
+ let actualCallback = callback;
159
+ if (typeof sql === 'object') {
160
+ actualSql = sql.sql;
161
+ actualValues = sql.values;
162
+ }
163
+ if (typeof values === 'function') {
164
+ actualCallback = values;
165
+ actualValues = undefined;
166
+ }
167
+ const connectionConfig = this.config;
168
+ const dbName = connectionConfig?.database || 'unknown';
169
+ const host = connectionConfig?.host || 'localhost';
170
+ const port = connectionConfig?.port || 3306;
171
+ const user = connectionConfig?.user;
172
+ const span = new span_1.SpanBuilder(`mysql.query`, types_1.SpanKind.CLIENT, config.serviceName, config.serviceVersion, config.environment, agent);
173
+ const queryType = extractQueryType(actualSql);
174
+ span.setAttributes({
175
+ 'db.system': 'mysql',
176
+ 'db.name': dbName,
177
+ 'db.statement': normalizeQuery(actualSql),
178
+ 'db.operation': queryType,
179
+ 'db.user': user,
180
+ 'net.peer.name': host,
181
+ 'net.peer.port': port,
182
+ 'db.connection_string': `mysql://${host}:${port}/${dbName}`,
183
+ });
184
+ span.setAttribute('span.kind', 'client');
185
+ const startTime = Date.now();
186
+ const wrappedCallback = (err, results, fields) => {
187
+ if (err) {
188
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
189
+ span.setAttribute('error', true);
190
+ span.setAttribute('error.message', err.message);
191
+ }
192
+ else {
193
+ span.setStatus(types_1.SpanStatus.OK);
194
+ if (results) {
195
+ if (Array.isArray(results)) {
196
+ span.setAttribute('db.rows_affected', results.length);
197
+ }
198
+ else if (results.affectedRows !== undefined) {
199
+ span.setAttribute('db.rows_affected', results.affectedRows);
200
+ }
201
+ }
202
+ }
203
+ span.end();
204
+ if (actualCallback) {
205
+ actualCallback(err, results, fields);
206
+ }
207
+ };
208
+ return originalQuery.call(this, actualSql, actualValues, wrappedCallback);
209
+ };
210
+ if (config.debug) {
211
+ console.log('[DevSkin Agent] MySQL (legacy) instrumentation enabled');
212
+ }
213
+ }
214
+ function extractQueryType(sql) {
215
+ if (typeof sql !== 'string')
216
+ return 'unknown';
217
+ const normalized = sql.trim().toUpperCase();
218
+ if (normalized.startsWith('SELECT'))
219
+ return 'SELECT';
220
+ if (normalized.startsWith('INSERT'))
221
+ return 'INSERT';
222
+ if (normalized.startsWith('UPDATE'))
223
+ return 'UPDATE';
224
+ if (normalized.startsWith('DELETE'))
225
+ return 'DELETE';
226
+ if (normalized.startsWith('CREATE'))
227
+ return 'CREATE';
228
+ if (normalized.startsWith('DROP'))
229
+ return 'DROP';
230
+ if (normalized.startsWith('ALTER'))
231
+ return 'ALTER';
232
+ if (normalized.startsWith('TRUNCATE'))
233
+ return 'TRUNCATE';
234
+ return 'unknown';
235
+ }
236
+ function normalizeQuery(sql) {
237
+ if (typeof sql !== 'string')
238
+ return String(sql);
239
+ let normalized = sql.substring(0, 10000);
240
+ normalized = normalized.replace(/\s+/g, ' ').trim();
241
+ return normalized;
242
+ }
243
+ //# sourceMappingURL=mysql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/instrumentation/mysql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Agent } from '../agent';
2
+ export declare function instrumentPostgres(agent: Agent): void;
3
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/instrumentation/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAqCrD"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instrumentPostgres = instrumentPostgres;
4
+ const span_1 = require("../span");
5
+ const types_1 = require("../types");
6
+ function instrumentPostgres(agent) {
7
+ try {
8
+ const Module = require('module');
9
+ const originalRequire = Module.prototype.require;
10
+ Module.prototype.require = function (id) {
11
+ const module = originalRequire.apply(this, arguments);
12
+ if (id === 'pg' && module.Client && !module.__devskin_instrumented) {
13
+ if (agent.getConfig().debug) {
14
+ console.log('[DevSkin Agent] Intercepted pg load, instrumenting...');
15
+ }
16
+ instrumentPgClient(agent, module);
17
+ module.__devskin_instrumented = true;
18
+ }
19
+ return module;
20
+ };
21
+ let pg;
22
+ try {
23
+ pg = require('pg');
24
+ if (pg && pg.Client && !pg.__devskin_instrumented) {
25
+ instrumentPgClient(agent, pg);
26
+ pg.__devskin_instrumented = true;
27
+ }
28
+ }
29
+ catch {
30
+ }
31
+ }
32
+ catch (error) {
33
+ if (agent.getConfig().debug) {
34
+ console.error('[DevSkin Agent] Failed to instrument PostgreSQL:', error.message);
35
+ }
36
+ }
37
+ }
38
+ function instrumentPgClient(agent, pg) {
39
+ try {
40
+ const agentConfig = agent.getConfig();
41
+ const originalQuery = pg.Client.prototype.query;
42
+ pg.Client.prototype.query = function (queryConfig, values, callback) {
43
+ if (!agent.shouldSample()) {
44
+ return originalQuery.call(this, queryConfig, values, callback);
45
+ }
46
+ let actualSql;
47
+ let actualValues;
48
+ let actualCallback;
49
+ if (typeof queryConfig === 'string') {
50
+ actualSql = queryConfig;
51
+ actualValues = values;
52
+ actualCallback = callback;
53
+ }
54
+ else if (typeof queryConfig === 'object') {
55
+ actualSql = queryConfig.text || queryConfig.query;
56
+ actualValues = queryConfig.values;
57
+ actualCallback = values;
58
+ }
59
+ else {
60
+ return originalQuery.call(this, queryConfig, values, callback);
61
+ }
62
+ if (typeof actualValues === 'function') {
63
+ actualCallback = actualValues;
64
+ actualValues = undefined;
65
+ }
66
+ const connectionParams = this.connectionParameters;
67
+ const dbName = connectionParams?.database || 'unknown';
68
+ const host = connectionParams?.host || 'localhost';
69
+ const port = connectionParams?.port || 5432;
70
+ const user = connectionParams?.user;
71
+ const span = new span_1.SpanBuilder(`pg.query`, types_1.SpanKind.CLIENT, agentConfig.serviceName, agentConfig.serviceVersion, agentConfig.environment, agent);
72
+ const queryType = extractQueryType(actualSql);
73
+ span.setAttributes({
74
+ 'db.system': 'postgresql',
75
+ 'db.name': dbName,
76
+ 'db.statement': normalizeQuery(actualSql),
77
+ 'db.operation': queryType,
78
+ 'db.user': user,
79
+ 'net.peer.name': host,
80
+ 'net.peer.port': port,
81
+ 'db.connection_string': `postgresql://${host}:${port}/${dbName}`,
82
+ });
83
+ span.setAttribute('span.kind', 'client');
84
+ const startTime = Date.now();
85
+ if (actualCallback) {
86
+ const wrappedCallback = (err, result) => {
87
+ if (err) {
88
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
89
+ span.setAttribute('error', true);
90
+ span.setAttribute('error.message', err.message);
91
+ span.setAttribute('error.type', err.code || 'Error');
92
+ }
93
+ else {
94
+ span.setStatus(types_1.SpanStatus.OK);
95
+ if (result && result.rowCount !== undefined) {
96
+ span.setAttribute('db.rows_affected', result.rowCount);
97
+ }
98
+ }
99
+ span.end();
100
+ actualCallback(err, result);
101
+ };
102
+ const newQueryConfig = typeof queryConfig === 'object'
103
+ ? { ...queryConfig, callback: wrappedCallback }
104
+ : { text: actualSql, values: actualValues, callback: wrappedCallback };
105
+ return originalQuery.call(this, newQueryConfig);
106
+ }
107
+ else {
108
+ const queryPromise = originalQuery.call(this, queryConfig, values);
109
+ return queryPromise
110
+ .then((result) => {
111
+ span.setStatus(types_1.SpanStatus.OK);
112
+ if (result && result.rowCount !== undefined) {
113
+ span.setAttribute('db.rows_affected', result.rowCount);
114
+ }
115
+ span.end();
116
+ return result;
117
+ })
118
+ .catch((err) => {
119
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
120
+ span.setAttribute('error', true);
121
+ span.setAttribute('error.message', err.message);
122
+ span.setAttribute('error.type', err.code || 'Error');
123
+ span.end();
124
+ throw err;
125
+ });
126
+ }
127
+ };
128
+ if (agentConfig.debug) {
129
+ console.log('[DevSkin Agent] PostgreSQL instrumentation enabled');
130
+ }
131
+ }
132
+ catch (error) {
133
+ if (agent.getConfig().debug) {
134
+ console.error('[DevSkin Agent] Failed to instrument PostgreSQL Client:', error.message);
135
+ }
136
+ }
137
+ }
138
+ function extractQueryType(sql) {
139
+ if (typeof sql !== 'string')
140
+ return 'unknown';
141
+ const normalized = sql.trim().toUpperCase();
142
+ if (normalized.startsWith('SELECT'))
143
+ return 'SELECT';
144
+ if (normalized.startsWith('INSERT'))
145
+ return 'INSERT';
146
+ if (normalized.startsWith('UPDATE'))
147
+ return 'UPDATE';
148
+ if (normalized.startsWith('DELETE'))
149
+ return 'DELETE';
150
+ if (normalized.startsWith('CREATE'))
151
+ return 'CREATE';
152
+ if (normalized.startsWith('DROP'))
153
+ return 'DROP';
154
+ if (normalized.startsWith('ALTER'))
155
+ return 'ALTER';
156
+ if (normalized.startsWith('TRUNCATE'))
157
+ return 'TRUNCATE';
158
+ if (normalized.startsWith('BEGIN'))
159
+ return 'BEGIN';
160
+ if (normalized.startsWith('COMMIT'))
161
+ return 'COMMIT';
162
+ if (normalized.startsWith('ROLLBACK'))
163
+ return 'ROLLBACK';
164
+ return 'unknown';
165
+ }
166
+ function normalizeQuery(sql) {
167
+ if (typeof sql !== 'string')
168
+ return String(sql);
169
+ let normalized = sql.substring(0, 10000);
170
+ normalized = normalized.replace(/\s+/g, ' ').trim();
171
+ return normalized;
172
+ }
173
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/instrumentation/postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Agent } from '../agent';
2
+ export declare function instrumentRedis(agent: Agent): void;
3
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/instrumentation/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoBlD"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instrumentRedis = instrumentRedis;
4
+ const span_1 = require("../span");
5
+ const types_1 = require("../types");
6
+ function instrumentRedis(agent) {
7
+ try {
8
+ let ioredis;
9
+ try {
10
+ ioredis = require('ioredis');
11
+ instrumentIORedis(agent, ioredis);
12
+ }
13
+ catch { }
14
+ let redis;
15
+ try {
16
+ redis = require('redis');
17
+ instrumentNodeRedis(agent, redis);
18
+ }
19
+ catch { }
20
+ }
21
+ catch (error) {
22
+ if (agent.getConfig().debug) {
23
+ console.error('[DevSkin Agent] Failed to instrument Redis:', error.message);
24
+ }
25
+ }
26
+ }
27
+ function instrumentIORedis(agent, ioredis) {
28
+ const config = agent.getConfig();
29
+ const originalSendCommand = ioredis.prototype.sendCommand;
30
+ ioredis.prototype.sendCommand = function (command, ...args) {
31
+ if (!agent.shouldSample()) {
32
+ return originalSendCommand.call(this, command, ...args);
33
+ }
34
+ const commandName = command?.name || 'unknown';
35
+ const commandArgs = command?.args || [];
36
+ const host = this.options?.host || 'localhost';
37
+ const port = this.options?.port || 6379;
38
+ const db = this.options?.db || 0;
39
+ const span = new span_1.SpanBuilder(`redis.${commandName}`, types_1.SpanKind.CLIENT, config.serviceName, config.serviceVersion, config.environment, agent);
40
+ span.setAttributes({
41
+ 'db.system': 'redis',
42
+ 'db.name': `${db}`,
43
+ 'db.operation': commandName.toUpperCase(),
44
+ 'db.statement': `${commandName} ${commandArgs.slice(0, 3).join(' ')}`.substring(0, 500),
45
+ 'net.peer.name': host,
46
+ 'net.peer.port': port,
47
+ 'db.connection_string': `redis://${host}:${port}/${db}`,
48
+ });
49
+ span.setAttribute('span.kind', 'client');
50
+ const result = originalSendCommand.call(this, command, ...args);
51
+ if (result && typeof result.then === 'function') {
52
+ return result
53
+ .then((res) => {
54
+ span.setStatus(types_1.SpanStatus.OK);
55
+ span.end();
56
+ return res;
57
+ })
58
+ .catch((err) => {
59
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
60
+ span.setAttribute('error', true);
61
+ span.setAttribute('error.message', err.message);
62
+ span.end();
63
+ throw err;
64
+ });
65
+ }
66
+ span.end();
67
+ return result;
68
+ };
69
+ if (config.debug) {
70
+ console.log('[DevSkin Agent] IORedis instrumentation enabled');
71
+ }
72
+ }
73
+ function instrumentNodeRedis(agent, redis) {
74
+ const config = agent.getConfig();
75
+ if (redis.createClient) {
76
+ const originalCreateClient = redis.createClient;
77
+ redis.createClient = function (...args) {
78
+ const client = originalCreateClient(...args);
79
+ const originalSendCommand = client.sendCommand;
80
+ if (originalSendCommand) {
81
+ client.sendCommand = function (command) {
82
+ if (!agent.shouldSample()) {
83
+ return originalSendCommand.call(this, command);
84
+ }
85
+ const commandName = command[0] || 'unknown';
86
+ const span = new span_1.SpanBuilder(`redis.${commandName}`, types_1.SpanKind.CLIENT, config.serviceName, config.serviceVersion, config.environment, agent);
87
+ span.setAttributes({
88
+ 'db.system': 'redis',
89
+ 'db.operation': commandName.toUpperCase(),
90
+ 'db.statement': command.join(' ').substring(0, 500),
91
+ });
92
+ const result = originalSendCommand.call(this, command);
93
+ if (result && typeof result.then === 'function') {
94
+ return result
95
+ .then((res) => {
96
+ span.setStatus(types_1.SpanStatus.OK);
97
+ span.end();
98
+ return res;
99
+ })
100
+ .catch((err) => {
101
+ span.setStatus(types_1.SpanStatus.ERROR, err.message);
102
+ span.setAttribute('error', true);
103
+ span.end();
104
+ throw err;
105
+ });
106
+ }
107
+ span.end();
108
+ return result;
109
+ };
110
+ }
111
+ return client;
112
+ };
113
+ }
114
+ if (config.debug) {
115
+ console.log('[DevSkin Agent] Redis (node-redis) instrumentation enabled');
116
+ }
117
+ }
118
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/instrumentation/redis.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export interface AgentConfig {
2
2
  serverUrl: string;
3
3
  apiKey: string;
4
+ applicationId: string;
4
5
  serviceName: string;
5
6
  serviceVersion?: string;
6
7
  environment?: string;
@@ -8,6 +9,7 @@ export interface AgentConfig {
8
9
  sampleRate?: number;
9
10
  instrumentHttp?: boolean;
10
11
  instrumentExpress?: boolean;
12
+ instrumentDatabase?: boolean;
11
13
  batchSize?: number;
12
14
  flushInterval?: number;
13
15
  debug?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAE1B,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IAGpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAKD,oBAAY,UAAU;IACpB,EAAE,OAAO;IACT,KAAK,UAAU;CAChB;AAKD,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAKD,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAE1B,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa,EAAE,MAAM,CAAC;IAGtB,WAAW,EAAE,MAAM,CAAC;IAGpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAKD,oBAAY,UAAU;IACpB,EAAE,OAAO;IACT,KAAK,UAAU;CAChB;AAKD,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAKD,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4CA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;AACvB,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAKD,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uBAAS,CAAA;IACT,6BAAe,CAAA;AACjB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAkDA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;AACvB,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAKD,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uBAAS,CAAA;IACT,6BAAe,CAAA;AACjB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devskin/agent",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "DevSkin Monitor Agent - JavaScript/Node.js Instrumentation SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",