@nsshunt/stsappframework 3.0.84 → 3.0.85
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/middleware/serverNetworkMiddleware.js +11 -11
- package/dist/middleware/serverNetworkMiddleware.js.map +1 -1
- package/dist/testing/appsolo.js +63 -0
- package/dist/testing/appsolo.js.map +1 -0
- package/package.json +1 -1
- package/src/middleware/serverNetworkMiddleware.ts +2 -2
- package/src/testing/appsolo.ts +86 -0
- package/types/testing/appsolo.d.ts +3 -0
- package/types/testing/appsolo.d.ts.map +1 -0
|
@@ -72,19 +72,19 @@ class ServerNetworkMiddleware extends stsutils_1.STSOptionsBase {
|
|
|
72
72
|
};
|
|
73
73
|
this.#socketCollection[workingSocketRecord.id] = workingSocketRecord;
|
|
74
74
|
this.#debug(`Adding new socket to recordset: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`.gray);
|
|
75
|
-
/*
|
|
76
75
|
workingSocketRecord.socket.on('data', () => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
/*
|
|
77
|
+
workingSocketRecord = this.GetSocketRecord((workingSocketRecord as ISocketRecord).socket);
|
|
78
|
+
if (workingSocketRecord) {
|
|
79
|
+
this.#debug(`Socket close event: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`.gray)
|
|
80
|
+
this.UpdateNetworkStats(workingSocketRecord, 'socket_data', req);
|
|
81
|
+
delete this.#socketCollection[workingSocketRecord.id];
|
|
82
|
+
this.#debug(`Socket removed from recordset: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`.gray)
|
|
83
|
+
} else {
|
|
84
|
+
this.#debug(`Socket close event: Could not find socket within recordset`.magenta)
|
|
85
|
+
}
|
|
86
|
+
*/
|
|
86
87
|
});
|
|
87
|
-
*/
|
|
88
88
|
workingSocketRecord.socket.on('close', () => {
|
|
89
89
|
workingSocketRecord = this.GetSocketRecord(workingSocketRecord.socket);
|
|
90
90
|
if (workingSocketRecord) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverNetworkMiddleware.js","sourceRoot":"","sources":["../../src/middleware/serverNetworkMiddleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serverNetworkMiddleware.js","sourceRoot":"","sources":["../../src/middleware/serverNetworkMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const oldResTx = [];
|
|
9
|
+
const oldResRx = [];
|
|
10
|
+
const newResRx = [];
|
|
11
|
+
const newResTx = [];
|
|
12
|
+
function getNetworkUsage(pidArray) {
|
|
13
|
+
try {
|
|
14
|
+
for (let i = 0; i < pidArray.length; i++) {
|
|
15
|
+
const pid = pidArray[i];
|
|
16
|
+
const filePath = `/proc/${pid}/net/dev`;
|
|
17
|
+
//const filePath = `/proc/${pid}/net/netstat`;
|
|
18
|
+
// Read the contents of the /proc/[pid]/net/dev file
|
|
19
|
+
const content = node_fs_1.default.readFileSync(filePath, 'utf8');
|
|
20
|
+
// Process the content to extract relevant information
|
|
21
|
+
const lines = content.trim().split('\n');
|
|
22
|
+
//console.log(lines[3]);
|
|
23
|
+
const headers1 = lines[0].split('|').map(header => header.trim());
|
|
24
|
+
const headers2 = lines[1].split('|').map(header => header.trim());
|
|
25
|
+
const data1 = lines[2].split('|').map(value => value.trim());
|
|
26
|
+
const data2 = lines[3].split(':').map(value => value.trim());
|
|
27
|
+
const uint8Array = Buffer.from(data2[1], 'utf-8');
|
|
28
|
+
const mystr = data2[1];
|
|
29
|
+
const result = mystr.replace(/\s+/g, ' ').trim().split(' ');
|
|
30
|
+
//console.log(`${result}`);
|
|
31
|
+
newResRx[i] = parseFloat(result[0]);
|
|
32
|
+
newResTx[i] = parseFloat(result[8]);
|
|
33
|
+
console.log(`${pid} ${i}: ${newResRx[i]} ${newResTx[i]} : ${(newResRx[i] - oldResRx[i]) / 1000000.0} ${(newResTx[i] - oldResTx[i]) / 1000000.0}`);
|
|
34
|
+
oldResTx[i] = newResTx[i];
|
|
35
|
+
oldResRx[i] = newResRx[i];
|
|
36
|
+
//console.log(uint8Array);
|
|
37
|
+
//console.log(data2[1].split('\t'));
|
|
38
|
+
// Find the index of the relevant network statistics (e.g., bytes received and transmitted)
|
|
39
|
+
//const rxIndex = headers.indexOf('Receive');
|
|
40
|
+
//const txIndex = headers.indexOf('Transmit');
|
|
41
|
+
// Display network usage information
|
|
42
|
+
/*
|
|
43
|
+
console.log(`Network Usage for Process ${pid}:`);
|
|
44
|
+
console.log(` Incoming: ${data[rxIndex]} bytes`);
|
|
45
|
+
console.log(` Outgoing: ${data[txIndex]} bytes`);
|
|
46
|
+
*/
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
console.error('Error reading file:', err);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
setInterval(function () {
|
|
54
|
+
/*
|
|
55
|
+
si.networkStats().then(data => {
|
|
56
|
+
console.log(data);
|
|
57
|
+
});
|
|
58
|
+
*/
|
|
59
|
+
getNetworkUsage([523493, 523552, 523553, 523554]);
|
|
60
|
+
//console.log(process.pid)
|
|
61
|
+
//getNetworkUsage()
|
|
62
|
+
}, 1000);
|
|
63
|
+
//# sourceMappingURL=appsolo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appsolo.js","sourceRoot":"","sources":["../../src/testing/appsolo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -106,8 +106,8 @@ export class ServerNetworkMiddleware extends STSOptionsBase
|
|
|
106
106
|
|
|
107
107
|
this.#debug(`Adding new socket to recordset: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`.gray)
|
|
108
108
|
|
|
109
|
-
/*
|
|
110
109
|
workingSocketRecord.socket.on('data', () => {
|
|
110
|
+
/*
|
|
111
111
|
workingSocketRecord = this.GetSocketRecord((workingSocketRecord as ISocketRecord).socket);
|
|
112
112
|
if (workingSocketRecord) {
|
|
113
113
|
this.#debug(`Socket close event: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`.gray)
|
|
@@ -117,8 +117,8 @@ export class ServerNetworkMiddleware extends STSOptionsBase
|
|
|
117
117
|
} else {
|
|
118
118
|
this.#debug(`Socket close event: Could not find socket within recordset`.magenta)
|
|
119
119
|
}
|
|
120
|
-
});
|
|
121
120
|
*/
|
|
121
|
+
});
|
|
122
122
|
|
|
123
123
|
workingSocketRecord.socket.on('close', () => {
|
|
124
124
|
workingSocketRecord = this.GetSocketRecord((workingSocketRecord as ISocketRecord).socket);
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
|
|
3
|
+
import fs from 'node:fs'
|
|
4
|
+
|
|
5
|
+
const oldResTx: number[] = []
|
|
6
|
+
const oldResRx: number[] = []
|
|
7
|
+
|
|
8
|
+
const newResRx: number[] = []
|
|
9
|
+
const newResTx: number[] = []
|
|
10
|
+
|
|
11
|
+
function getNetworkUsage(pidArray: number[]) {
|
|
12
|
+
try {
|
|
13
|
+
|
|
14
|
+
for (let i=0; i < pidArray.length; i++) {
|
|
15
|
+
|
|
16
|
+
const pid = pidArray[i];
|
|
17
|
+
|
|
18
|
+
const filePath = `/proc/${pid}/net/dev`;
|
|
19
|
+
//const filePath = `/proc/${pid}/net/netstat`;
|
|
20
|
+
|
|
21
|
+
// Read the contents of the /proc/[pid]/net/dev file
|
|
22
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
23
|
+
|
|
24
|
+
// Process the content to extract relevant information
|
|
25
|
+
const lines = content.trim().split('\n');
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
//console.log(lines[3]);
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
const headers1 = lines[0].split('|').map(header => header.trim());
|
|
32
|
+
const headers2 = lines[1].split('|').map(header => header.trim());
|
|
33
|
+
const data1 = lines[2].split('|').map(value => value.trim());
|
|
34
|
+
const data2 = lines[3].split(':').map(value => value.trim());
|
|
35
|
+
|
|
36
|
+
const uint8Array = Buffer.from(data2[1], 'utf-8');
|
|
37
|
+
|
|
38
|
+
const mystr = data2[1];
|
|
39
|
+
|
|
40
|
+
const result = mystr.replace(/\s+/g, ' ').trim().split(' ');
|
|
41
|
+
|
|
42
|
+
//console.log(`${result}`);
|
|
43
|
+
|
|
44
|
+
newResRx[i] = parseFloat(result[0]);
|
|
45
|
+
newResTx[i] = parseFloat(result[8]);
|
|
46
|
+
|
|
47
|
+
console.log(`${pid} ${i}: ${newResRx[i]} ${newResTx[i]} : ${(newResRx[i] - oldResRx[i])/1000000.0} ${(newResTx[i] - oldResTx[i])/1000000.0}`);
|
|
48
|
+
|
|
49
|
+
oldResTx[i] = newResTx[i];
|
|
50
|
+
oldResRx[i] = newResRx[i];
|
|
51
|
+
|
|
52
|
+
//console.log(uint8Array);
|
|
53
|
+
|
|
54
|
+
//console.log(data2[1].split('\t'));
|
|
55
|
+
|
|
56
|
+
// Find the index of the relevant network statistics (e.g., bytes received and transmitted)
|
|
57
|
+
//const rxIndex = headers.indexOf('Receive');
|
|
58
|
+
//const txIndex = headers.indexOf('Transmit');
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
// Display network usage information
|
|
62
|
+
/*
|
|
63
|
+
console.log(`Network Usage for Process ${pid}:`);
|
|
64
|
+
console.log(` Incoming: ${data[rxIndex]} bytes`);
|
|
65
|
+
console.log(` Outgoing: ${data[txIndex]} bytes`);
|
|
66
|
+
*/
|
|
67
|
+
}
|
|
68
|
+
} catch (err) {
|
|
69
|
+
console.error('Error reading file:', err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
setInterval(function() {
|
|
74
|
+
/*
|
|
75
|
+
si.networkStats().then(data => {
|
|
76
|
+
console.log(data);
|
|
77
|
+
});
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
getNetworkUsage([ 523493, 523552, 523553, 523554]);
|
|
81
|
+
|
|
82
|
+
//console.log(process.pid)
|
|
83
|
+
|
|
84
|
+
//getNetworkUsage()
|
|
85
|
+
|
|
86
|
+
}, 1000)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appsolo.d.ts","sourceRoot":"","sources":["../../src/testing/appsolo.ts"],"names":[],"mappings":""}
|