whatap 0.4.74 → 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/core/agent.js CHANGED
@@ -274,21 +274,21 @@ NodeAgent.prototype.loadObserves = function() {
274
274
  });
275
275
  });
276
276
 
277
- agent.aop.after(module.__proto__, 'require', function(obj, args, result) {
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.forEach(function(observe){
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/logger.js CHANGED
@@ -97,7 +97,20 @@
97
97
  }
98
98
  }
99
99
  },
100
- printError : function (id, message, err, sysout) {
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) {
@@ -202,6 +202,8 @@ MariaObserver.prototype.inject = function (mod, moduleName) {
202
202
  if(mod.__whatap_observe__) { return; }
203
203
  mod.__whatap_observe__ = true;
204
204
 
205
+ Logger.initPrint("MariaObserver");
206
+
205
207
  var self = this;
206
208
  var aop = self.agent.aop;
207
209
 
@@ -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) {});
@@ -32,6 +32,8 @@ MssqlObserver.prototype.inject = function (mod, modName) {
32
32
 
33
33
  if(mod.__whatap_observe__) {return;}
34
34
  mod.__whatap_observe__ = true;
35
+
36
+ Logger.initPrint("MssqlObserver");
35
37
 
36
38
  var self = this;
37
39
 
@@ -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;
@@ -195,6 +195,8 @@ PgSqlObserver.prototype.inject = function (mod, moduleName) {
195
195
  if(mod.__whatap_observe__) { return; }
196
196
  mod.__whatap_observe__ = true;
197
197
 
198
+ Logger.initPrint("PgSqlObserver");
199
+
198
200
  var self = this;
199
201
  var aop = self.agent.aop;
200
202
 
@@ -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
 
@@ -32,7 +32,7 @@ ThriftObserver.prototype.inject = function (mod, moduleName) {
32
32
  return;
33
33
  }
34
34
  mod.__whatap_observe__ = true;
35
-
35
+ Logger.initPrint("ThriftObserver");
36
36
  var self = this;
37
37
  var aop = self.agent.aop;
38
38
 
@@ -1,13 +1,41 @@
1
1
  var fs = require('fs');
2
2
  var HashUtil2 = require('./hashutil2'),
3
- Logger = require('./../logger')
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 != null) return ;
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
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "whatap",
3
3
  "homepage": "http://www.whatap.io",
4
- "version": "0.4.74",
5
- "releaseDate": "20230608",
4
+ "version": "0.4.75",
5
+ "releaseDate": "20230623",
6
6
  "description": "Monitoring and Profiling Service",
7
7
  "main": "index.js",
8
8
  "scripts": {},