appdynamics 23.3.0 → 23.7.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 +0 -114
- package/appdynamics_version.json +2 -2
- package/lib/probes/http-exit-probe.js +2 -9
- package/lib/secure_app/library_metadata.js +8 -2
- package/package.json +15 -12
- package/packageBck.json +15 -12
package/README.md
CHANGED
|
@@ -63,121 +63,7 @@ For more information, see [Install the Node.js Agent](https://docs.appdynamics.c
|
|
|
63
63
|
<br />
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
Developer Guide
|
|
67
66
|
--
|
|
68
|
-
<br />
|
|
69
|
-
|
|
70
|
-
### How to setup project locally
|
|
71
|
-
|
|
72
|
-
 Make sure you have stable node version installed ** 12 <= node <= 18 **
|
|
73
|
-
 are current supported versions.
|
|
74
|
-
|
|
75
|
-
 We recommend using 16 or above.
|
|
76
|
-
|
|
77
|
-
```sh
|
|
78
|
-
cd agent-dlnative/nodejs
|
|
79
|
-
npm install
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
<br />
|
|
83
|
-
|
|
84
|
-
#### Build project
|
|
85
|
-
|
|
86
|
-
 We currently build the nodejs project with gradle. For more help https://docs.gradle.org/current/userguide/command_line_interface.html
|
|
87
|
-
|
|
88
|
-
 The root gradle file will be one level up i.e in root of agent-dlnative project.
|
|
89
|
-
 The **nodejs build.gradle** file has all the task definitions and build logic.
|
|
90
|
-
|
|
91
|
-
```sh
|
|
92
|
-
../gradlew dev
|
|
93
|
-
```
|
|
94
|
-
The above will build the project with local node version.
|
|
95
|
-
|
|
96
|
-
```sh
|
|
97
|
-
../gradlew
|
|
98
|
-
```
|
|
99
|
-
To run build with configured node version in build.gradle
|
|
100
|
-
<br />
|
|
101
|
-
|
|
102
|
-
#### To run agent unit tests
|
|
103
|
-
```sh
|
|
104
|
-
../gradlew unittests_agent --info -Dnodejs.build.debug=true -Dnodejs.coverage.enabled=false
|
|
105
|
-
```
|
|
106
|
-
The above is an example to run unit tests for agent with coverage disabled
|
|
107
|
-
|
|
108
|
-
More example options for task are : ** unittests, integrationtests_agent, eslint **
|
|
109
|
-
|
|
110
|
-
Checkout more options : **/nodejs/build.gradle**
|
|
111
|
-
|
|
112
|
-
<br />
|
|
113
|
-
|
|
114
|
-
#### To create standalone build
|
|
115
|
-
|
|
116
|
-
```sh
|
|
117
|
-
../gradlew :nodejs:createStandAloneAgentForNodeVersion or ../gradlew createStandAloneAgentForNodeVersion
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Other options are : **createMasterTarNpmScript, testStandalonePackage**
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
<br />
|
|
124
|
-
|
|
125
|
-
#### Where are these build settings / logic
|
|
126
|
-
|
|
127
|
-
 The logic to create packages and supported node versions are in **nodejs/buildScripts/src** folder.
|
|
128
|
-
|
|
129
|
-
 Check package.json to see what npm-scripts are available.
|
|
130
|
-
|
|
131
|
-
 You can individually run them as a npm command `npm run-script &standAloneAgent`
|
|
132
|
-
|
|
133
|
-
<br />
|
|
134
|
-
|
|
135
|
-
#### How to test applications with local changes in a test application
|
|
136
|
-
|
|
137
|
-
 Create an npm application
|
|
138
|
-
 Install appdynamics pointing to your local build
|
|
139
|
-
```sh
|
|
140
|
-
npm install appdynamics {path_to_your_local_build_folder}/appdynamics
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
 Require appdynamics as demonstrated on top section of the readme
|
|
144
|
-
 example
|
|
145
|
-
|
|
146
|
-
```sh
|
|
147
|
-
appd.profile({
|
|
148
|
-
accountName: 'e2e-customer',
|
|
149
|
-
accountAccessKey: 'e10aa1c5-29be-474b-bb51-ab0c56eea5e8',
|
|
150
|
-
controllerHostName: 'master-saas-controller.e2e.appd-test.com',
|
|
151
|
-
controllerPort: 8090,
|
|
152
|
-
applicationName: 'upstream-test',
|
|
153
|
-
tierName: 'enabled',
|
|
154
|
-
openTelemetry: {
|
|
155
|
-
enabled: true,
|
|
156
|
-
},
|
|
157
|
-
nodeName: 'node__gql',
|
|
158
|
-
enableGraphQL: true,
|
|
159
|
-
libagent: true,
|
|
160
|
-
debug: true,
|
|
161
|
-
});
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
  1. Run your application and make requests
|
|
165
|
-
  2. Go to controller ui - example : https://master-saas-controller.e2e.appd-test.com
|
|
166
|
-
  3. Search for your application - example: upstream-test
|
|
167
|
-
|
|
168
|
-
<br />
|
|
169
|
-
|
|
170
|
-
### Frequently asked questions
|
|
171
|
-
|
|
172
|
-
1. My Application doesn't show up in the controller
|
|
173
|
-
 You probably have to update the access key.
|
|
174
|
-
|
|
175
|
-
2. My integration tests throw "not able to find a module" running locally
|
|
176
|
-
 Go to your integration test folder - find package.json and run npm install there
|
|
177
|
-
<br />
|
|
178
|
-
|
|
179
|
-
### How do I setup libagent locally
|
|
180
|
-
  https://confluence.corp.appdynamics.com/pages/viewpage.action?spaceKey=AMC&title=NodeJS+Agent+with+Local+Libagent
|
|
181
67
|
|
|
182
68
|
<br />
|
|
183
69
|
<br />
|
package/appdynamics_version.json
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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) {
|
|
@@ -27,9 +27,15 @@ LibraryMetadata.prototype._getJson = function()
|
|
|
27
27
|
return require(path.join(rootPath, './package-lock.json'));
|
|
28
28
|
} else if(fs.existsSync(path.join(rootPath, './yarn.lock'))) {
|
|
29
29
|
const lockfile = require('@yarnpkg/lockfile');
|
|
30
|
-
let file = fs.readFileSync('./yarn.lock', 'utf8');
|
|
30
|
+
let file = fs.readFileSync(path.join(rootPath, './yarn.lock'), 'utf8');
|
|
31
31
|
let json = lockfile.parse(file);
|
|
32
|
-
let
|
|
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 };
|
|
33
39
|
return dependencies;
|
|
34
40
|
}
|
|
35
41
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appdynamics",
|
|
3
|
-
"version": "23.
|
|
3
|
+
"version": "23.7.0",
|
|
4
4
|
"description": "Performance Profiler and Monitor",
|
|
5
5
|
"author": "AppDynamics, Inc.",
|
|
6
6
|
"homepage": "https://www.appdynamics.com",
|
|
@@ -34,24 +34,27 @@
|
|
|
34
34
|
"n": "^6.7.0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@opentelemetry/api": "~1.
|
|
38
|
-
"@opentelemetry/context-async-hooks": "~1.
|
|
39
|
-
"@opentelemetry/core": "~1.
|
|
40
|
-
"@opentelemetry/exporter-trace-otlp-proto": "~0.
|
|
41
|
-
"@opentelemetry/resources": "~1.
|
|
42
|
-
"@opentelemetry/sdk-trace-base": "~1.
|
|
43
|
-
"@opentelemetry/semantic-conventions": "~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
44
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
45
45
|
"cls-hooked": "4.2.2",
|
|
46
46
|
"https-proxy-agent": "^5.0.0",
|
|
47
47
|
"uuid": "^8.3.2",
|
|
48
48
|
"y18n": "^5.0.8",
|
|
49
|
-
"appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
50
|
-
"appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
51
|
-
"appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
49
|
+
"appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-libagent-napi-node.tgz",
|
|
50
|
+
"appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-native-node.tgz",
|
|
51
|
+
"appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-protobuf-node.tgz"
|
|
52
|
+
},
|
|
53
|
+
"overrides": {
|
|
54
|
+
"semver": "7.5.4"
|
|
52
55
|
},
|
|
53
56
|
"engines": {
|
|
54
|
-
"node": ">=12 <=
|
|
57
|
+
"node": ">=12 <=v20.*"
|
|
55
58
|
},
|
|
56
59
|
"engine-strict": true
|
|
57
60
|
}
|
package/packageBck.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appdynamics",
|
|
3
|
-
"version": "23.
|
|
3
|
+
"version": "23.7.0",
|
|
4
4
|
"description": "Performance Profiler and Monitor",
|
|
5
5
|
"author": "AppDynamics, Inc.",
|
|
6
6
|
"homepage": "https://www.appdynamics.com",
|
|
@@ -34,24 +34,27 @@
|
|
|
34
34
|
"n": "^6.7.0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@opentelemetry/api": "~1.
|
|
38
|
-
"@opentelemetry/context-async-hooks": "~1.
|
|
39
|
-
"@opentelemetry/core": "~1.
|
|
40
|
-
"@opentelemetry/exporter-trace-otlp-proto": "~0.
|
|
41
|
-
"@opentelemetry/resources": "~1.
|
|
42
|
-
"@opentelemetry/sdk-trace-base": "~1.
|
|
43
|
-
"@opentelemetry/semantic-conventions": "~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
44
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
45
45
|
"cls-hooked": "4.2.2",
|
|
46
46
|
"https-proxy-agent": "^5.0.0",
|
|
47
47
|
"uuid": "^8.3.2",
|
|
48
48
|
"y18n": "^5.0.8",
|
|
49
|
-
"appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
50
|
-
"appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
51
|
-
"appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.
|
|
49
|
+
"appdynamics-libagent-napi": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-libagent-napi-node.tgz",
|
|
50
|
+
"appdynamics-native": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-native-node.tgz",
|
|
51
|
+
"appdynamics-protobuf": "https://cdn.appdynamics.com/packages/nodejs/23.7.0.0/appdynamics-protobuf-node.tgz"
|
|
52
|
+
},
|
|
53
|
+
"overrides": {
|
|
54
|
+
"semver": "7.5.4"
|
|
52
55
|
},
|
|
53
56
|
"engines": {
|
|
54
|
-
"node": ">=12 <=
|
|
57
|
+
"node": ">=12 <=v20.*"
|
|
55
58
|
},
|
|
56
59
|
"engine-strict": true
|
|
57
60
|
}
|