whatap 0.4.79 → 0.4.80
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/.vscode/keep-context.json +3 -3
- package/README.md +51 -51
- package/bindings/darwin/x64/whatap.node +0 -0
- package/bindings/linux/ia32/whatap.node +0 -0
- package/bindings/linux/x64/whatap.node +0 -0
- package/help.txt +10 -10
- package/index.js +8 -8
- package/lib/conf/conf-sys-mon.js +100 -100
- package/lib/conf/config-default.js +238 -238
- package/lib/conf/configure.js +423 -423
- package/lib/conf/license.js +41 -41
- package/lib/control/cmd-config.js +23 -23
- package/lib/control/control-handler.js +344 -344
- package/lib/control/packagectr-helper.js +149 -149
- package/lib/core/agent.js +329 -328
- package/lib/core/interceptor.js +142 -142
- package/lib/core/request-agent.js +26 -26
- package/lib/counter/counter-manager.js +127 -127
- package/lib/counter/meter/meter-activex.js +66 -66
- package/lib/counter/meter/meter-httpc.js +57 -57
- package/lib/counter/meter/meter-resource.js +9 -9
- package/lib/counter/meter/meter-service.js +167 -167
- package/lib/counter/meter/meter-socket.io.js +50 -50
- package/lib/counter/meter/meter-sql.js +70 -70
- package/lib/counter/meter/meter-users.js +57 -57
- package/lib/counter/meter.js +183 -183
- package/lib/counter/task/activetransaction.js +93 -93
- package/lib/counter/task/agentinfo.js +105 -105
- package/lib/counter/task/counter-task.js +9 -9
- package/lib/counter/task/gcstat.js +34 -34
- package/lib/counter/task/heapmem.js +24 -24
- package/lib/counter/task/httpc.js +75 -75
- package/lib/counter/task/proc-cpu.js +28 -28
- package/lib/counter/task/realtimeuser.js +30 -30
- package/lib/counter/task/res/systemECSTask.js +54 -54
- package/lib/counter/task/res/systemKubeTask.js +52 -52
- package/lib/counter/task/res/util/awsEcsClientThread.js +166 -166
- package/lib/counter/task/res/util/linuxProcStatUtil.js +13 -13
- package/lib/counter/task/res-sys-cpu.js +61 -61
- package/lib/counter/task/service.js +201 -201
- package/lib/counter/task/socketio.js +29 -29
- package/lib/counter/task/sql.js +104 -104
- package/lib/counter/task/systemperf.js +42 -42
- package/lib/data/datapack-sender.js +256 -256
- package/lib/data/dataprofile-agent.js +136 -136
- package/lib/data/datatext-agent.js +135 -135
- package/lib/data/event-level.js +15 -15
- package/lib/data/test.js +48 -48
- package/lib/env/constants.js +20 -20
- package/lib/kube/kube-client.js +143 -143
- package/lib/lang/text-types.js +58 -58
- package/lib/logger.js +319 -319
- package/lib/net/netflag.js +54 -54
- package/lib/net/paramdef.js +40 -40
- package/lib/net/receiver.js +65 -65
- package/lib/net/security-master.js +182 -173
- package/lib/net/sender.js +140 -140
- package/lib/net/tcp-return.js +17 -17
- package/lib/net/tcp-session.js +285 -285
- package/lib/net/tcpreq-client-proxy.js +69 -69
- package/lib/net/tcprequest-mgr.js +57 -57
- package/lib/observers/cluster-observer.js +21 -21
- package/lib/observers/express-observer.js +214 -214
- package/lib/observers/file-observer.js +184 -184
- package/lib/observers/global-observer.js +30 -30
- package/lib/observers/http-observer.js +704 -704
- package/lib/observers/maria-observer.js +382 -382
- package/lib/observers/memcached-observer.js +55 -55
- package/lib/observers/mongo-observer.js +262 -265
- package/lib/observers/mongodb-observer.js +197 -197
- package/lib/observers/mongoose-observer.js +83 -83
- package/lib/observers/mssql-observer.js +205 -205
- package/lib/observers/mysql-observer.js +436 -394
- package/lib/observers/net-observer.js +72 -72
- package/lib/observers/pgsql-observer.js +295 -295
- package/lib/observers/process-observer.js +25 -25
- package/lib/observers/promise-observer.js +31 -31
- package/lib/observers/redis-observer.js +156 -109
- package/lib/observers/schedule-observer.js +66 -66
- package/lib/observers/socket.io-observer.js +54 -54
- package/lib/observers/stream-observer.js +19 -19
- package/lib/observers/thrift-observer.js +196 -196
- package/lib/pack/activestack-pack.js +54 -54
- package/lib/pack/counter-pack.js +649 -649
- package/lib/pack/errorsnap-pack.js +68 -68
- package/lib/pack/event-pack.js +53 -53
- package/lib/pack/hitmap-pack.js +62 -62
- package/lib/pack/hitmap-pack1.js +146 -146
- package/lib/pack/netstat.js +14 -14
- package/lib/pack/pack.js +49 -49
- package/lib/pack/packenum.js +60 -60
- package/lib/pack/param-pack.js +213 -213
- package/lib/pack/profile-pack.js +48 -48
- package/lib/pack/realtimeuser-pack.js +40 -40
- package/lib/pack/stat-general-pack.js +95 -95
- package/lib/pack/staterror-pack.js +119 -119
- package/lib/pack/stathttpc-pack.js +66 -66
- package/lib/pack/stathttpc-rec.js +78 -78
- package/lib/pack/statremote-pack.js +45 -45
- package/lib/pack/statservice-pack.js +62 -62
- package/lib/pack/statservice-pack1.js +87 -87
- package/lib/pack/statservice-rec.js +292 -292
- package/lib/pack/statservice-rec_dep.js +151 -151
- package/lib/pack/statsql-pack.js +69 -69
- package/lib/pack/statsql-rec.js +100 -100
- package/lib/pack/statuseragent-pack.js +43 -43
- package/lib/pack/tagcount-pack.js +398 -398
- package/lib/pack/tagctr.js +14 -14
- package/lib/pack/text-pack.js +49 -49
- package/lib/pack/time-count.js +25 -25
- package/lib/pack/websocket.js +14 -14
- package/lib/plugin/plugin-loadermanager.js +56 -56
- package/lib/plugin/plugin.js +75 -75
- package/lib/requestlog.js +326 -326
- package/lib/service/tx-record.js +288 -288
- package/lib/stat/stat-error.js +116 -116
- package/lib/stat/stat-httpc.js +97 -97
- package/lib/stat/stat-remoteip.js +46 -46
- package/lib/stat/stat-sql.js +112 -112
- package/lib/stat/stat-tranx.js +57 -57
- package/lib/stat/stat-tx-caller.js +159 -159
- package/lib/stat/stat-tx-domain.js +110 -110
- package/lib/stat/stat-tx-referer.js +111 -111
- package/lib/stat/stat-useragent.js +48 -48
- package/lib/stat/timingsender.js +72 -72
- package/lib/step/activestack-step.js +37 -37
- package/lib/step/dbc-step.js +35 -35
- package/lib/step/http-stepx.js +66 -66
- package/lib/step/message-step.js +39 -39
- package/lib/step/method-stepx.js +46 -46
- package/lib/step/resultset-step.js +39 -39
- package/lib/step/securemsg-step.js +43 -43
- package/lib/step/socket-step.js +46 -46
- package/lib/step/sql-stepx.js +67 -67
- package/lib/step/sqlxtype.js +15 -15
- package/lib/step/step.js +65 -65
- package/lib/step/stepenum.js +53 -53
- package/lib/trace/local-context.js +13 -13
- package/lib/trace/parsed-sql.js +13 -13
- package/lib/trace/profile-collector.js +70 -70
- package/lib/trace/serviceurl-pattern-detector.js +117 -117
- package/lib/trace/trace-context-manager.js +195 -195
- package/lib/trace/trace-context.js +134 -134
- package/lib/util/anylist.js +102 -102
- package/lib/util/array-util.js +100 -100
- package/lib/util/bitutil.js +27 -27
- package/lib/util/cardinality/hyperloglog.js +105 -105
- package/lib/util/cardinality/murmurhash.js +31 -31
- package/lib/util/cardinality/registerset.js +74 -74
- package/lib/util/config-util.js +17 -17
- package/lib/util/cypher.js +89 -89
- package/lib/util/datetimehelper.js +237 -229
- package/lib/util/dateutil.js +110 -106
- package/lib/util/errordata.js +20 -20
- package/lib/util/escape-literal-sql.js +342 -342
- package/lib/util/hashutil2.js +126 -126
- package/lib/util/hexa32.js +57 -57
- package/lib/util/index.js +78 -78
- package/lib/util/intint-map.js +47 -47
- package/lib/util/intkey-linkedmap.js +26 -26
- package/lib/util/intkey-map.js +25 -25
- package/lib/util/intset.js +82 -82
- package/lib/util/iputil.js +119 -119
- package/lib/util/iputil_x.js +526 -526
- package/lib/util/keygen.js +17 -17
- package/lib/util/kube-util.js +72 -72
- package/lib/util/longint-linkedmap.js +35 -35
- package/lib/util/longkey-linkedmap.js +25 -25
- package/lib/util/longlong-linkedmap.js +37 -37
- package/lib/util/nodeutil.js +67 -67
- package/lib/util/oidutil.js +96 -93
- package/lib/util/paramsecurity.js +78 -78
- package/lib/util/pathtree.js +172 -172
- package/lib/util/pre-process.js +13 -13
- package/lib/util/process-seq.js +165 -165
- package/lib/util/property-util.js +35 -35
- package/lib/util/request-queue.js +42 -42
- package/lib/util/requestdouble-queue.js +72 -72
- package/lib/util/resourceprofile.js +156 -156
- package/lib/util/seedrandom.js +242 -242
- package/lib/util/stop-watch.js +29 -29
- package/lib/util/string-util.js +9 -9
- package/lib/util/stringkey-linkedmap.js +28 -28
- package/lib/util/stringnum-linkedmap.js +31 -31
- package/lib/util/stringset.js +65 -65
- package/lib/util/system-util.js +9 -9
- package/lib/util/userid-util.js +57 -57
- package/lib/util/utils.js +67 -67
- package/lib/value/blob-value.js +61 -61
- package/lib/value/boolean-value.js +51 -51
- package/lib/value/decimal-value.js +71 -71
- package/lib/value/double-summary.js +105 -105
- package/lib/value/double-value.js +50 -50
- package/lib/value/float-array.js +59 -59
- package/lib/value/float-value.js +64 -64
- package/lib/value/int-array.js +59 -59
- package/lib/value/int-map-value.js +151 -151
- package/lib/value/int-value.js +64 -64
- package/lib/value/ip4-value.js +83 -83
- package/lib/value/list-value.js +136 -136
- package/lib/value/long-array.js +59 -59
- package/lib/value/long-summary.js +105 -105
- package/lib/value/map-value.js +175 -175
- package/lib/value/metric-value.js +157 -157
- package/lib/value/null-value.js +42 -42
- package/lib/value/number-value.js +34 -34
- package/lib/value/summary-value.js +29 -29
- package/lib/value/text-array.js +117 -117
- package/lib/value/text-value.js +59 -59
- package/lib/value/texthash-value.js +49 -49
- package/lib/value/value.js +14 -14
- package/lib/value/valueenum.js +99 -99
- package/logs/whatap-20230906.log +54 -0
- package/package.json +28 -28
- package/whatap.conf +1 -1
- package/logs/whatap-20230616.log +0 -13
package/lib/util/keygen.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
require('./seedrandom');
|
|
8
|
-
|
|
9
|
-
var Long = require('long'),
|
|
10
|
-
rand = new Math.seedrandom(Date.now(), {entropy : true});
|
|
11
|
-
|
|
12
|
-
var KeyGen = {
|
|
13
|
-
next : function () {
|
|
14
|
-
return Long.fromBits(rand.int32(), rand.int32());
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
require('./seedrandom');
|
|
8
|
+
|
|
9
|
+
var Long = require('long'),
|
|
10
|
+
rand = new Math.seedrandom(Date.now(), {entropy : true});
|
|
11
|
+
|
|
12
|
+
var KeyGen = {
|
|
13
|
+
next : function () {
|
|
14
|
+
return Long.fromBits(rand.int32(), rand.int32());
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
18
|
module.exports = KeyGen;
|
package/lib/util/kube-util.js
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
var fs = require('fs');
|
|
2
|
-
var HashUtil2 = require('./hashutil2'),
|
|
3
|
-
StringUtil = require('./string-util'),
|
|
4
|
-
Logger = require('./../logger');
|
|
5
|
-
|
|
6
|
-
var KubeUtil = {
|
|
7
|
-
container_key: 0,
|
|
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
|
-
},
|
|
37
|
-
loadContainerId: function(){
|
|
38
|
-
if (this.container_id !== null && this.container_id !== undefined) return;
|
|
39
|
-
|
|
40
|
-
try{
|
|
41
|
-
var content = fs.readFileSync("/proc/self/cgroup");
|
|
42
|
-
content = content.toString('utf-8');
|
|
43
|
-
var contents = content.split('\n')
|
|
44
|
-
|
|
45
|
-
for(var i = 0 ; i < contents.length ; i++){
|
|
46
|
-
var line = contents[i].trim();
|
|
47
|
-
if(line){
|
|
48
|
-
if(line.indexOf("/ecs/") >= 0) {
|
|
49
|
-
this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
50
|
-
} else{
|
|
51
|
-
//this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
52
|
-
//this.container_id = this.container_id.replace(/^(docker-)+|(cri-containerd-)+|(crio-)+|(\\.scope)+$/ig, "");
|
|
53
|
-
//container_id = container_id.replace(/^(docker-)+|(cri-)+|(cri-containerd-)+|(crio-)+|(.scope)+$/ig, "");
|
|
54
|
-
this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
55
|
-
this.container_id = this.container_id.replace(/^|(.scope)+$/ig, "");
|
|
56
|
-
this.container_id = this.container_id.substr(this.container_id.lastIndexOf('-')+1);
|
|
57
|
-
this.container_id = this.container_id.substr(this.container_id.lastIndexOf(':')+1);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if(this.container_id.length > 5){
|
|
61
|
-
this.container_key = HashUtil2.hash(this.container_id);
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
Logger.print('WHATAP-800' , 'loadContainerId id:' + this.container_id + ' // key:' + this.container_key , false);
|
|
67
|
-
}catch(e){
|
|
68
|
-
Logger.printError('WHATAP-800', 'KubeUtil(loadContainerId) ', e)
|
|
69
|
-
}
|
|
70
|
-
if(this.container_key == 0) this.loadFromMountinfo();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
var HashUtil2 = require('./hashutil2'),
|
|
3
|
+
StringUtil = require('./string-util'),
|
|
4
|
+
Logger = require('./../logger');
|
|
5
|
+
|
|
6
|
+
var KubeUtil = {
|
|
7
|
+
container_key: 0,
|
|
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
|
+
},
|
|
37
|
+
loadContainerId: function(){
|
|
38
|
+
if (this.container_id !== null && this.container_id !== undefined) return;
|
|
39
|
+
|
|
40
|
+
try{
|
|
41
|
+
var content = fs.readFileSync("/proc/self/cgroup");
|
|
42
|
+
content = content.toString('utf-8');
|
|
43
|
+
var contents = content.split('\n')
|
|
44
|
+
|
|
45
|
+
for(var i = 0 ; i < contents.length ; i++){
|
|
46
|
+
var line = contents[i].trim();
|
|
47
|
+
if(line){
|
|
48
|
+
if(line.indexOf("/ecs/") >= 0) {
|
|
49
|
+
this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
50
|
+
} else{
|
|
51
|
+
//this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
52
|
+
//this.container_id = this.container_id.replace(/^(docker-)+|(cri-containerd-)+|(crio-)+|(\\.scope)+$/ig, "");
|
|
53
|
+
//container_id = container_id.replace(/^(docker-)+|(cri-)+|(cri-containerd-)+|(crio-)+|(.scope)+$/ig, "");
|
|
54
|
+
this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
|
|
55
|
+
this.container_id = this.container_id.replace(/^|(.scope)+$/ig, "");
|
|
56
|
+
this.container_id = this.container_id.substr(this.container_id.lastIndexOf('-')+1);
|
|
57
|
+
this.container_id = this.container_id.substr(this.container_id.lastIndexOf(':')+1);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if(this.container_id.length > 5){
|
|
61
|
+
this.container_key = HashUtil2.hash(this.container_id);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
Logger.print('WHATAP-800' , 'loadContainerId id:' + this.container_id + ' // key:' + this.container_key , false);
|
|
67
|
+
}catch(e){
|
|
68
|
+
Logger.printError('WHATAP-800', 'KubeUtil(loadContainerId) ', e)
|
|
69
|
+
}
|
|
70
|
+
if(this.container_key == 0) this.loadFromMountinfo();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
73
|
module.exports = KubeUtil;
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
//var LongKeyLinkedMap = require('./longkey-linkedmap');
|
|
9
|
-
var LinkedMap = require('./linkedmap'),
|
|
10
|
-
Long = require('long');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function LongIntLinkedMap(initCapacity, loadFactor) {
|
|
14
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
15
|
-
return this;
|
|
16
|
-
}
|
|
17
|
-
LongIntLinkedMap.prototype = new LinkedMap();
|
|
18
|
-
LongIntLinkedMap.prototype.constructor = LongIntLinkedMap;
|
|
19
|
-
// LongIntLinkedMap.prototype.add = function (key, value) {
|
|
20
|
-
// var val = LongKeyLinkedMap.prototype.get.call(this, key)
|
|
21
|
-
// LongKeyLinkedMap.prototype.put.call(val.add(value));
|
|
22
|
-
// };
|
|
23
|
-
LongIntLinkedMap.prototype.none = function () {
|
|
24
|
-
return 0;
|
|
25
|
-
};
|
|
26
|
-
LongIntLinkedMap.prototype.hash = function (key /*long*/) {
|
|
27
|
-
return Math.abs(key.toNumber());
|
|
28
|
-
};
|
|
29
|
-
LongIntLinkedMap.prototype.equals = function (key1, key2) {
|
|
30
|
-
return key1.equals(key2);
|
|
31
|
-
};
|
|
32
|
-
LongIntLinkedMap.prototype.sum = function (value1, value2) {
|
|
33
|
-
return value1+value2;
|
|
34
|
-
};
|
|
35
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
//var LongKeyLinkedMap = require('./longkey-linkedmap');
|
|
9
|
+
var LinkedMap = require('./linkedmap'),
|
|
10
|
+
Long = require('long');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
function LongIntLinkedMap(initCapacity, loadFactor) {
|
|
14
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
LongIntLinkedMap.prototype = new LinkedMap();
|
|
18
|
+
LongIntLinkedMap.prototype.constructor = LongIntLinkedMap;
|
|
19
|
+
// LongIntLinkedMap.prototype.add = function (key, value) {
|
|
20
|
+
// var val = LongKeyLinkedMap.prototype.get.call(this, key)
|
|
21
|
+
// LongKeyLinkedMap.prototype.put.call(val.add(value));
|
|
22
|
+
// };
|
|
23
|
+
LongIntLinkedMap.prototype.none = function () {
|
|
24
|
+
return 0;
|
|
25
|
+
};
|
|
26
|
+
LongIntLinkedMap.prototype.hash = function (key /*long*/) {
|
|
27
|
+
return Math.abs(key.toNumber());
|
|
28
|
+
};
|
|
29
|
+
LongIntLinkedMap.prototype.equals = function (key1, key2) {
|
|
30
|
+
return key1.equals(key2);
|
|
31
|
+
};
|
|
32
|
+
LongIntLinkedMap.prototype.sum = function (value1, value2) {
|
|
33
|
+
return value1+value2;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
36
|
module.exports = LongIntLinkedMap;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var LinkedMap = require('./linkedmap'),
|
|
9
|
-
Long = require('long');
|
|
10
|
-
|
|
11
|
-
function LongKeyLinkedMap(initCapacity, loadFactor){
|
|
12
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
LongKeyLinkedMap.prototype = new LinkedMap();
|
|
17
|
-
LongKeyLinkedMap.prototype.constructor = LongKeyLinkedMap;
|
|
18
|
-
|
|
19
|
-
LongKeyLinkedMap.prototype.hash = function (key /*long*/) {
|
|
20
|
-
return Math.abs(key.toNumber());
|
|
21
|
-
};
|
|
22
|
-
LongKeyLinkedMap.prototype.equals = function (key1, key2) {
|
|
23
|
-
return key1.equals(key2);
|
|
24
|
-
};
|
|
25
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var LinkedMap = require('./linkedmap'),
|
|
9
|
+
Long = require('long');
|
|
10
|
+
|
|
11
|
+
function LongKeyLinkedMap(initCapacity, loadFactor){
|
|
12
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
LongKeyLinkedMap.prototype = new LinkedMap();
|
|
17
|
+
LongKeyLinkedMap.prototype.constructor = LongKeyLinkedMap;
|
|
18
|
+
|
|
19
|
+
LongKeyLinkedMap.prototype.hash = function (key /*long*/) {
|
|
20
|
+
return Math.abs(key.toNumber());
|
|
21
|
+
};
|
|
22
|
+
LongKeyLinkedMap.prototype.equals = function (key1, key2) {
|
|
23
|
+
return key1.equals(key2);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
26
|
module.exports = LongKeyLinkedMap;
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var LinkedMap = require('./linkedmap'),
|
|
8
|
-
Long = require('long');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function LongLongLinkedMap(initCapacity, loadFactor) {
|
|
12
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
function LongLongLinkedMap(initCapacity, loadFactor) {
|
|
16
|
-
LongKeyLinkedMap.call(this, initCapacity, loadFactor);
|
|
17
|
-
return this;
|
|
18
|
-
}
|
|
19
|
-
LongLongLinkedMap.prototype = new LinkedMap();
|
|
20
|
-
LongLongLinkedMap.prototype.constructor = LongLongLinkedMap;
|
|
21
|
-
|
|
22
|
-
LongLongLinkedMap.prototype.none = function () {
|
|
23
|
-
return 0;
|
|
24
|
-
};
|
|
25
|
-
LongLongLinkedMap.prototype.hash = function (key /*long*/) {
|
|
26
|
-
return Math.abs(key.toNumber());
|
|
27
|
-
};
|
|
28
|
-
LongLongLinkedMap.prototype.equals = function (key1, key2) {
|
|
29
|
-
if(key1===key2){
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
return key1.equals(key2);
|
|
33
|
-
};
|
|
34
|
-
LongLongLinkedMap.prototype.sum = function (value1, value2) {
|
|
35
|
-
return value1.add(value2);
|
|
36
|
-
};
|
|
37
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var LinkedMap = require('./linkedmap'),
|
|
8
|
+
Long = require('long');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
function LongLongLinkedMap(initCapacity, loadFactor) {
|
|
12
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
function LongLongLinkedMap(initCapacity, loadFactor) {
|
|
16
|
+
LongKeyLinkedMap.call(this, initCapacity, loadFactor);
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
LongLongLinkedMap.prototype = new LinkedMap();
|
|
20
|
+
LongLongLinkedMap.prototype.constructor = LongLongLinkedMap;
|
|
21
|
+
|
|
22
|
+
LongLongLinkedMap.prototype.none = function () {
|
|
23
|
+
return 0;
|
|
24
|
+
};
|
|
25
|
+
LongLongLinkedMap.prototype.hash = function (key /*long*/) {
|
|
26
|
+
return Math.abs(key.toNumber());
|
|
27
|
+
};
|
|
28
|
+
LongLongLinkedMap.prototype.equals = function (key1, key2) {
|
|
29
|
+
if(key1===key2){
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return key1.equals(key2);
|
|
33
|
+
};
|
|
34
|
+
LongLongLinkedMap.prototype.sum = function (value1, value2) {
|
|
35
|
+
return value1.add(value2);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
38
|
module.exports = LongLongLinkedMap;
|
package/lib/util/nodeutil.js
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var fs = require('fs'),
|
|
8
|
-
path = require('path');
|
|
9
|
-
|
|
10
|
-
function getPackageJson(){
|
|
11
|
-
var appDir = require('./../conf/configure')['app.root'];
|
|
12
|
-
try {
|
|
13
|
-
var whatap_path = path.join(
|
|
14
|
-
appDir,
|
|
15
|
-
'node_modules',
|
|
16
|
-
'whatap',
|
|
17
|
-
'package.json');
|
|
18
|
-
NodeUtil.packageJson = require(whatap_path, 'utf8');
|
|
19
|
-
return;
|
|
20
|
-
} catch(e) {
|
|
21
|
-
}
|
|
22
|
-
NodeUtil.packageJson = {};
|
|
23
|
-
}
|
|
24
|
-
function recursiveCall(fullPath, file, cb){
|
|
25
|
-
if(fullPath === undefined) return;
|
|
26
|
-
|
|
27
|
-
if(fullPath && fullPath.length < 3 ) {
|
|
28
|
-
if(cb) return cb('root');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
fs.access( path.join( fullPath, file) , function(err,data){
|
|
32
|
-
if(err && err.code == "ENOENT"){
|
|
33
|
-
return recursiveCall( path.resolve(fullPath , '..') , file, cb);
|
|
34
|
-
}else if(err){
|
|
35
|
-
return cb( err );
|
|
36
|
-
}else{
|
|
37
|
-
return cb(null, path.join( fullPath, file ) );
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var NodeUtil = {
|
|
43
|
-
getVersion: function(){
|
|
44
|
-
return this.packageJson['version'] || 'unknown';
|
|
45
|
-
},
|
|
46
|
-
getName: function(){
|
|
47
|
-
return this.packageJson['name'] || 'WhaTap APM';
|
|
48
|
-
},
|
|
49
|
-
getTimeZone: function(){
|
|
50
|
-
var d = new Date();
|
|
51
|
-
//var dateString = d.toString();
|
|
52
|
-
var dateString = d.getTimezoneOffset();
|
|
53
|
-
|
|
54
|
-
if(dateString < 0) dateString = "GMT+" + ((100 + Math.abs(dateString/60)) + '00').substr(1);
|
|
55
|
-
else if(dateString > 0) dateString = "GMT-" + ((100 + Math.abs(dateString/60)) + '00').substr(1);
|
|
56
|
-
else dateString = "GMT";
|
|
57
|
-
//return /GMT[!\S]*/.exec(dateString)[0];
|
|
58
|
-
return dateString;
|
|
59
|
-
},
|
|
60
|
-
getReleaseDate: function(){
|
|
61
|
-
return this.packageJson['releaseDate'] || 'unknown';
|
|
62
|
-
},
|
|
63
|
-
recursiveCall: recursiveCall,
|
|
64
|
-
getPackageJson : getPackageJson,
|
|
65
|
-
packageJson : {}
|
|
66
|
-
};
|
|
67
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var fs = require('fs'),
|
|
8
|
+
path = require('path');
|
|
9
|
+
|
|
10
|
+
function getPackageJson(){
|
|
11
|
+
var appDir = require('./../conf/configure')['app.root'];
|
|
12
|
+
try {
|
|
13
|
+
var whatap_path = path.join(
|
|
14
|
+
appDir,
|
|
15
|
+
'node_modules',
|
|
16
|
+
'whatap',
|
|
17
|
+
'package.json');
|
|
18
|
+
NodeUtil.packageJson = require(whatap_path, 'utf8');
|
|
19
|
+
return;
|
|
20
|
+
} catch(e) {
|
|
21
|
+
}
|
|
22
|
+
NodeUtil.packageJson = {};
|
|
23
|
+
}
|
|
24
|
+
function recursiveCall(fullPath, file, cb){
|
|
25
|
+
if(fullPath === undefined) return;
|
|
26
|
+
|
|
27
|
+
if(fullPath && fullPath.length < 3 ) {
|
|
28
|
+
if(cb) return cb('root');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
fs.access( path.join( fullPath, file) , function(err,data){
|
|
32
|
+
if(err && err.code == "ENOENT"){
|
|
33
|
+
return recursiveCall( path.resolve(fullPath , '..') , file, cb);
|
|
34
|
+
}else if(err){
|
|
35
|
+
return cb( err );
|
|
36
|
+
}else{
|
|
37
|
+
return cb(null, path.join( fullPath, file ) );
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var NodeUtil = {
|
|
43
|
+
getVersion: function(){
|
|
44
|
+
return this.packageJson['version'] || 'unknown';
|
|
45
|
+
},
|
|
46
|
+
getName: function(){
|
|
47
|
+
return this.packageJson['name'] || 'WhaTap APM';
|
|
48
|
+
},
|
|
49
|
+
getTimeZone: function(){
|
|
50
|
+
var d = new Date();
|
|
51
|
+
//var dateString = d.toString();
|
|
52
|
+
var dateString = d.getTimezoneOffset();
|
|
53
|
+
|
|
54
|
+
if(dateString < 0) dateString = "GMT+" + ((100 + Math.abs(dateString/60)) + '00').substr(1);
|
|
55
|
+
else if(dateString > 0) dateString = "GMT-" + ((100 + Math.abs(dateString/60)) + '00').substr(1);
|
|
56
|
+
else dateString = "GMT";
|
|
57
|
+
//return /GMT[!\S]*/.exec(dateString)[0];
|
|
58
|
+
return dateString;
|
|
59
|
+
},
|
|
60
|
+
getReleaseDate: function(){
|
|
61
|
+
return this.packageJson['releaseDate'] || 'unknown';
|
|
62
|
+
},
|
|
63
|
+
recursiveCall: recursiveCall,
|
|
64
|
+
getPackageJson : getPackageJson,
|
|
65
|
+
packageJson : {}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
68
|
module.exports = NodeUtil;
|