whatap 0.5.26 → 1.0.0-canary.0

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.
Files changed (198) hide show
  1. package/README.md +78 -32
  2. package/agent/darwin/arm64/whatap_nodejs +0 -0
  3. package/agent/linux/amd64/whatap_nodejs +0 -0
  4. package/agent/linux/arm64/whatap_nodejs +0 -0
  5. package/build.txt +4 -0
  6. package/lib/conf/config-default.js +3 -10
  7. package/lib/conf/configure.js +349 -369
  8. package/lib/conf/license.js +1 -1
  9. package/lib/control/packagectr-helper.js +3 -34
  10. package/lib/core/agent.js +882 -176
  11. package/lib/core/interceptor.js +6 -6
  12. package/lib/core/shimmer.js +36 -82
  13. package/lib/counter/counter-manager.js +8 -79
  14. package/lib/counter/task/activetransaction.js +17 -68
  15. package/lib/io/data-inputx.js +3 -13
  16. package/lib/io/data-outputx.js +206 -268
  17. package/lib/logger.js +6 -6
  18. package/lib/net/security-master.js +20 -139
  19. package/lib/observers/apollo-server-observer.js +27 -33
  20. package/lib/observers/global-observer.js +80 -155
  21. package/lib/observers/http-observer.js +236 -666
  22. package/lib/observers/ioredis-observer.js +294 -0
  23. package/lib/observers/maria-observer.js +362 -204
  24. package/lib/observers/mongodb-observer.js +226 -169
  25. package/lib/observers/mongoose-observer.js +323 -518
  26. package/lib/observers/mssql-observer.js +418 -177
  27. package/lib/observers/mysql-observer.js +449 -342
  28. package/lib/observers/mysql2-observer.js +358 -396
  29. package/lib/observers/oracle-observer.js +384 -559
  30. package/lib/observers/pgsql-observer.js +489 -231
  31. package/lib/observers/prisma-observer.js +92 -303
  32. package/lib/observers/process-observer.js +35 -79
  33. package/lib/observers/redis-observer.js +331 -166
  34. package/lib/observers/socket.io-observer.js +187 -226
  35. package/lib/observers/websocket-observer.js +301 -175
  36. package/lib/pack/counter-pack.js +0 -3
  37. package/lib/pack/log-sink-pack.js +52 -14
  38. package/lib/pack/tagcount-pack.js +4 -4
  39. package/lib/{counter/task → system}/gc-action.js +74 -27
  40. package/lib/trace/trace-context-manager.js +25 -113
  41. package/lib/trace/trace-context.js +7 -21
  42. package/lib/trace/trace-httpc.js +11 -17
  43. package/lib/trace/trace-sql.js +21 -29
  44. package/lib/udp/async_sender.js +119 -0
  45. package/lib/udp/index.js +17 -0
  46. package/lib/udp/packet_enum.js +52 -0
  47. package/lib/udp/packet_queue.js +69 -0
  48. package/lib/udp/packet_type_enum.js +33 -0
  49. package/lib/udp/param_def.js +72 -0
  50. package/lib/udp/udp_session.js +336 -0
  51. package/lib/util/escape-literal-sql.js +5 -5
  52. package/lib/util/hashutil.js +18 -18
  53. package/lib/util/keygen.js +3 -0
  54. package/lib/util/linkedset.js +2 -1
  55. package/lib/util/nodeutil.js +1 -2
  56. package/lib/util/sql-util.js +178 -0
  57. package/lib/util/trace-helper.js +91 -0
  58. package/lib/util/transfer.js +58 -0
  59. package/lib/value/map-value.js +2 -3
  60. package/package.json +5 -10
  61. package/whatap.conf +4 -1
  62. package/lib/conf/conf-sys-mon.js +0 -101
  63. package/lib/control/cmd-config.js +0 -24
  64. package/lib/control/control-handler.js +0 -367
  65. package/lib/core/request-agent.js +0 -27
  66. package/lib/counter/meter/meter-activex.js +0 -67
  67. package/lib/counter/meter/meter-httpc.js +0 -57
  68. package/lib/counter/meter/meter-resource.js +0 -9
  69. package/lib/counter/meter/meter-service.js +0 -168
  70. package/lib/counter/meter/meter-socket.io.js +0 -51
  71. package/lib/counter/meter/meter-sql.js +0 -71
  72. package/lib/counter/meter/meter-users.js +0 -58
  73. package/lib/counter/meter.js +0 -183
  74. package/lib/counter/task/agentinfo.js +0 -107
  75. package/lib/counter/task/gcstat.js +0 -34
  76. package/lib/counter/task/heapmem.js +0 -25
  77. package/lib/counter/task/httpc.js +0 -76
  78. package/lib/counter/task/metering-info.js +0 -125
  79. package/lib/counter/task/proc-cpu.js +0 -29
  80. package/lib/counter/task/realtimeuser.js +0 -31
  81. package/lib/counter/task/res/systemECSTask.js +0 -39
  82. package/lib/counter/task/res/systemKubeTask.js +0 -53
  83. package/lib/counter/task/res/util/awsEcsClientThread.js +0 -218
  84. package/lib/counter/task/res/util/linuxProcStatUtil.js +0 -14
  85. package/lib/counter/task/res-sys-cpu.js +0 -62
  86. package/lib/counter/task/service.js +0 -202
  87. package/lib/counter/task/socketio.js +0 -30
  88. package/lib/counter/task/sql.js +0 -105
  89. package/lib/counter/task/systemperf.js +0 -43
  90. package/lib/data/datapack-sender.js +0 -289
  91. package/lib/data/dataprofile-agent.js +0 -162
  92. package/lib/data/datatext-agent.js +0 -135
  93. package/lib/data/event-level.js +0 -15
  94. package/lib/data/test.js +0 -49
  95. package/lib/data/zipprofile.js +0 -197
  96. package/lib/env/constants.js +0 -21
  97. package/lib/error/error-handler.js +0 -437
  98. package/lib/kube/kube-client.js +0 -144
  99. package/lib/lang/text-types.js +0 -58
  100. package/lib/logsink/line-log-util.js +0 -87
  101. package/lib/logsink/line-log.js +0 -12
  102. package/lib/logsink/log-sender.js +0 -78
  103. package/lib/logsink/log-tracer.js +0 -40
  104. package/lib/logsink/sender-util.js +0 -56
  105. package/lib/logsink/zip/zip-send.js +0 -177
  106. package/lib/net/netflag.js +0 -55
  107. package/lib/net/receiver.js +0 -66
  108. package/lib/net/sender.js +0 -141
  109. package/lib/net/tcp-return.js +0 -18
  110. package/lib/net/tcp-session.js +0 -286
  111. package/lib/net/tcpreq-client-proxy.js +0 -70
  112. package/lib/net/tcprequest-mgr.js +0 -58
  113. package/lib/observers/cluster-observer.js +0 -22
  114. package/lib/observers/express-observer.js +0 -215
  115. package/lib/observers/file-observer.js +0 -184
  116. package/lib/observers/grpc-observer.js +0 -336
  117. package/lib/observers/memcached-observer.js +0 -56
  118. package/lib/observers/mongo-observer.js +0 -317
  119. package/lib/observers/net-observer.js +0 -77
  120. package/lib/observers/promise-observer.js +0 -31
  121. package/lib/observers/schedule-observer.js +0 -67
  122. package/lib/observers/stream-observer.js +0 -19
  123. package/lib/observers/thrift-observer.js +0 -197
  124. package/lib/pack/activestack-pack.js +0 -55
  125. package/lib/pack/apenum.js +0 -8
  126. package/lib/pack/errorsnap-pack.js +0 -69
  127. package/lib/pack/event-pack.js +0 -54
  128. package/lib/pack/hitmap-pack.js +0 -63
  129. package/lib/pack/hitmap-pack1.js +0 -152
  130. package/lib/pack/netstat.js +0 -15
  131. package/lib/pack/otype.js +0 -7
  132. package/lib/pack/profile-pack.js +0 -49
  133. package/lib/pack/realtimeuser-pack.js +0 -41
  134. package/lib/pack/stat-general-pack.js +0 -96
  135. package/lib/pack/staterror-pack.js +0 -120
  136. package/lib/pack/stathttpc-pack.js +0 -66
  137. package/lib/pack/stathttpc-rec.js +0 -78
  138. package/lib/pack/statremote-pack.js +0 -46
  139. package/lib/pack/statservice-pack.js +0 -63
  140. package/lib/pack/statservice-pack1.js +0 -88
  141. package/lib/pack/statservice-rec.js +0 -292
  142. package/lib/pack/statservice-rec_dep.js +0 -151
  143. package/lib/pack/statsql-pack.js +0 -69
  144. package/lib/pack/statsql-rec.js +0 -100
  145. package/lib/pack/statuseragent-pack.js +0 -44
  146. package/lib/pack/tagctr.js +0 -15
  147. package/lib/pack/text-pack.js +0 -50
  148. package/lib/pack/time-count.js +0 -25
  149. package/lib/pack/websocket.js +0 -15
  150. package/lib/pack/zip-pack.js +0 -70
  151. package/lib/pii/pii-item.js +0 -31
  152. package/lib/pii/pii-mask.js +0 -174
  153. package/lib/plugin/plugin-loadermanager.js +0 -57
  154. package/lib/plugin/plugin.js +0 -75
  155. package/lib/service/tx-record.js +0 -332
  156. package/lib/stat/stat-error.js +0 -116
  157. package/lib/stat/stat-httpc.js +0 -98
  158. package/lib/stat/stat-remote-ip.js +0 -46
  159. package/lib/stat/stat-remote-ipurl.js +0 -88
  160. package/lib/stat/stat-sql.js +0 -113
  161. package/lib/stat/stat-tranx.js +0 -58
  162. package/lib/stat/stat-tx-caller.js +0 -160
  163. package/lib/stat/stat-tx-domain.js +0 -111
  164. package/lib/stat/stat-tx-referer.js +0 -112
  165. package/lib/stat/stat-useragent.js +0 -48
  166. package/lib/stat/timingsender.js +0 -76
  167. package/lib/step/activestack-step.js +0 -38
  168. package/lib/step/dbc-step.js +0 -36
  169. package/lib/step/http-stepx.js +0 -67
  170. package/lib/step/message-step.js +0 -40
  171. package/lib/step/method-stepx.js +0 -45
  172. package/lib/step/resultset-step.js +0 -40
  173. package/lib/step/securemsg-step.js +0 -44
  174. package/lib/step/socket-step.js +0 -46
  175. package/lib/step/sql-stepx.js +0 -68
  176. package/lib/step/sqlxtype.js +0 -16
  177. package/lib/step/step.js +0 -66
  178. package/lib/step/stepenum.js +0 -54
  179. package/lib/topology/link.js +0 -63
  180. package/lib/topology/nodeinfo.js +0 -123
  181. package/lib/topology/status-detector.js +0 -111
  182. package/lib/util/anylist.js +0 -103
  183. package/lib/util/cardinality/hyperloglog.js +0 -106
  184. package/lib/util/cardinality/murmurhash.js +0 -31
  185. package/lib/util/cardinality/registerset.js +0 -75
  186. package/lib/util/errordata.js +0 -21
  187. package/lib/util/iputil_x.js +0 -527
  188. package/lib/util/kube-util.js +0 -73
  189. package/lib/util/paramsecurity.js +0 -80
  190. package/lib/util/pre-process.js +0 -13
  191. package/lib/util/process-seq.js +0 -166
  192. package/lib/util/property-util.js +0 -36
  193. package/lib/util/request-queue.js +0 -70
  194. package/lib/util/requestdouble-queue.js +0 -72
  195. package/lib/util/resourceprofile.js +0 -157
  196. package/lib/util/stop-watch.js +0 -30
  197. package/lib/util/system-util.js +0 -10
  198. package/lib/util/userid-util.js +0 -57
@@ -1,87 +0,0 @@
1
- const conf = require('../conf/configure');
2
- const EventPack = require('../pack/event-pack');
3
- const DataPackSender = require('../data/datapack-sender');
4
- const Logger = require('../logger');
5
- const EventLevel = require('../data/event-level');
6
-
7
- class LineLogUtil {
8
- constructor() {
9
- this.last_log = Date.now();
10
- this.last_alert = Date.now();
11
- }
12
-
13
- static getInstance() {
14
- if (!LineLogUtil.instance) {
15
- LineLogUtil.instance = new LineLogUtil();
16
- }
17
- return LineLogUtil.instance;
18
- }
19
-
20
- checkLogContent(lineLog, orgContent) {
21
- if (!orgContent) {
22
- return;
23
- }
24
-
25
- const len = orgContent.length;
26
- let maxLength = conf.getProperty('logsink_limit_content_length', 10000);
27
- if(maxLength > 10000){
28
- maxLength = 10000;
29
- }
30
-
31
- if ((conf.getProperty('logsink_limit_content_enabled', true) && len > maxLength) || len > 10000) {
32
- lineLog.content = orgContent.substring(0, maxLength) + " ...(truncated)";
33
- lineLog.truncated = true;
34
-
35
- this.addTruncateTag(lineLog);
36
-
37
- const alertMessage = lineLog.category + " truncated (len=" + len + ")";
38
- this.logAndAlert(alertMessage);
39
- } else {
40
- lineLog.content = orgContent;
41
- }
42
- }
43
-
44
- log(message) {
45
- if (!conf.getProperty('logsink_max_content_log_enabled', true)) {
46
- return;
47
- }
48
-
49
- const now = Date.now();
50
- if (now - this.last_log < conf.getProperty('logsink_max_content_log_silent_time', 60000)) {
51
- return;
52
- }
53
- this.last_log = now;
54
- Logger.print('WHATAP-101', message, false);
55
- }
56
-
57
- alertOverflow(message) {
58
- if (!conf.getProperty('logsink_max_content_alert_enabled', false)) {
59
- return;
60
- }
61
-
62
- const now = Date.now();
63
- if (now - this.last_alert < conf.getProperty('logsink_max_content_alert_silent_time', 60000)) {
64
- return;
65
- }
66
- this.last_alert = now;
67
-
68
- const eventPack = new EventPack();
69
- eventPack.level = EventLevel.FATAL;
70
- eventPack.title = "LOG_TRUNCATED";
71
- eventPack.message = "Too big Log: " + message;
72
- DataPackSender.sendEventPack(eventPack);
73
- }
74
-
75
- logAndAlert(alertMessage) {
76
- this.log(alertMessage);
77
- this.alertOverflow(alertMessage);
78
- }
79
-
80
- addTruncateTag(lineLog) {
81
- lineLog.tags.putString("truncated", "true");
82
- }
83
- }
84
-
85
- LineLogUtil.instance = null;
86
-
87
- module.exports = LineLogUtil;
@@ -1,12 +0,0 @@
1
- const MapValue = require('../value/map-value');
2
-
3
- var LineLog = function () {
4
- this.truncated;
5
- this.time;
6
- this.category;
7
- this.tags = new MapValue();
8
- this.fields = new MapValue();
9
- this.content;
10
- }
11
-
12
- module.exports = LineLog;
@@ -1,78 +0,0 @@
1
- var Configure = require('../conf/configure');
2
- var RequestQueue = require('../util/request-queue');
3
- var Logger = require('../logger');
4
- var SenderUtil = require('./sender-util');
5
- var conf = require("../conf/configure");
6
-
7
- var logsink_enabled = Configure.getProperty('logsink_enabled', false);
8
- var logsink_queue_size = Configure.getProperty('logsink_queue_size', 1000);
9
- conf.on('logsink_enabled', function(newProperty) {
10
- logsink_enabled = newProperty;
11
- if (logsink_enabled) {
12
- LogSender.getInstance().startProcessQueue();
13
- } else {
14
- LogSender.getInstance().stopProcessQueue();
15
- LogSender.resetInstance();
16
- }
17
- });
18
-
19
- class LogSender {
20
- constructor() {
21
- if (LogSender.instance) {
22
- return LogSender.instance;
23
- }
24
- this.queue = new RequestQueue(logsink_queue_size);
25
- this.isProcessing = false;
26
- LogSender.instance = this;
27
-
28
- if (logsink_enabled) {
29
- this.startProcessQueue();
30
- }
31
- }
32
-
33
- static getInstance() {
34
- if (!LogSender.instance) {
35
- LogSender.instance = new LogSender();
36
- }
37
- return LogSender.instance;
38
- }
39
-
40
- static resetInstance() {
41
- if(LogSender.instance){
42
- LogSender.instance = null;
43
- }
44
- }
45
-
46
- add(log) {
47
- this.queue.put(log);
48
- }
49
-
50
- async processQueue() {
51
- this.isProcessing = true;
52
-
53
- while (this.isProcessing) {
54
- var log = await this.queue.get();
55
- if(log){
56
- try {
57
- var sendUtil = new SenderUtil();
58
- sendUtil.send(log);
59
- } catch (error) {
60
- Logger.printError('WHATAP-702', 'Error occurred during send LogSinkPack.' + error, false);
61
- }
62
- }
63
- await new Promise(resolve => setTimeout(resolve, 100));
64
- }
65
- }
66
-
67
- startProcessQueue() {
68
- if (!this.isProcessing) {
69
- this.processQueue();
70
- }
71
- }
72
-
73
- stopProcessQueue() {
74
- this.isProcessing = false;
75
- }
76
- }
77
-
78
- module.exports = LogSender;
@@ -1,40 +0,0 @@
1
- var conf = require('../conf/configure');
2
- var LineLog = require('./line-log');
3
- var LineLogUtil = require('./line-log-util');
4
- var LogSender = require('./log-sender');
5
- var TraceContextManager = require('../trace/trace-context-manager');
6
-
7
- var LogTracer = function () {
8
- this.logSender = LogSender.getInstance();
9
- }
10
-
11
- LogTracer.prototype.addStdWrite = function (content, category) {
12
- var lineLog = new LineLog();
13
- lineLog.category = category
14
-
15
- var lineLogUtil = LineLogUtil.getInstance();
16
- lineLogUtil.checkLogContent(lineLog, content);
17
-
18
- if(lineLog.content){
19
- this.addTxTag(lineLog);
20
- this.logSender.add(lineLog)
21
- }
22
- }
23
-
24
- LogTracer.prototype.addTxTag = function (lineLog) {
25
- if(!lineLog){
26
- return;
27
- }
28
-
29
- var ctx = TraceContextManager.getCurrentContext();
30
- if(ctx){
31
- if(conf.getProperty('logsink_trace_txid_enabled', true) && !ctx.txid.isZero()){
32
- lineLog.fields.putLong('@txid', ctx.txid);
33
- }
34
- if(conf.getProperty('logsink_trace_mtid_enabled', true) && !ctx.mtid.isZero()){
35
- lineLog.fields.putLong('@mtid', ctx.mtid);
36
- }
37
- }
38
- }
39
-
40
- module.exports = LogTracer;
@@ -1,56 +0,0 @@
1
- var conf = require('../conf/configure');
2
- var SecurityMaster = require('../net/security-master');
3
- var LogSinkPack = require('../pack/log-sink-pack');
4
- var DataPackSender = require('../data/datapack-sender');
5
- var DateUtil = require('../util/dateutil')
6
- var ZipSend = require('./zip/zip-send');
7
- var PiiMask = require('../pii/pii-mask')
8
-
9
- function SenderUtil() {
10
- this.conf = conf;
11
- this.secu = SecurityMaster;
12
- }
13
-
14
- SenderUtil.prototype.send = function (log) {
15
- const p = new LogSinkPack();
16
- p.time = log.time;
17
- if (!p.time) {
18
- p.time = DateUtil.currentTime();
19
- }
20
- p.category = log.category;
21
-
22
- if (this.secu.ONAME) {
23
- p.tags.putString('oname', this.secu.ONAME);
24
- }
25
- if (this.conf.OKIND) {
26
- p.tags.putString('okindName', this.conf.OKIND_NAME);
27
- }
28
- if (this.conf.ONODE) {
29
- p.tags.putString('onodeName', this.conf.ONODE_NAME);
30
- }
31
-
32
- if (log.tags != null) {
33
- p.tags.putAllMapValue(log.tags);
34
- }
35
- if (log.fields != null) {
36
- if (p.fields == null) {
37
- p.fields = log.fields;
38
- } else {
39
- p.fields.putAllMapValue(log.fields);
40
- }
41
- }
42
-
43
- p.content = log.content;
44
-
45
- if(conf.getProperty("pii_mask_logsink_enabled", false)){
46
- // PiiMask.parseLogSink(p)
47
- }
48
-
49
- if(conf.getProperty('logsink_zip_enabled', false)){
50
- ZipSend.getInstance().add(p);
51
- }else{
52
- DataPackSender.sendLogSinkPack(p)
53
- }
54
- };
55
-
56
- module.exports = SenderUtil;
@@ -1,177 +0,0 @@
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 conf = require('../../conf/configure'),
8
- DateUtil = require('../../util/dateutil'),
9
- RequestQueue = require('../../util/request-queue'),
10
- DataPackSender = require('../../data/datapack-sender'),
11
- DataOutputX = require('../../io/data-outputx'),
12
- ZipPack = require('../../pack/zip-pack'),
13
- Logger = require('../../logger');
14
- var zlib = require('zlib');
15
-
16
- var logsink_enabled = conf.getProperty('logsink_enabled', false);
17
- var logsink_zip_enabled = conf.getProperty('logsink_zip_enabled', false);
18
- var logsink_max_buffer_size = conf.getProperty('logsink_max_buffer_size', 1024*64);
19
- var profile_zip_min_size = conf.getProperty('profile_zip_min_size', 100)
20
- var logsink_queue_size = conf.getProperty('logsink_queue_size', 500);
21
- var logsink_max_wait_time = conf.getProperty('logsink_max_wait_time', 2000);
22
- conf.on('logsink_enabled', function(newProperty) {
23
- logsink_enabled = newProperty;
24
- if (logsink_enabled && logsink_zip_enabled) {
25
- ZipSend.getInstance().startProcessQueue();
26
- } else {
27
- ZipSend.getInstance().stopProcessQueue();
28
- ZipSend.resetInstance();
29
- }
30
- });
31
- conf.on('logsink_zip_enabled', function(newProperty) {
32
- logsink_zip_enabled = newProperty;
33
- if (logsink_enabled && logsink_zip_enabled) {
34
- ZipSend.getInstance().startProcessQueue();
35
- } else {
36
- ZipSend.getInstance().stopProcessQueue();
37
- ZipSend.resetInstance();
38
- }
39
- });
40
-
41
- class ZipSend {
42
- constructor() {
43
- if (ZipSend.instance) {
44
- return ZipSend.instance;
45
- }
46
- this.queue = new RequestQueue(logsink_queue_size);
47
- this.buffer = Buffer.alloc(0);
48
- this.packCount = 0;
49
- this.first_time = null;
50
- this.isProcessing = false;
51
- ZipSend.instance = this;
52
-
53
- if (logsink_enabled && logsink_zip_enabled) {
54
- this.startProcessQueue();
55
- }
56
- }
57
-
58
- static getInstance() {
59
- if (!ZipSend.instance) {
60
- ZipSend.instance = new ZipSend();
61
- }
62
- return ZipSend.instance;
63
- }
64
-
65
- static resetInstance() {
66
- if(ZipSend.instance){
67
- ZipSend.instance = null;
68
- }
69
- }
70
-
71
- add(p){
72
- var ok = this.queue.put(p);
73
- if(!ok){
74
- DataPackSender.sendLogSinkPack(p);
75
- }
76
- }
77
-
78
- // async addWait(p, waitTimeForFull) {
79
- // var ok = this.queue.put(p);
80
- // if (ok === false){
81
- // if(waitTimeForFull > 0){
82
- // while(this.queue.put(p) === false){
83
- // await new Promise(resolve => setTimeout(resolve, waitTimeForFull));
84
- // }
85
- // }
86
- // }
87
- // }
88
-
89
- async processQueue() {
90
- this.isProcessing = true;
91
- while (this.isProcessing) {
92
- if(!logsink_enabled || !logsink_zip_enabled) {
93
- this.isProcessing = false;
94
- break;
95
- }
96
-
97
- const p = await this.queue.getByTimeout(logsink_max_wait_time);
98
- if(p) {
99
- await this.append(p);
100
- }else{
101
- await this.sendAndClear();
102
- }
103
- await new Promise(resolve => setTimeout(resolve, 100));
104
- }
105
- }
106
-
107
- async append(p) {
108
- var b = DataOutputX.toBytesPack(p);
109
- this.packCount++;
110
- this.buffer = Buffer.concat([this.buffer, b]);
111
-
112
- if(!this.first_time){
113
- this.first_time = p.time;
114
- if (this.buffer.length >= logsink_max_buffer_size) {
115
- await this.sendAndClear();
116
- }
117
- }else{
118
- if(this.buffer.length >= logsink_max_buffer_size || (p.time - this.first_time) >= conf.getProperty('logsink_max_wait_time', 2000)){
119
- await this.sendAndClear();
120
- }
121
- }
122
- }
123
-
124
- async sendAndClear() {
125
- if(this.buffer.length === 0){ return; }
126
-
127
- var p = new ZipPack();
128
- p.time = DateUtil.currentTime();
129
- p.recordCount = this.packCount;
130
- p.records = this.buffer;
131
-
132
- await this.doZip(p);
133
- if(conf.getProperty('debug_logsink_zip_enabled', false)){
134
- Logger.print('WHATAP-703', `zip status=${p.status} records=${p.recordCount} | ${this.buffer.length} => ${p.records.length}`);
135
- }
136
- DataPackSender.sendLogSinkPack(p);
137
-
138
- this.buffer = Buffer.alloc(0);
139
- this.first_time = 0;
140
- this.packCount = 0;
141
- }
142
-
143
- async doZip(p){
144
- if(p.status !== 0){ return; }
145
- if(p.records.length < profile_zip_min_size){ return; }
146
- p.status = 1;
147
-
148
- try{
149
- p.records = await this._doZip(p.records);
150
- }catch (error) {
151
- Logger.print('WHATAP-701', 'Error occurred during compression.' + error, false);
152
- }
153
- }
154
-
155
- _doZip(data) {
156
- return new Promise((resolve, reject) => {
157
- zlib.gzip(data, (err, buffer) => {
158
- if (err) {
159
- reject(err);
160
- } else {
161
- resolve(buffer);
162
- }
163
- });
164
- });
165
- }
166
-
167
- startProcessQueue() {
168
- if (!this.isProcessing) {
169
- this.processQueue()
170
- }
171
- }
172
- stopProcessQueue() {
173
- this.isProcessing = false;
174
- }
175
- }
176
-
177
- module.exports = ZipSend;
@@ -1,55 +0,0 @@
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 NetFlag = function(flag){
8
- this.flag = flag;
9
- }
10
-
11
- NetFlag.SECURE_HIDE = 0x0001;
12
- NetFlag.SECURE_CYPHER = 0x0002;
13
- NetFlag.RESERVED1 = 0x0004;
14
- NetFlag.RESERVED2 = 0x0008;
15
- NetFlag.RESERVED3 = 0x0010;
16
- NetFlag.RESERVED4 = 0x0020;
17
- NetFlag.RESERVED5 = 0x0040;
18
- NetFlag.RESERVED6 = 0x0080;
19
- NetFlag.TIME_SYNC = 0xfe;
20
- NetFlag.KEY_RESET = 0xff;
21
- NetFlag.PREPARE_AGENT = 0xfc;
22
-
23
- NetFlag.getSecureMask = function(code){
24
- if(code === NetFlag.KEY_RESET) return 0;
25
- return (code & NetFlag.SECURE_HIDE ) | ( code & NetFlag.SECURE_CYPHER);
26
- };
27
-
28
- NetFlag.isSecure = function(code) {
29
- if(code === NetFlag.KEY_RESET) return false;
30
- return (code & NetFlag.SECURE_HIDE) | (code & NetFlag.SECURE_CYPHER);
31
- };
32
-
33
- NetFlag.prototype.set = function(mask){
34
- this.flag = (this.flag | mask);
35
- return this;
36
- };
37
-
38
- NetFlag.prototype.isA = function(m){
39
- return (this.falg & m) != 0;
40
- };
41
-
42
- NetFlag.prototype.getFlag = function() {
43
- return this.flag;
44
- };
45
-
46
- module.exports.NetFlag = NetFlag;
47
-
48
- var NetSrc = {
49
- AGENT_JAVA_EMBED : 1,
50
- AGENT_JAVA_WATCHER : 2,
51
- SERVER_YARD : 3,
52
- SERVER_PROXY : 4
53
- };
54
-
55
- module.exports.NetSrc = NetSrc;
@@ -1,66 +0,0 @@
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
- const conf = require('../conf/configure');
9
- var NetFlag = require('./netflag').NetFlag,
10
- ControlHandler = require('./../control/control-handler'),
11
- DateUtil = require('./../util/dateutil'),
12
- DataInputX = require('../io/data-inputx'),
13
- Logger = require('../logger');
14
-
15
- function Receiver(){};
16
-
17
- Receiver.prototype.read = function(out /*TcpReturn*/){
18
- try {
19
- if(conf.network_debug_enabled){
20
- Logger.print("[Receiver] input Data " ,out.code + " // " + out.transfer_key , false);
21
- }
22
- if(out.code === NetFlag.TIME_SYNC) {
23
- var din = new DataInputX(out.data);
24
- var prevAgentTime = din.readLong().toNumber();
25
- var serverTime = din.readLong().toNumber();
26
- var now = Date.now();
27
- var turnaroundTime = (now - prevAgentTime);
28
-
29
- if(turnaroundTime < 500) {
30
- DateUtil.setServerTime(serverTime, 1);
31
- }
32
- return;
33
- }
34
-
35
- if(conf.cypher_level > 0) {
36
- if(out.transfer_key != conf.TRANSFER_KEY) { return; }
37
-
38
- switch (NetFlag.getSecureMask(out.code)) {
39
- case NetFlag.SECURE_HIDE:
40
- if(conf.cypher != null) {
41
- out.data = conf.cypher.hide(out.data);
42
- } else {
43
- return;
44
- }
45
- break;
46
- case NetFlag.SECURE_CYPHER:
47
- if(conf.cypher != null) {
48
- out.data = conf.cypher.decrypt(out.data);
49
- } else {
50
- return;
51
- }
52
- break;
53
- default:
54
- out.data = null;
55
- }
56
- }
57
-
58
- if(out.data != null && out.data.length > 0) {
59
- ControlHandler.add(new DataInputX(out.data).readPack());
60
- }
61
- } catch (e) {
62
- Logger.printError('WHATAP-195', 'Receiver error', e);
63
- }
64
- };
65
-
66
- module.exports = Receiver;