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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"active": null,
|
|
3
|
-
"tasks": {}
|
|
1
|
+
{
|
|
2
|
+
"active": null,
|
|
3
|
+
"tasks": {}
|
|
4
4
|
}
|
package/README.md
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
[](http://www.whatap.io/)
|
|
3
|
-
|
|
4
|
-
# Whatap for Node.js
|
|
5
|
-
|
|
6
|
-
Whatap allows for application performance monitoring.
|
|
7
|
-
|
|
8
|
-
Works on Linux(32bit, 64bit), MacOSx(32bit, 64bit), Windows(32bit, 64bit).
|
|
9
|
-
|
|
10
|
-
*Node.js 지원 버젼: 4.3.2 이상
|
|
11
|
-
|
|
12
|
-

|
|
13
|
-
|
|
14
|
-
#### Npm install
|
|
15
|
-
|
|
16
|
-
npm 에서 다음과 같은 명령어를 통해 whatap을 설치 할 수 있습니다.
|
|
17
|
-
|
|
18
|
-
$ npm install --save whatap
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-

|
|
23
|
-
|
|
24
|
-
#### License Key
|
|
25
|
-
|
|
26
|
-
node\_modules/whatap에 있는 whatap.conf파일을 루트 디렉토리로 복사 후
|
|
27
|
-
라이센스 키를 발급받은 후 추가 해 주세요.
|
|
28
|
-
|
|
29
|
-
whatap.conf 파일은 다음과 같은 내용을 포함합니다.
|
|
30
|
-
|
|
31
|
-
license=XXXXXXXXXXXXXX-XXXXXXXXXXXXXX-XXXXXXXXXXXXXX
|
|
32
|
-
whatap.server.host=XXX.XXX.XXX.XXX
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-

|
|
37
|
-
|
|
38
|
-
#### Usage
|
|
39
|
-
|
|
40
|
-
루트 디렉토리의 Node.js Application에 다음과 같은 코드를 추가 해 주세요.
|
|
41
|
-
|
|
42
|
-
var WhatapAgent = require('whatap').NodeAgent;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-

|
|
47
|
-
|
|
48
|
-
#### Restart
|
|
49
|
-
|
|
50
|
-
어플리케이션 서버가 실행되면 애플리케이션의 모니터링 정보를 수집하기
|
|
51
|
-
시작합니다.
|
|
1
|
+
|
|
2
|
+
[](http://www.whatap.io/)
|
|
3
|
+
|
|
4
|
+
# Whatap for Node.js
|
|
5
|
+
|
|
6
|
+
Whatap allows for application performance monitoring.
|
|
7
|
+
|
|
8
|
+
Works on Linux(32bit, 64bit), MacOSx(32bit, 64bit), Windows(32bit, 64bit).
|
|
9
|
+
|
|
10
|
+
*Node.js 지원 버젼: 4.3.2 이상
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
#### Npm install
|
|
15
|
+
|
|
16
|
+
npm 에서 다음과 같은 명령어를 통해 whatap을 설치 할 수 있습니다.
|
|
17
|
+
|
|
18
|
+
$ npm install --save whatap
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
#### License Key
|
|
25
|
+
|
|
26
|
+
node\_modules/whatap에 있는 whatap.conf파일을 루트 디렉토리로 복사 후
|
|
27
|
+
라이센스 키를 발급받은 후 추가 해 주세요.
|
|
28
|
+
|
|
29
|
+
whatap.conf 파일은 다음과 같은 내용을 포함합니다.
|
|
30
|
+
|
|
31
|
+
license=XXXXXXXXXXXXXX-XXXXXXXXXXXXXX-XXXXXXXXXXXXXX
|
|
32
|
+
whatap.server.host=XXX.XXX.XXX.XXX
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
#### Usage
|
|
39
|
+
|
|
40
|
+
루트 디렉토리의 Node.js Application에 다음과 같은 코드를 추가 해 주세요.
|
|
41
|
+
|
|
42
|
+
var WhatapAgent = require('whatap').NodeAgent;
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+

|
|
47
|
+
|
|
48
|
+
#### Restart
|
|
49
|
+
|
|
50
|
+
어플리케이션 서버가 실행되면 애플리케이션의 모니터링 정보를 수집하기
|
|
51
|
+
시작합니다.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/help.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
//whatap.conf를 다른 것으로 사용하고 싶을때
|
|
2
|
-
process.env.WHATAP_CONF = "whatap";
|
|
3
|
-
process.env.WHATAP_NAME = "NODE-{ip2}-{ip3}"
|
|
4
|
-
|
|
5
|
-
//플러그인추가
|
|
6
|
-
var WhatapAgent = require('whatap').NodeAgent;
|
|
7
|
-
WhatapAgent.plugin("extra", function(pack){
|
|
8
|
-
pack.putInt(9001,41);
|
|
9
|
-
});
|
|
10
|
-
|
|
1
|
+
//whatap.conf를 다른 것으로 사용하고 싶을때
|
|
2
|
+
process.env.WHATAP_CONF = "whatap";
|
|
3
|
+
process.env.WHATAP_NAME = "NODE-{ip2}-{ip3}"
|
|
4
|
+
|
|
5
|
+
//플러그인추가
|
|
6
|
+
var WhatapAgent = require('whatap').NodeAgent;
|
|
7
|
+
WhatapAgent.plugin("extra", function(pack){
|
|
8
|
+
pack.putInt(9001,41);
|
|
9
|
+
});
|
|
10
|
+
|
package/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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
|
-
exports.NodeAgent = require('./lib/core/agent').NodeAgent;
|
|
8
|
-
exports.Tracer = require('./lib/trace/trace-context-manager');
|
|
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
|
+
exports.NodeAgent = require('./lib/core/agent').NodeAgent;
|
|
8
|
+
exports.Tracer = require('./lib/trace/trace-context-manager');
|
package/lib/conf/conf-sys-mon.js
CHANGED
|
@@ -1,101 +1,101 @@
|
|
|
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 WHATAP_CONF = process.env.WHATAP_CONF || 'whatap';
|
|
8
|
-
|
|
9
|
-
var fs = require('fs'),
|
|
10
|
-
path = require('path'),
|
|
11
|
-
EventEmitter = require('events').EventEmitter;
|
|
12
|
-
|
|
13
|
-
var DataInputX = require('./../io/data-inputx'),
|
|
14
|
-
secu = require('./../net/security-master'),
|
|
15
|
-
NodeUtil = require('./../util/nodeutil'),
|
|
16
|
-
HashUtil = require('./../util/hashutil'),
|
|
17
|
-
StringUtil = require('./../util/string-util'),
|
|
18
|
-
Cypher = require('./../util/cypher'),
|
|
19
|
-
ConfigDefault = require("./config-default"),
|
|
20
|
-
MapValue = require('./../value/map-value'),
|
|
21
|
-
ConfigUtil = require('../util/config-util'),
|
|
22
|
-
SystemUtil = require('../util/system-util'),
|
|
23
|
-
LinuxProcStatUtil = require('./../counter/task/res/util/linuxProcStatUtil'),
|
|
24
|
-
lastModifiedTime = 0;
|
|
25
|
-
|
|
26
|
-
var num = ConfigUtil.num;
|
|
27
|
-
var str = ConfigUtil.str;
|
|
28
|
-
var bool = ConfigUtil.bool;
|
|
29
|
-
|
|
30
|
-
var ConfSysMon = function() {
|
|
31
|
-
var self = this;
|
|
32
|
-
EventEmitter.call(this);
|
|
33
|
-
|
|
34
|
-
this.aws_ecs_enabled = false;
|
|
35
|
-
this.linux_proc_stat_enabled = false;
|
|
36
|
-
this.shell_perf_enabled = false;
|
|
37
|
-
|
|
38
|
-
this.correction_factor_cpu = 1;
|
|
39
|
-
this.correction_factor_pcpu = 1;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
ConfSysMon.prototype = new EventEmitter();
|
|
43
|
-
ConfSysMon.prototype.constructor = ConfSysMon;
|
|
44
|
-
|
|
45
|
-
ConfSysMon.prototype.apply = function(properties) {
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
var meta_uri = process.env["ECS_CONTAINER_METADATA_URI"];
|
|
49
|
-
this.aws_ecs_enabled = meta_uri != null;
|
|
50
|
-
if (this.aws_ecs_enabled) {
|
|
51
|
-
this.aws_ecs_enabled = bool(conf["whatap.ecs.enabled"], true);
|
|
52
|
-
}
|
|
53
|
-
} catch (e) {
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
this.linux_proc_stat_enabled = bool(conf["linux_proc_stat_enabled"], false);
|
|
57
|
-
this.shell_perf_enabled = bool(conf["shell_perf_enabled"], false);
|
|
58
|
-
|
|
59
|
-
this.correction_factor_cpu = num(conf["correction_factor_cpu"], 1);
|
|
60
|
-
this.correction_factor_pcpu = num(conf["correction_factor_pcpu"], 1);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
ConfSysMon.prototype.SysType = {
|
|
64
|
-
NONE: 'NONE',
|
|
65
|
-
ECS: 'ECS',
|
|
66
|
-
KUBE: 'KUBE',
|
|
67
|
-
LINUX: 'LINUX',
|
|
68
|
-
JMX: 'JMX',
|
|
69
|
-
SHELL: 'SHELL',
|
|
70
|
-
SIGAR: 'SIGAR'
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
ConfSysMon.prototype.findType = function(){
|
|
74
|
-
var t = this.SysType.NONE;
|
|
75
|
-
|
|
76
|
-
// dynamic reload!!!
|
|
77
|
-
var Configure = require('./configure');
|
|
78
|
-
|
|
79
|
-
if (Configure.whatap_micro_enabled) {
|
|
80
|
-
t = this.SysType.KUBE;
|
|
81
|
-
} else if (this.aws_ecs_enabled) {
|
|
82
|
-
t = this.SysType.ECS;
|
|
83
|
-
} else if (this.linux_proc_stat_enabled) {
|
|
84
|
-
if (SystemUtil.IS_LINUX && LinuxProcStatUtil.isLinux()) {
|
|
85
|
-
t = this.SysType.LINUX;
|
|
86
|
-
} else {
|
|
87
|
-
t = this.SysType.JMX;
|
|
88
|
-
}
|
|
89
|
-
} else if (this.shell_perf_enabled) {
|
|
90
|
-
t = this.SysType.SHELL;
|
|
91
|
-
} /*else if (this.sigar_enabled) {
|
|
92
|
-
t = this.SysType.SIGAR;
|
|
93
|
-
} */else {
|
|
94
|
-
t = this.SysType.JMX;
|
|
95
|
-
}
|
|
96
|
-
return t;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const conf = new ConfSysMon();
|
|
100
|
-
|
|
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 WHATAP_CONF = process.env.WHATAP_CONF || 'whatap';
|
|
8
|
+
|
|
9
|
+
var fs = require('fs'),
|
|
10
|
+
path = require('path'),
|
|
11
|
+
EventEmitter = require('events').EventEmitter;
|
|
12
|
+
|
|
13
|
+
var DataInputX = require('./../io/data-inputx'),
|
|
14
|
+
secu = require('./../net/security-master'),
|
|
15
|
+
NodeUtil = require('./../util/nodeutil'),
|
|
16
|
+
HashUtil = require('./../util/hashutil'),
|
|
17
|
+
StringUtil = require('./../util/string-util'),
|
|
18
|
+
Cypher = require('./../util/cypher'),
|
|
19
|
+
ConfigDefault = require("./config-default"),
|
|
20
|
+
MapValue = require('./../value/map-value'),
|
|
21
|
+
ConfigUtil = require('../util/config-util'),
|
|
22
|
+
SystemUtil = require('../util/system-util'),
|
|
23
|
+
LinuxProcStatUtil = require('./../counter/task/res/util/linuxProcStatUtil'),
|
|
24
|
+
lastModifiedTime = 0;
|
|
25
|
+
|
|
26
|
+
var num = ConfigUtil.num;
|
|
27
|
+
var str = ConfigUtil.str;
|
|
28
|
+
var bool = ConfigUtil.bool;
|
|
29
|
+
|
|
30
|
+
var ConfSysMon = function() {
|
|
31
|
+
var self = this;
|
|
32
|
+
EventEmitter.call(this);
|
|
33
|
+
|
|
34
|
+
this.aws_ecs_enabled = false;
|
|
35
|
+
this.linux_proc_stat_enabled = false;
|
|
36
|
+
this.shell_perf_enabled = false;
|
|
37
|
+
|
|
38
|
+
this.correction_factor_cpu = 1;
|
|
39
|
+
this.correction_factor_pcpu = 1;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
ConfSysMon.prototype = new EventEmitter();
|
|
43
|
+
ConfSysMon.prototype.constructor = ConfSysMon;
|
|
44
|
+
|
|
45
|
+
ConfSysMon.prototype.apply = function(properties) {
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
var meta_uri = process.env["ECS_CONTAINER_METADATA_URI"];
|
|
49
|
+
this.aws_ecs_enabled = meta_uri != null;
|
|
50
|
+
if (this.aws_ecs_enabled) {
|
|
51
|
+
this.aws_ecs_enabled = bool(conf["whatap.ecs.enabled"], true);
|
|
52
|
+
}
|
|
53
|
+
} catch (e) {
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this.linux_proc_stat_enabled = bool(conf["linux_proc_stat_enabled"], false);
|
|
57
|
+
this.shell_perf_enabled = bool(conf["shell_perf_enabled"], false);
|
|
58
|
+
|
|
59
|
+
this.correction_factor_cpu = num(conf["correction_factor_cpu"], 1);
|
|
60
|
+
this.correction_factor_pcpu = num(conf["correction_factor_pcpu"], 1);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
ConfSysMon.prototype.SysType = {
|
|
64
|
+
NONE: 'NONE',
|
|
65
|
+
ECS: 'ECS',
|
|
66
|
+
KUBE: 'KUBE',
|
|
67
|
+
LINUX: 'LINUX',
|
|
68
|
+
JMX: 'JMX',
|
|
69
|
+
SHELL: 'SHELL',
|
|
70
|
+
SIGAR: 'SIGAR'
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
ConfSysMon.prototype.findType = function(){
|
|
74
|
+
var t = this.SysType.NONE;
|
|
75
|
+
|
|
76
|
+
// dynamic reload!!!
|
|
77
|
+
var Configure = require('./configure');
|
|
78
|
+
|
|
79
|
+
if (Configure.whatap_micro_enabled) {
|
|
80
|
+
t = this.SysType.KUBE;
|
|
81
|
+
} else if (this.aws_ecs_enabled) {
|
|
82
|
+
t = this.SysType.ECS;
|
|
83
|
+
} else if (this.linux_proc_stat_enabled) {
|
|
84
|
+
if (SystemUtil.IS_LINUX && LinuxProcStatUtil.isLinux()) {
|
|
85
|
+
t = this.SysType.LINUX;
|
|
86
|
+
} else {
|
|
87
|
+
t = this.SysType.JMX;
|
|
88
|
+
}
|
|
89
|
+
} else if (this.shell_perf_enabled) {
|
|
90
|
+
t = this.SysType.SHELL;
|
|
91
|
+
} /*else if (this.sigar_enabled) {
|
|
92
|
+
t = this.SysType.SIGAR;
|
|
93
|
+
} */else {
|
|
94
|
+
t = this.SysType.JMX;
|
|
95
|
+
}
|
|
96
|
+
return t;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const conf = new ConfSysMon();
|
|
100
|
+
|
|
101
101
|
module.exports = conf;
|