appdynamics 22.11.0 → 23.5.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/README.md CHANGED
@@ -69,7 +69,7 @@ Developer Guide
69
69
 
70
70
  ### How to setup project locally
71
71
 
72
- &emsp;Make sure you have stable node version installed ** 12 <= node <= 18 **
72
+ &emsp;Make sure you have stable node version installed ** 12 <= node <= 19 **
73
73
  &emsp;are current supported versions.
74
74
 
75
75
  &emsp;We recommend using 16 or above.
@@ -1,7 +1,7 @@
1
1
  {
2
- "version": "22.11.0.0",
2
+ "version": "23.5.0.0",
3
3
  "sha": "",
4
4
  "nodeVersion": "",
5
- "buildName": "8997",
5
+ "buildName": "9232",
6
6
  "compatibilityVersion": "4.4.1.0"
7
7
  }
@@ -96,12 +96,13 @@ HttpEntryProbe.prototype.__createRequestHandler = function (callback, isHTTPs) {
96
96
 
97
97
  var threadId = transaction.threadId;
98
98
  self.agent.context.run(() => {
99
-
99
+
100
100
  var oldThreadId = self.agent.thread.current();
101
101
  self.agent.thread.resume(threadId);
102
102
 
103
103
  try {
104
- return invokeOriginal(callback, this, arguments, self.ot_api, span, otContext, req, res);
104
+ let threadProxyWrappedCb = self.agent.proxy.wrapWithThreadProxyIfEnabled(callback);
105
+ return invokeOriginal(threadProxyWrappedCb, this, arguments, self.ot_api, span, otContext, req, res);
105
106
  } catch (e) {
106
107
  HttpCommon.finalizeTransaction(e, profiler, time, transaction, req, res, span);
107
108
  transaction = null;
@@ -7,7 +7,6 @@ All Rights Reserved
7
7
  var HttpCommon = require('./http-common');
8
8
  var HttpOTUtils = require('./http-ot-utils.js');
9
9
  var url = require('url');
10
- var HTTPParser = process.binding('http_parser').HTTPParser;
11
10
 
12
11
  function HttpExitProbe(agent) {
13
12
  this.agent = agent;
@@ -201,8 +200,7 @@ HttpExitProbe.prototype.attach = function (obj, moduleName) {
201
200
  }, function () {
202
201
  if (dataConsumption) return;
203
202
  var httpParser = res.socket.parser,
204
- kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0,
205
- httpParserMethod = kOnHeadersComplete ? kOnHeadersComplete : 'onHeadersComplete';
203
+ httpParserMethod = httpParser.__proto__.constructor.kOnHeadersComplete;
206
204
  proxy.release(httpParser[httpParserMethod]);
207
205
  locals.res = res;
208
206
  clientCallback(locals);
@@ -263,13 +261,8 @@ HttpExitProbe.prototype.attach = function (obj, moduleName) {
263
261
  }, false, false, threadId);
264
262
 
265
263
  ret.on('socket', function (socket) {
266
- // For v0.10.0 and below the httpParser has method named onHeadersComplete.
267
- // For v0.12.0 and above the httpParser has a constant int value for kOnHeadersComplete. The
268
- // callback for onHeaderComplete is attached as integer property on the parser and the
269
- // property is defined by the constant value of kOnHeadersComplete.
270
264
  httpParser = socket.parser;
271
- var kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;
272
- httpParserMethod = kOnHeadersComplete ? kOnHeadersComplete : 'onHeadersComplete';
265
+ httpParserMethod = httpParser.__proto__.constructor.kOnHeadersComplete;
273
266
  var socketCloseHandler = function () {
274
267
  socket.removeListener('close', socketCloseHandler);
275
268
  if (socket.__appdynamicsCleanup) {
@@ -138,7 +138,11 @@ MysqlProbe.prototype.attach = function(obj, name) {
138
138
  proxy.after(obj, createCmd, function(obj, args, ret) {
139
139
  if (createCmd === 'createPool') {
140
140
  proxy.around(ret, 'getConnection', function(obj, args, locals) {
141
- locals.methodHasCb = proxy.callback(args, -1, function(obj, args) {
141
+ if (!args) return;
142
+ var cbIndex = args.length -1;
143
+ if (!(typeof args[cbIndex] === 'function')) return;
144
+ args[cbIndex] = self.agent.context.bind(args[cbIndex]);
145
+ var callback = self.agent.context.bind(function(obj, args) {
142
146
  if (args[0]) return;
143
147
  if (args[1]) {
144
148
  mysqlConnection = args[1];
@@ -146,6 +150,7 @@ MysqlProbe.prototype.attach = function(obj, name) {
146
150
  prepareExitCall(config, mysqlConnection, self.agent);
147
151
  }
148
152
  });
153
+ locals.methodHasCb = proxy.callback(args, -1, callback);
149
154
  }, function(obj, args, ret, locals) {
150
155
  if (locals.methodHasCb) return;
151
156
  if (!ret || !ret.__appdynamicsIsPromiseResult__) return;
@@ -25,12 +25,24 @@ SocketioProbe.prototype.attach = function(obj) {
25
25
  self.agent.on('destroy', function() {
26
26
  if(obj.__appdynamicsProbeAttached__) {
27
27
  delete obj.__appdynamicsProbeAttached__;
28
- proxy.release(obj.prototype.listen);
29
- proxy.release(obj.prototype.attach);
28
+ var socketIoObj = obj.prototype || obj.Server.prototype;
29
+ if(socketIoObj) {
30
+ proxy.release(socketIoObj.listen);
31
+ proxy.release(socketIoObj.attach);
32
+ }
33
+
30
34
  if (socketIOServer) {
31
- Object.keys(socketIOServer.nsps).forEach(function(nameSpace) {
32
- delete socketIOServer.nsps[nameSpace].__appdynamicsProbeAttached__;
33
- });
35
+ var nsps = socketIOServer.nsps || socketIOServer._nsps;
36
+ if(nsps instanceof Map) {
37
+ nsps.forEach(function(value, key) {
38
+ var namespace = nsps.get(key);
39
+ delete namespace.__appdynamicsProbeAttached__;
40
+ });
41
+ } else {
42
+ Object.keys(nsps).forEach(function(nameSpace) {
43
+ delete nsps[nameSpace].__appdynamicsProbeAttached__;
44
+ });
45
+ }
34
46
  }
35
47
  }
36
48
  });
@@ -58,7 +70,8 @@ SocketioProbe.prototype.attach = function(obj) {
58
70
  var sentSizeMetric = metricsManager.createMetric(metricsManager.SOCKETIO_SENT_MESSAGES_SIZE);
59
71
  var receivedSizeMetric = metricsManager.createMetric(metricsManager.SOCKETIO_RECEIVED_MESSAGES_SIZE);
60
72
 
61
- proxy.after(obj.prototype, ['listen','attach'], function(obj, args, ret) {
73
+ var socketIoObj = obj.prototype || obj.Server.prototype;
74
+ proxy.after(socketIoObj, ['listen','attach'], function(obj, args, ret) {
62
75
  if(!ret.sockets) return;
63
76
  socketIOServer = ret;
64
77
 
@@ -72,11 +85,21 @@ SocketioProbe.prototype.attach = function(obj) {
72
85
  ret.__appdynamicsProbeAttached__ = true;
73
86
  });
74
87
 
75
- Object.keys(ret.nsps).forEach(function(nameSpace) {
76
- if (ret.nsps[nameSpace].__appdynamicsProbeAttached__) return;
77
- attachProbeToNameSpace(ret.nsps[nameSpace]);
78
- ret.nsps[nameSpace].__appdynamicsProbeAttached__ = true;
79
- });
88
+ var nsps = ret.nsps || ret._nsps;
89
+ if(nsps instanceof Map) {
90
+ ret._nsps.forEach(function(value, key) {
91
+ var namespace = ret._nsps.get(key);
92
+ if (namespace.__appdynamicsProbeAttached__) return;
93
+ attachProbeToNameSpace(namespace);
94
+ namespace.__appdynamicsProbeAttached__ = true;
95
+ });
96
+ } else {
97
+ Object.keys(ret.nsps).forEach(function(nameSpace) {
98
+ if (ret.nsps[nameSpace].__appdynamicsProbeAttached__) return;
99
+ attachProbeToNameSpace(ret.nsps[nameSpace]);
100
+ ret.nsps[nameSpace].__appdynamicsProbeAttached__ = true;
101
+ });
102
+ }
80
103
 
81
104
  function attachProbeToNameSpace(nameSpaceObj) {
82
105
  proxy.before(nameSpaceObj, ['on', 'addListener'], function(obj, args) {
@@ -1,4 +1,5 @@
1
1
  var path = require('path');
2
+ const fs = require('fs');
2
3
 
3
4
  const MAX_ITEMS_PER_GROUP = 1024;
4
5
 
@@ -22,7 +23,21 @@ LibraryMetadata.prototype.getMetadata = function() {
22
23
  LibraryMetadata.prototype._getJson = function()
23
24
  {
24
25
  var rootPath = require('path').resolve('./');
25
- return require(path.join(rootPath, './package-lock.json'));
26
+ if(fs.existsSync(path.join(rootPath, './package-lock.json'))) {
27
+ return require(path.join(rootPath, './package-lock.json'));
28
+ } else if(fs.existsSync(path.join(rootPath, './yarn.lock'))) {
29
+ const lockfile = require('@yarnpkg/lockfile');
30
+ let file = fs.readFileSync(path.join(rootPath, './yarn.lock'), 'utf8');
31
+ let json = lockfile.parse(file);
32
+ let updatedDependencyJson = {};
33
+ for(let [key, val] of Object.entries(json.object)) {
34
+ let newkey = key.split("@")[0];
35
+ updatedDependencyJson[newkey] = val;
36
+ }
37
+
38
+ let dependencies = { dependencies: updatedDependencyJson };
39
+ return dependencies;
40
+ }
26
41
  };
27
42
 
28
43
  LibraryMetadata.prototype._getMetadata = function() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appdynamics",
3
- "version": "22.11.0",
3
+ "version": "23.5.0",
4
4
  "description": "Performance Profiler and Monitor",
5
5
  "author": "AppDynamics, Inc.",
6
6
  "homepage": "https://www.appdynamics.com",
@@ -34,24 +34,24 @@
34
34
  "n": "^6.7.0"
35
35
  },
36
36
  "dependencies": {
37
- "@opentelemetry/api": "~1.0.3",
38
- "@opentelemetry/context-async-hooks": "~1.0.1",
39
- "@opentelemetry/core": "~1.0.1",
40
- "@opentelemetry/exporter-trace-otlp-proto": "~0.27.0",
41
- "@opentelemetry/resources": "~1.0.1",
42
- "@opentelemetry/sdk-trace-base": "~1.0.1",
43
- "@opentelemetry/semantic-conventions": "~1.0.1",
37
+ "@opentelemetry/api": "~1.4.1",
38
+ "@opentelemetry/context-async-hooks": "~1.10.1",
39
+ "@opentelemetry/core": "~1.10.1",
40
+ "@opentelemetry/exporter-trace-otlp-proto": "~0.36.1",
41
+ "@opentelemetry/resources": "~1.10.1",
42
+ "@opentelemetry/sdk-trace-base": "~1.10.1",
43
+ "@opentelemetry/semantic-conventions": "~1.10.1",
44
+ "@yarnpkg/lockfile": "^1.1.0",
44
45
  "cls-hooked": "4.2.2",
45
46
  "https-proxy-agent": "^5.0.0",
46
47
  "uuid": "^8.3.2",
47
48
  "y18n": "^5.0.8",
48
- "appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-libagent-napi-node.tgz",
49
- "appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-native-node.tgz",
50
- "appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-protobuf-node.tgz"
49
+ "appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-libagent-napi-node.tgz",
50
+ "appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-native-node.tgz",
51
+ "appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-protobuf-node.tgz"
51
52
  },
52
53
  "engines": {
53
- "node": ">=12 <=v18.*"
54
+ "node": ">=12 <=v19.*"
54
55
  },
55
- "engine-strict": true,
56
- "bundleDependencies": []
56
+ "engine-strict": true
57
57
  }
package/packageBck.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appdynamics",
3
- "version": "22.11.0",
3
+ "version": "23.5.0",
4
4
  "description": "Performance Profiler and Monitor",
5
5
  "author": "AppDynamics, Inc.",
6
6
  "homepage": "https://www.appdynamics.com",
@@ -34,24 +34,24 @@
34
34
  "n": "^6.7.0"
35
35
  },
36
36
  "dependencies": {
37
- "@opentelemetry/api": "~1.0.3",
38
- "@opentelemetry/context-async-hooks": "~1.0.1",
39
- "@opentelemetry/core": "~1.0.1",
40
- "@opentelemetry/exporter-trace-otlp-proto": "~0.27.0",
41
- "@opentelemetry/resources": "~1.0.1",
42
- "@opentelemetry/sdk-trace-base": "~1.0.1",
43
- "@opentelemetry/semantic-conventions": "~1.0.1",
37
+ "@opentelemetry/api": "~1.4.1",
38
+ "@opentelemetry/context-async-hooks": "~1.10.1",
39
+ "@opentelemetry/core": "~1.10.1",
40
+ "@opentelemetry/exporter-trace-otlp-proto": "~0.36.1",
41
+ "@opentelemetry/resources": "~1.10.1",
42
+ "@opentelemetry/sdk-trace-base": "~1.10.1",
43
+ "@opentelemetry/semantic-conventions": "~1.10.1",
44
+ "@yarnpkg/lockfile": "^1.1.0",
44
45
  "cls-hooked": "4.2.2",
45
46
  "https-proxy-agent": "^5.0.0",
46
47
  "uuid": "^8.3.2",
47
48
  "y18n": "^5.0.8",
48
- "appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-libagent-napi-node.tgz",
49
- "appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-native-node.tgz",
50
- "appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/22.11.0.0/appdynamics-protobuf-node.tgz"
49
+ "appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-libagent-napi-node.tgz",
50
+ "appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-native-node.tgz",
51
+ "appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.5.0.0/appdynamics-protobuf-node.tgz"
51
52
  },
52
53
  "engines": {
53
- "node": ">=12 <=v18.*"
54
+ "node": ">=12 <=v19.*"
54
55
  },
55
- "engine-strict": true,
56
- "bundleDependencies": []
56
+ "engine-strict": true
57
57
  }