whatap 0.4.73 → 0.4.75
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/lib/conf/config-default.js +2 -0
- package/lib/core/agent.js +11 -11
- package/lib/counter/counter-manager.js +1 -1
- package/lib/kube/kube-client.js +0 -2
- package/lib/logger.js +14 -1
- package/lib/observers/express-observer.js +2 -1
- package/lib/observers/file-observer.js +1 -1
- package/lib/observers/http-observer.js +1 -1
- package/lib/observers/maria-observer.js +2 -0
- package/lib/observers/mongo-observer.js +2 -0
- package/lib/observers/mongodb-observer.js +4 -1
- package/lib/observers/mssql-observer.js +2 -0
- package/lib/observers/mysql-observer.js +3 -3
- package/lib/observers/net-observer.js +1 -1
- package/lib/observers/pgsql-observer.js +2 -0
- package/lib/observers/promise-observer.js +3 -3
- package/lib/observers/redis-observer.js +3 -2
- package/lib/observers/schedule-observer.js +1 -0
- package/lib/observers/socket.io-observer.js +3 -2
- package/lib/observers/thrift-observer.js +1 -1
- package/lib/util/kube-util.js +34 -6
- package/logs/whatap-20230616.log +13 -0
- package/package.json +2 -2
|
@@ -84,6 +84,7 @@ var ConfigDefault = {
|
|
|
84
84
|
"trace_http_client_ip_header_key": "x-forwarded-for",
|
|
85
85
|
"trace_user_agent_header_key": "",
|
|
86
86
|
"trace_referer_header_key": "",
|
|
87
|
+
"profile_sql_param_enabled": bool('profile_sql_param_enabled',false),
|
|
87
88
|
|
|
88
89
|
"error_snap_enabled" : true,
|
|
89
90
|
|
|
@@ -174,6 +175,7 @@ var ConfigDefault = {
|
|
|
174
175
|
"whatap_micro_enabled": bool('whatap_micro_enabled',false),
|
|
175
176
|
"master_agent_host": str('master_agent_host', 'whatap-master-agent.whatap-monitoring.svc.cluster.local'),
|
|
176
177
|
"master_agent_port": num('master_agent_port', 6600),
|
|
178
|
+
"enabled_master_agent_call": bool('enabled_master_agent_call' , false),
|
|
177
179
|
|
|
178
180
|
"simula_agent_count": num('simula_agent_count', 0),
|
|
179
181
|
"correction_factor_cpu": num('correction_factor_cpu', 1),
|
package/lib/core/agent.js
CHANGED
|
@@ -274,21 +274,21 @@ NodeAgent.prototype.loadObserves = function() {
|
|
|
274
274
|
});
|
|
275
275
|
});
|
|
276
276
|
|
|
277
|
-
agent.aop.after(module.
|
|
278
|
-
//PackageCtrHelper.addPackage(args[0], obj.id, result);
|
|
277
|
+
agent.aop.after(module.proto, 'require', function (obj, args, result) {
|
|
279
278
|
var observes = packageToObserve[args[0]];
|
|
280
279
|
|
|
281
|
-
if(observes) {
|
|
282
|
-
observes.
|
|
283
|
-
if(result.__whatap_observe__ == true) return;
|
|
284
|
-
|
|
285
|
-
observe.inject(result, args[0]);
|
|
286
|
-
if(result && result.constructor == Object){
|
|
287
|
-
result.__whatap_observe__ = true;
|
|
288
|
-
}
|
|
289
|
-
});
|
|
280
|
+
if (observes) {
|
|
281
|
+
return observes.inject(result, args[0])
|
|
290
282
|
}
|
|
291
283
|
});
|
|
284
|
+
|
|
285
|
+
for (var name in packageToObserve) {
|
|
286
|
+
try {
|
|
287
|
+
require(name);
|
|
288
|
+
} catch (err) {
|
|
289
|
+
Logger.print("WHTAP-loadObserves", 'unable to load ' + name + ' module', false);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
292
|
new ProcessObserver(agent).inject(process, 'process');
|
|
293
293
|
new GlobalObserver(agent).inject(global, 'global');
|
|
294
294
|
};
|
package/lib/kube/kube-client.js
CHANGED
|
@@ -69,11 +69,9 @@ var KubeClient = {
|
|
|
69
69
|
client.open( self.node_agent_ip , self.node_agent_port, function(err, data){
|
|
70
70
|
client.send(new DataOutputX().writeValue(p));
|
|
71
71
|
}, function(err, data){
|
|
72
|
-
|
|
73
72
|
if(err || !data){
|
|
74
73
|
return console.log("#### errordata" , err, data);
|
|
75
74
|
}
|
|
76
|
-
|
|
77
75
|
var m = new DataInputX(data).readValue();
|
|
78
76
|
|
|
79
77
|
self.cpu = m.getFloat("cpu");
|
package/lib/logger.js
CHANGED
|
@@ -97,7 +97,20 @@
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
|
-
|
|
100
|
+
initPrint : function (message) {
|
|
101
|
+
try{
|
|
102
|
+
var b_msg = this.build("WHATAP-INIT", message + " starting!");
|
|
103
|
+
if(this.printWriter != null) {
|
|
104
|
+
this.printWriter.write(b_msg);
|
|
105
|
+
this.printWriter.write('\n');
|
|
106
|
+
} else {
|
|
107
|
+
this.openFile();
|
|
108
|
+
}
|
|
109
|
+
} catch (e){
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
printError : function (id, message, err, sysout) {
|
|
101
114
|
if(this.checkOk(id, 10) == false) {
|
|
102
115
|
return;
|
|
103
116
|
}
|
|
@@ -11,6 +11,7 @@ var TraceContextManager = require('../trace/trace-context-manager'),
|
|
|
11
11
|
DataTextAgent = require('../data/datatext-agent'),
|
|
12
12
|
URLPatternDetector = require('../trace/serviceurl-pattern-detector').Detector,
|
|
13
13
|
PathMap = require('../trace/serviceurl-pattern-detector').PathMap,
|
|
14
|
+
Logger = require('../logger'),
|
|
14
15
|
Long = require('long');
|
|
15
16
|
|
|
16
17
|
var ExpressObserver = function(agent){
|
|
@@ -65,7 +66,7 @@ ExpressObserver.prototype.inject = function( mod, moduleName ) {
|
|
|
65
66
|
var self = this;
|
|
66
67
|
if (mod.__whatap_observe__) return;
|
|
67
68
|
mod.__whatap_observe__ = true;
|
|
68
|
-
|
|
69
|
+
Logger.initPrint("ExpressObserver");
|
|
69
70
|
var aop = this.agent.aop;
|
|
70
71
|
|
|
71
72
|
if(!mod.Router){
|
|
@@ -29,7 +29,7 @@ FileObserve.prototype.inject = function( mod ) {
|
|
|
29
29
|
|
|
30
30
|
if(mod.__whatap_observe__) { return; }
|
|
31
31
|
mod.__whatap_observe__ = true;
|
|
32
|
-
|
|
32
|
+
Logger.initPrint("FileObserve");
|
|
33
33
|
var extension = Configure.getProperty('web_static_content_extensions'),
|
|
34
34
|
extensions = [],
|
|
35
35
|
plugins = ['appservicestart', 'appserviceend', 'httpservicestart', 'httpserviceend', 'httpcall'];
|
|
@@ -504,7 +504,7 @@ HttpObserver.prototype.inject = function( mod, moduleName ) {
|
|
|
504
504
|
|
|
505
505
|
if(mod.__whatap_observe__) { return; }
|
|
506
506
|
mod.__whatap_observe__ = true;
|
|
507
|
-
|
|
507
|
+
Logger.initPrint("HttpObserver");
|
|
508
508
|
if( conf.profile_enabled === false ) { return; }
|
|
509
509
|
|
|
510
510
|
aop.after(mod, 'createServer', function (obj, args, ret) {
|
|
@@ -21,6 +21,8 @@ MongoObserver.prototype.inject = function( mod, moduleName ) {
|
|
|
21
21
|
if(mod.__whatap_observe__) {return;}
|
|
22
22
|
mod.__whatap_observe__ = true;
|
|
23
23
|
|
|
24
|
+
Logger.initPrint("MongoObserver");
|
|
25
|
+
|
|
24
26
|
var self = this;
|
|
25
27
|
self.agent.aop.before(mod.Server.prototype, 'connect', function (obj, args) {
|
|
26
28
|
|
|
@@ -10,7 +10,8 @@ var TraceContextManager = require('../trace/trace-context-manager'),
|
|
|
10
10
|
DataTextAgent = require('../data/datatext-agent'),
|
|
11
11
|
StatError = require('../stat/stat-error'),
|
|
12
12
|
TextTypes = require('../lang/text-types'),
|
|
13
|
-
hashUtil = require('../util/hashutil')
|
|
13
|
+
hashUtil = require('../util/hashutil'),
|
|
14
|
+
Logger = require('../logger');
|
|
14
15
|
|
|
15
16
|
var MongodbObserver = function(agent){
|
|
16
17
|
this.agent = agent;
|
|
@@ -28,6 +29,8 @@ MongodbObserver.prototype.inject = function( mod, moduleName ) {
|
|
|
28
29
|
if(mod.__whatap_observe__) { return; }
|
|
29
30
|
mod.__whatap_observe__ = true;
|
|
30
31
|
|
|
32
|
+
Logger.initPrint("MongodbObserver");
|
|
33
|
+
|
|
31
34
|
var requestTable = {},
|
|
32
35
|
nextRequest,
|
|
33
36
|
listener = mod.instrument({}, function(err, instrumentations) {});
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
var MysqlObserver = function (agent) {
|
|
28
28
|
this.agent = agent;
|
|
29
|
-
this.packages = ['mysql','mysql2'];
|
|
29
|
+
this.packages = ['mysql','mysql2','mysql2/promise'];
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
var queryHook = function (dbc_hash, agent) {
|
|
@@ -166,7 +166,7 @@ var toParamBytes = function(p, crc) {
|
|
|
166
166
|
return null;
|
|
167
167
|
}
|
|
168
168
|
try{
|
|
169
|
-
|
|
169
|
+
return ParamSecurity.encrypt(Buffer.from(p, 'utf8'), crc);
|
|
170
170
|
} catch(e) {
|
|
171
171
|
return null;
|
|
172
172
|
}
|
|
@@ -210,7 +210,7 @@ var errorDelegate = function () {
|
|
|
210
210
|
MysqlObserver.prototype.inject = function (mod, moduleName) {
|
|
211
211
|
if(mod.__whatap_observe__) { return; }
|
|
212
212
|
mod.__whatap_observe__ = true;
|
|
213
|
-
|
|
213
|
+
Logger.initPrint("MysqlObserver");
|
|
214
214
|
var self = this;
|
|
215
215
|
var aop = self.agent.aop;
|
|
216
216
|
|
|
@@ -19,7 +19,7 @@ var NetObserver = function(agent){
|
|
|
19
19
|
NetObserver.prototype.inject = function (mod, moduleName) {
|
|
20
20
|
if(mod.__whatap_observe__) { return; }
|
|
21
21
|
mod.__whatap_observe__ = true;
|
|
22
|
-
|
|
22
|
+
Logger.initPrint("NetObserver");
|
|
23
23
|
if ( conf.trace_background_socket_enabled === false ) { return; }
|
|
24
24
|
|
|
25
25
|
var self = this;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Created by yunhoi on 12/06/2017.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
var TraceContextManager = require('../trace/trace-context-manager')
|
|
6
|
-
|
|
5
|
+
var TraceContextManager = require('../trace/trace-context-manager'),
|
|
6
|
+
Logger = require('../logger');
|
|
7
7
|
|
|
8
8
|
var PromiseObserver = function (agent) {
|
|
9
9
|
this.agent = agent;
|
|
@@ -17,7 +17,7 @@ PromiseObserver.prototype.inject = function (mod, moduleName) {
|
|
|
17
17
|
|
|
18
18
|
if(mod.__whatap_observe__) {return;}
|
|
19
19
|
mod.__whatap_observe__ = true;
|
|
20
|
-
|
|
20
|
+
Logger.initPrint("PromiseObserver");
|
|
21
21
|
aop.both(mod.prototype, 'then'
|
|
22
22
|
, function (obj, args, lctx) {
|
|
23
23
|
var ctx = TraceContextManager.getCurrentContext();
|
|
@@ -5,7 +5,8 @@ var TraceContextManager = require('../trace/trace-context-manager'),
|
|
|
5
5
|
DBCStep = require('../step/dbc-step'),
|
|
6
6
|
TextTypes = require('../lang/text-types'),
|
|
7
7
|
HashUtil = require('../util/hashutil'),
|
|
8
|
-
Long = require('long')
|
|
8
|
+
Long = require('long'),
|
|
9
|
+
Logger = require('../logger');
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
var RedisObserver = function (agent) {
|
|
@@ -18,7 +19,7 @@ RedisObserver.prototype.inject = function (mod, modName) {
|
|
|
18
19
|
|
|
19
20
|
if(mod.__whatap_observe__) {return;}
|
|
20
21
|
mod.__whatap_observe__ = true;
|
|
21
|
-
|
|
22
|
+
Logger.initPrint("RedisObserver");
|
|
22
23
|
var self = this;
|
|
23
24
|
|
|
24
25
|
self.aop.both(mod, 'createClient',
|
|
@@ -26,6 +26,7 @@ var ScheduleObserver = function(agent){
|
|
|
26
26
|
ScheduleObserver.prototype.inject = function (mod, moduleName) {
|
|
27
27
|
if(mod.__whatap_observe__) { return; }
|
|
28
28
|
mod.__whatap_observe__ = true;
|
|
29
|
+
Logger.initPrint("ScheduleObserver");
|
|
29
30
|
var self = this;
|
|
30
31
|
var aop = self.agent.aop;
|
|
31
32
|
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* can be found in the LICENSE file.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
var MeterSocketio = require('../counter/meter/meter-socket.io')
|
|
7
|
+
var MeterSocketio = require('../counter/meter/meter-socket.io'),
|
|
8
|
+
Logger = require('../logger');
|
|
8
9
|
|
|
9
10
|
var SocketIOObserver = function(agent){
|
|
10
11
|
this.agent = agent;
|
|
@@ -17,7 +18,7 @@ SocketIOObserver.prototype.inject = function( mod ){
|
|
|
17
18
|
|
|
18
19
|
if(mod.__whatap_observe__) { return; }
|
|
19
20
|
mod.__whatap_observe__ = true;
|
|
20
|
-
|
|
21
|
+
Logger.initPrint("SocketIOObserver");
|
|
21
22
|
aop.after(mod.prototype, ['listen','attach'], function(obj, args, ret) {
|
|
22
23
|
if (!ret.sockets) return;
|
|
23
24
|
|
package/lib/util/kube-util.js
CHANGED
|
@@ -1,13 +1,41 @@
|
|
|
1
1
|
var fs = require('fs');
|
|
2
2
|
var HashUtil2 = require('./hashutil2'),
|
|
3
|
-
|
|
4
|
-
;
|
|
3
|
+
StringUtil = require('./string-util'),
|
|
4
|
+
Logger = require('./../logger');
|
|
5
5
|
|
|
6
6
|
var KubeUtil = {
|
|
7
7
|
container_key: 0,
|
|
8
8
|
container_id: undefined,
|
|
9
|
+
loadFromMountinfo: function() {
|
|
10
|
+
if (this.container_id !== null && this.container_id !== undefined) return;
|
|
11
|
+
|
|
12
|
+
try{
|
|
13
|
+
var content = fs.readFileSync("/proc/self/mountinfo");
|
|
14
|
+
content = content.toString('utf-8');
|
|
15
|
+
var contents = content.split('\n')
|
|
16
|
+
|
|
17
|
+
for(var i = 0 ; i < contents.length ; i++){
|
|
18
|
+
var line = contents[i].trim();
|
|
19
|
+
if(line){
|
|
20
|
+
if(line.indexOf("/kubelet/pods/") >= 0) {
|
|
21
|
+
let lineParts = line.split("/kubelet/pods/");
|
|
22
|
+
if (lineParts != null && lineParts.length > 1) {
|
|
23
|
+
this.container_id= lineParts[1].split('/')[0];
|
|
24
|
+
}
|
|
25
|
+
if(this.container_id.length > 5){
|
|
26
|
+
this.container_key = HashUtil2.hash(this.container_id);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
Logger.print('WHATAP-800' , 'loadFromMountinfo id:' + this.container_id + ' // key:' + this.container_key , false)
|
|
33
|
+
}catch(e){
|
|
34
|
+
Logger.printError('WHATAP-800', 'KubeUtil(loadFromMountinfo) ', e)
|
|
35
|
+
}
|
|
36
|
+
},
|
|
9
37
|
loadContainerId: function(){
|
|
10
|
-
if (this.container_id
|
|
38
|
+
if (this.container_id !== null && this.container_id !== undefined) return;
|
|
11
39
|
|
|
12
40
|
try{
|
|
13
41
|
var content = fs.readFileSync("/proc/self/cgroup");
|
|
@@ -15,7 +43,7 @@ var KubeUtil = {
|
|
|
15
43
|
var contents = content.split('\n')
|
|
16
44
|
|
|
17
45
|
for(var i = 0 ; i < contents.length ; i++){
|
|
18
|
-
var line = contents[i];
|
|
46
|
+
var line = contents[i].trim();
|
|
19
47
|
if(line){
|
|
20
48
|
if(line.indexOf("/ecs/") >= 0) {
|
|
21
49
|
this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
@@ -35,11 +63,11 @@ var KubeUtil = {
|
|
|
35
63
|
}
|
|
36
64
|
}
|
|
37
65
|
}
|
|
38
|
-
Logger.print('WHATAP-800' , 'id:' + this.container_id + ' // key:' + this.container_key , false)
|
|
66
|
+
Logger.print('WHATAP-800' , 'loadContainerId id:' + this.container_id + ' // key:' + this.container_key , false);
|
|
39
67
|
}catch(e){
|
|
40
68
|
Logger.printError('WHATAP-800', 'KubeUtil(loadContainerId) ', e)
|
|
41
69
|
}
|
|
70
|
+
if(this.container_key == 0) this.loadFromMountinfo();
|
|
42
71
|
}
|
|
43
72
|
}
|
|
44
|
-
|
|
45
73
|
module.exports = KubeUtil;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
20230616 11:38:40 [WHATAP-001] <33088> Start initialize WhaTap Agent... Root[C:\Whatap\node_last]
|
|
2
|
+
20230616 11:38:40 [WHATAP-203] <33088> Config file reloaded
|
|
3
|
+
20230616 11:38:40 [WHATAP-101] <33088> Finish initialize configuration... false
|
|
4
|
+
20230616 11:38:40 [WHATAP-110] <33088> [pcode=0,SECURE_KEY=]
|
|
5
|
+
20230616 11:38:40 [WHATAP-170] <33088> [WhaTap Agent] now waiting for starting......
|
|
6
|
+
20230616 11:38:45 [WHATAP-011] <33088> Connecton Retry....
|
|
7
|
+
Error: PCODE is not defined..
|
|
8
|
+
at TcpSession.open (C:\Whatap\node_last\lib\net\tcp-session.js:41:26)
|
|
9
|
+
at Timeout.<anonymous> (C:\Whatap\node_last\lib\core\agent.js:215:26)
|
|
10
|
+
at Timeout.wrapper [as _onTimeout] (C:\Whatap\node_last\lib\core\interceptor.js:129:27)
|
|
11
|
+
at listOnTimeout (internal/timers.js:554:17)
|
|
12
|
+
at processTimers (internal/timers.js:497:7)
|
|
13
|
+
20230616 11:38:50 [WHATAP-170] <33088> [WhaTap Agent] now waiting for starting......
|
package/package.json
CHANGED