@weave-js/core 0.10.0 → 0.12.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 (132) hide show
  1. package/.eslintrc.js +1 -1
  2. package/jest.config.js +1 -1
  3. package/lib/ExtendableError.js +33 -0
  4. package/lib/broker/context.js +58 -46
  5. package/lib/broker/{default-options.js → defaultOptions.js} +31 -13
  6. package/lib/broker/index.js +273 -251
  7. package/lib/buildRuntime.js +70 -0
  8. package/lib/cache/adapters/base.js +119 -0
  9. package/lib/cache/adapters/inMemory.js +154 -0
  10. package/lib/cache/adapters/inMemoryLru.js +140 -0
  11. package/lib/cache/adapters/index.js +10 -0
  12. package/lib/cache/getCacheKeyByObject.js +31 -0
  13. package/lib/cache/getPropertyFromDataOrMetadata.js +20 -0
  14. package/lib/cache/lock.js +34 -11
  15. package/lib/constants.js +11 -8
  16. package/lib/{error-handler.js → errorHandler.js} +8 -8
  17. package/lib/errors.js +46 -39
  18. package/lib/helper/{define-action.js → defineAction.js} +5 -3
  19. package/lib/helper/{define-broker-options.js → defineBrokerOptions.js} +4 -2
  20. package/lib/helper/{define-service.js → defineService.js} +6 -3
  21. package/lib/index.js +25 -22
  22. package/lib/logger/base.js +38 -29
  23. package/lib/logger/format/asHumanReadable.js +15 -14
  24. package/lib/logger/format/asJson.js +10 -10
  25. package/lib/logger/format/index.js +3 -3
  26. package/lib/logger/index.js +28 -25
  27. package/lib/logger/levels.js +23 -22
  28. package/lib/logger/tools.js +17 -13
  29. package/lib/logger/utils/colorize.js +23 -23
  30. package/lib/logger/utils/format.js +89 -65
  31. package/lib/metrics/common.js +47 -47
  32. package/lib/metrics/constants.js +44 -44
  33. package/lib/metrics/exporter/base.js +8 -8
  34. package/lib/metrics/exporter/event.js +20 -20
  35. package/lib/metrics/exporter/index.js +15 -15
  36. package/lib/metrics/index.js +2 -2
  37. package/lib/metrics/types/base.js +20 -20
  38. package/lib/metrics/types/counter.js +6 -6
  39. package/lib/metrics/types/gauge.js +24 -24
  40. package/lib/metrics/types/histogram.js +26 -26
  41. package/lib/metrics/types/index.js +6 -6
  42. package/lib/metrics/types/info.js +17 -17
  43. package/lib/middlewares/action-hooks/index.js +82 -34
  44. package/lib/middlewares/bulkhead/index.js +34 -33
  45. package/lib/middlewares/cache/index.js +106 -0
  46. package/lib/middlewares/circuit-breaker/index.js +85 -60
  47. package/lib/middlewares/context-tracker/index.js +39 -39
  48. package/lib/middlewares/error-handler/index.js +14 -14
  49. package/lib/middlewares/index.js +3 -2
  50. package/lib/middlewares/metrics/getMiddlewareWrapper.js +17 -17
  51. package/lib/middlewares/metrics/index.js +29 -29
  52. package/lib/middlewares/retry/index.js +15 -15
  53. package/lib/middlewares/timeout/index.js +18 -18
  54. package/lib/middlewares/tracing/index.js +50 -37
  55. package/lib/middlewares/tracing/tags.js +43 -0
  56. package/lib/middlewares/validator/index.js +32 -32
  57. package/lib/registry/{action-endpoint.js → actionEndpoint.js} +8 -8
  58. package/lib/registry/collections/{action-collection.js → actionCollection.js} +39 -35
  59. package/lib/registry/collections/{endpoint-collection.js → endpointCollection.js} +64 -65
  60. package/lib/registry/collections/{event-collection.js → eventCollection.js} +65 -69
  61. package/lib/registry/collections/{node-collection.js → nodeCollection.js} +45 -45
  62. package/lib/registry/collections/{service-collection.js → serviceCollection.js} +61 -55
  63. package/lib/registry/eventEndpoint.js +26 -0
  64. package/lib/registry/load-balancer/base.js +3 -3
  65. package/lib/registry/load-balancer/index.js +7 -7
  66. package/lib/registry/node.js +27 -27
  67. package/lib/registry/registry.js +147 -163
  68. package/lib/registry/service/parseAction.js +16 -16
  69. package/lib/registry/service/parseEvent.js +18 -18
  70. package/lib/registry/service/reduceMixins.js +10 -10
  71. package/lib/registry/service/service.js +72 -72
  72. package/lib/registry/{service-item.js → serviceItem.js} +21 -21
  73. package/lib/runtime/{init-action-invoker.js → initActionInvoker.js} +21 -21
  74. package/lib/runtime/initCache.js +19 -0
  75. package/lib/runtime/{init-context-factory.js → initContextFactory.js} +22 -22
  76. package/lib/runtime/{init-eventbus.js → initEventbus.js} +54 -53
  77. package/lib/runtime/{init-logger.js → initLogger.js} +11 -11
  78. package/lib/runtime/{init-metrics.js → initMetrics.js} +55 -54
  79. package/lib/runtime/{init-middleware-manager.js → initMiddlewareManager.js} +21 -21
  80. package/lib/runtime/{init-registry.js → initRegistry.js} +6 -6
  81. package/lib/runtime/initServiceManager.js +145 -0
  82. package/lib/runtime/{init-tracing.js → initTracing.js} +25 -24
  83. package/lib/runtime/{init-transport.js → initTransport.js} +5 -5
  84. package/lib/runtime/{init-uuid-factory.js → initUuidFactory.js} +4 -4
  85. package/lib/runtime/{init-validator.js → initValidator.js} +5 -5
  86. package/lib/tracing/collectors/base.js +29 -37
  87. package/lib/tracing/collectors/event.js +33 -33
  88. package/lib/tracing/collectors/index.js +16 -16
  89. package/lib/tracing/span.js +34 -32
  90. package/lib/tracing/time.js +8 -8
  91. package/lib/transport/InboundTransformStream.js +75 -0
  92. package/lib/transport/adapters/adapteBase.js +107 -0
  93. package/lib/transport/adapters/adapters.js +4 -4
  94. package/lib/transport/adapters/dummy/index.js +19 -19
  95. package/lib/transport/adapters/fromURI.js +13 -13
  96. package/lib/transport/adapters/getAdapterByName.js +5 -5
  97. package/lib/transport/adapters/index.js +12 -12
  98. package/lib/transport/adapters/tcp/discovery/codec.js +4 -4
  99. package/lib/transport/adapters/tcp/discovery/index.js +90 -76
  100. package/lib/transport/adapters/tcp/index.js +180 -175
  101. package/lib/transport/adapters/tcp/tcp-messagetypes.js +7 -7
  102. package/lib/transport/adapters/tcp/tcpReader.js +39 -38
  103. package/lib/transport/adapters/tcp/tcpWriteStream.js +26 -26
  104. package/lib/transport/adapters/tcp/tcpWriter.js +58 -58
  105. package/lib/transport/adapters/tcp/utils.js +12 -12
  106. package/lib/transport/createMessage.js +11 -0
  107. package/lib/transport/createTransport.js +377 -334
  108. package/lib/transport/errorPayloadFactory.js +15 -0
  109. package/lib/transport/messageHandlers.js +517 -0
  110. package/lib/transport/messageTypes.js +23 -0
  111. package/lib/types.js +95 -71
  112. package/lib/utils/index.js +2 -2
  113. package/lib/utils/options.js +47 -45
  114. package/lib/utils/{restore-error.js → restoreError.js} +4 -4
  115. package/package.json +6 -12
  116. package/CHANGELOG.md +0 -1334
  117. package/lib/build-runtime.js +0 -70
  118. package/lib/cache/base.js +0 -142
  119. package/lib/cache/index.js +0 -48
  120. package/lib/cache/memory.js +0 -121
  121. package/lib/middlewares/tracing/buildTags.js +0 -17
  122. package/lib/new-errors.js +0 -25
  123. package/lib/registry/event-endpoint.js +0 -26
  124. package/lib/runtime/init-cache.js +0 -10
  125. package/lib/runtime/init-service-manager.js +0 -128
  126. package/lib/tracing/collectors/console.js +0 -34
  127. package/lib/tracing/index.js +0 -3
  128. package/lib/tracing/tracer.js +0 -64
  129. package/lib/transport/adapters/adapter-base.js +0 -92
  130. package/lib/transport/message-handlers.js +0 -448
  131. package/lib/transport/message-types.js +0 -59
  132. package/lib/transport/message.js +0 -16
@@ -1,4 +1,4 @@
1
- const { generateLogMethod } = require('./tools')
1
+ const { generateLogMethod } = require('./tools');
2
2
 
3
3
  const levels = {
4
4
  verbose: 60,
@@ -7,14 +7,14 @@ const levels = {
7
7
  warn: 30,
8
8
  error: 20,
9
9
  fatal: 10
10
- }
10
+ };
11
11
 
12
12
  // wrap log methods
13
13
  const levelMethods = {
14
14
  fatal: (runtime, hook) => {
15
- const logFatal = generateLogMethod(runtime, levels.fatal, hook)
15
+ const logFatal = generateLogMethod(runtime, levels.fatal, hook);
16
16
  return function (...args) {
17
- logFatal.call(runtime, ...args)
17
+ logFatal.call(runtime, ...args);
18
18
  // if (typeof stream.flushSync === 'function') {
19
19
  // try {
20
20
  // stream.flushSync()
@@ -22,47 +22,48 @@ const levelMethods = {
22
22
  // // https://github.com/pinojs/pino/pull/740#discussion_r346788313
23
23
  // }
24
24
  // }
25
- }
25
+ };
26
26
  },
27
27
  error: (runtime, hook) => generateLogMethod(runtime, levels.error, hook),
28
28
  warn: (runtime, hook) => generateLogMethod(runtime, levels.warn, hook),
29
29
  info: (runtime, hook) => generateLogMethod(runtime, levels.info, hook),
30
30
  debug: (runtime, hook) => generateLogMethod(runtime, levels.debug, hook),
31
31
  verbose: (runtime, hook) => generateLogMethod(runtime, levels.verbose, hook)
32
- }
32
+ };
33
33
 
34
- exports.levelMethods = levelMethods
34
+ exports.levelMethods = levelMethods;
35
35
 
36
36
  const numbers = Object.keys(levels).reduce((o, k) => {
37
- o[levels[k]] = k
38
- return o
39
- }, {})
37
+ o[levels[k]] = k;
38
+ return o;
39
+ }, {});
40
40
 
41
41
  exports.mappings = (customLevels = null, useOnlyCustomLevels = false) => {
42
42
  const customNums = customLevels ? Object.keys(customLevels).reduce((o, k) => {
43
- o[customLevels[k]] = k
44
- return o
43
+ o[customLevels[k]] = k;
44
+ return o;
45
45
  }, {})
46
- : null
46
+ : null;
47
47
 
48
48
  const labels = Object.assign(
49
49
  Object.create(Object.prototype, { Infinity: { value: 'silent' }}),
50
50
  useOnlyCustomLevels ? null : numbers,
51
51
  customNums
52
- )
52
+ );
53
53
 
54
+ // Merge log levels with "silent" log level.
54
55
  const values = Object.assign(
55
- Object.create(Object.prototype, { silent: { value: Infinity }}),
56
+ Object.create(Object.prototype, { silent: { value: 0 }}),
56
57
  useOnlyCustomLevels ? null : levels,
57
58
  customLevels
58
- )
59
+ );
59
60
 
60
- return { labels, values }
61
- }
61
+ return { labels, values };
62
+ };
62
63
 
63
64
  exports.isStandardLevel = (level, useOnlyCustomLevels) => {
64
65
  if (useOnlyCustomLevels) {
65
- return false
66
+ return false;
66
67
  }
67
68
 
68
69
  switch (level) {
@@ -72,8 +73,8 @@ exports.isStandardLevel = (level, useOnlyCustomLevels) => {
72
73
  case 'info':
73
74
  case 'debug':
74
75
  case 'verbose':
75
- return true
76
+ return true;
76
77
  default:
77
- return false
78
+ return false;
78
79
  }
79
- }
80
+ };
@@ -1,29 +1,33 @@
1
- const { format } = require('./utils/format')
1
+ const { format } = require('./utils/format');
2
2
 
3
- exports.noop = () => {}
3
+ exports.noop = () => {};
4
4
 
5
5
  exports.generateLogMethod = (runtime, level, hook) => {
6
6
  if (!hook) {
7
- return log
7
+ return log;
8
8
  }
9
9
 
10
+ return function hookWrappedLog (...args) {
11
+ hook.call(runtime, args, log, level);
12
+ };
13
+
10
14
  function log (origin, ...n) {
11
15
  if (typeof origin === 'object') {
12
- let message = origin
13
- let formatParams
16
+ let message = origin;
17
+ let formatParams;
14
18
  if (message === null && n.length === 0) {
15
- formatParams = [null]
19
+ formatParams = [null];
16
20
  } else {
17
- message = n.shift()
18
- formatParams = n
21
+ message = n.shift();
22
+ formatParams = n;
19
23
  }
20
- runtime.write(origin, format(message, formatParams, runtime.options.formatOptions), level)
24
+ runtime.write(origin, format(message, formatParams, runtime.options.formatOptions), level);
21
25
  } else {
22
- runtime.write(null, format(origin, n, runtime.options.formatOptions), level)
26
+ runtime.write(null, format(origin, n, runtime.options.formatOptions), level);
23
27
  }
24
28
  }
25
- }
29
+ };
26
30
 
27
31
  exports.coreFixtures = (object) => {
28
- return object
29
- }
32
+ return object;
33
+ };
@@ -1,32 +1,32 @@
1
1
  const init = (x, y) => {
2
- const regex = new RegExp(`\\x1b\\[${y}m`, 'g')
3
- const open = `\x1b[${x}m`; const close = `\x1b[${y}m`
2
+ const regex = new RegExp(`\\x1b\\[${y}m`, 'g');
3
+ const open = `\x1b[${x}m`; const close = `\x1b[${y}m`;
4
4
 
5
5
  return function (txt) {
6
- return open + (~('' + txt).indexOf(close) ? txt.replace(regex, close + open) : txt) + close
7
- }
8
- }
6
+ return open + (~('' + txt).indexOf(close) ? txt.replace(regex, close + open) : txt) + close;
7
+ };
8
+ };
9
9
 
10
10
  // modifiers
11
- exports.bold = init(1, 22)
12
- exports.dim = init(2, 22)
13
- exports.hidden = init(8, 28)
14
- exports.inverse = init(7, 27)
15
- exports.italic = init(3, 23)
16
- exports.reset = init(0, 0)
17
- exports.strikeThrough = init(9, 29)
18
- exports.underline = init(4, 24)
11
+ exports.bold = init(1, 22);
12
+ exports.dim = init(2, 22);
13
+ exports.hidden = init(8, 28);
14
+ exports.inverse = init(7, 27);
15
+ exports.italic = init(3, 23);
16
+ exports.reset = init(0, 0);
17
+ exports.strikeThrough = init(9, 29);
18
+ exports.underline = init(4, 24);
19
19
 
20
20
  // colors
21
- exports.black = init(30, 39)
22
- exports.blue = init(34, 39)
23
- exports.cyan = init(36, 39)
24
- exports.gray = init(90, 39)
25
- exports.green = init(32, 39)
26
- exports.grey = init(90, 39)
27
- exports.magenta = init(35, 39)
28
- exports.red = init(31, 39)
29
- exports.white = init(37, 39)
30
- exports.yellow = init(33, 39)
21
+ exports.black = init(30, 39);
22
+ exports.blue = init(34, 39);
23
+ exports.cyan = init(36, 39);
24
+ exports.gray = init(90, 39);
25
+ exports.green = init(32, 39);
26
+ exports.grey = init(90, 39);
27
+ exports.magenta = init(35, 39);
28
+ exports.red = init(31, 39);
29
+ exports.white = init(37, 39);
30
+ exports.yellow = init(33, 39);
31
31
 
32
32
  // todo: bg colors
@@ -1,100 +1,124 @@
1
1
  const tryStringify = (o) => {
2
2
  try {
3
- return JSON.stringify(o)
3
+ return JSON.stringify(o);
4
4
  } catch (e) {
5
- return '"[Circular]"'
5
+ return '"[Circular]"';
6
6
  }
7
- }
7
+ };
8
8
 
9
- exports.format = (f, args, opts) => {
10
- const ss = (opts && opts.stringify) || tryStringify
11
- const offset = 1
9
+ function format (f, args, opts) {
10
+ const ss = (opts && opts.stringify) || tryStringify;
11
+ const offset = 1;
12
12
  if (typeof f === 'object' && f !== null) {
13
- const len = args.length + offset
14
- if (len === 1) return f
15
- const objects = new Array(len)
16
- objects[0] = ss(f)
13
+ const len = args.length + offset;
14
+ if (len === 1) return f;
15
+ const objects = new Array(len);
16
+ objects[0] = ss(f);
17
17
  for (let index = 1; index < len; index++) {
18
- objects[index] = ss(args[index])
18
+ objects[index] = ss(args[index]);
19
19
  }
20
- return objects.join(' ')
20
+ return objects.join(' ');
21
21
  }
22
22
  if (typeof f !== 'string') {
23
- return f
23
+ return f;
24
24
  }
25
- const argumentLength = args.length
26
- if (argumentLength === 0) return f
25
+ const argumentLength = args.length;
26
+ if (argumentLength === 0) return f;
27
27
 
28
- let str = ''
29
- let a = 1 - offset
30
- let lastPos = -1
31
- const formatLength = (f && f.length) || 0
28
+ let str = '';
29
+ let a = 1 - offset;
30
+ let lastPos = -1;
31
+ const formatLength = (f && f.length) || 0;
32
32
 
33
33
  for (let i = 0; i < formatLength;) {
34
34
  if (f.charCodeAt(i) === 37 && i + 1 < formatLength) {
35
- lastPos = lastPos > -1 ? lastPos : 0
35
+ lastPos = lastPos > -1 ? lastPos : 0;
36
36
  switch (f.charCodeAt(i + 1)) {
37
37
  case 100: // 'd'
38
38
  case 102: // 'f'
39
- if (a >= argumentLength) { break }
40
- if (lastPos < i) { str += f.slice(lastPos, i) }
41
- if (args[a] == null) break
42
- str += Number(args[a])
43
- lastPos = i = i + 2
44
- break
39
+ if (a >= argumentLength) { break; }
40
+ if (lastPos < i) {
41
+ str += f.slice(lastPos, i);
42
+ }
43
+ if (args[a] == null) break;
44
+ str += Number(args[a]);
45
+ lastPos = i = i + 2;
46
+ break;
45
47
  case 105: // 'i'
46
- if (a >= argumentLength) { break }
47
- if (lastPos < i) { str += f.slice(lastPos, i) }
48
- if (args[a] == null) break
49
- str += Math.floor(Number(args[a]))
50
- lastPos = i = i + 2
51
- break
48
+ if (a >= argumentLength) {
49
+ break;
50
+ }
51
+ if (lastPos < i) {
52
+ str += f.slice(lastPos, i);
53
+ }
54
+ if (args[a] == null) break;
55
+ str += Math.floor(Number(args[a]));
56
+ lastPos = i = i + 2;
57
+ break;
52
58
  case 79: // 'O'
53
59
  case 111: // 'o'
54
60
  case 106: // 'j'
55
- if (a >= argumentLength) { break }
56
- if (lastPos < i) { str += f.slice(lastPos, i) }
57
- if (args[a] === undefined) break
58
- const type = typeof args[a]
61
+ if (a >= argumentLength) {
62
+ break;
63
+ }
64
+
65
+ if (lastPos < i) {
66
+ str += f.slice(lastPos, i);
67
+ }
68
+
69
+ if (args[a] === undefined) {
70
+ break;
71
+ }
72
+
73
+ const type = typeof args[a];
74
+
59
75
  if (type === 'string') {
60
- str += '\'' + args[a] + '\''
61
- lastPos = i + 2
62
- i++
63
- break
76
+ str += '\'' + args[a] + '\'';
77
+ lastPos = i + 2;
78
+ i++;
79
+ break;
64
80
  }
81
+
65
82
  if (type === 'function') {
66
- str += args[a].name || '<anonymous>'
67
- lastPos = i + 2
68
- i++
69
- break
83
+ str += args[a].name || '<anonymous>';
84
+ lastPos = i + 2;
85
+ i++;
86
+ break;
70
87
  }
71
- str += ss(args[a])
72
- lastPos = i + 2
73
- i++
74
- break
88
+
89
+ str += ss(args[a]);
90
+ lastPos = i + 2;
91
+ i++;
92
+ break;
75
93
  case 115: // 's'
76
- if (a >= argumentLength) { break }
77
- if (lastPos < i) { str += f.slice(lastPos, i) }
78
- str += String(args[a])
79
- lastPos = i + 2
80
- i++
81
- break
94
+ if (a >= argumentLength) { break; }
95
+ if (lastPos < i) {
96
+ str += f.slice(lastPos, i);
97
+ }
98
+ str += String(args[a]);
99
+ lastPos = i + 2;
100
+ i++;
101
+ break;
82
102
  case 37: // '%'
83
- if (lastPos < i) { str += f.slice(lastPos, i) }
84
- str += '%'
85
- lastPos = i + 2
86
- i++
87
- a--
88
- break
103
+ if (lastPos < i) {
104
+ str += f.slice(lastPos, i);
105
+ }
106
+ str += '%';
107
+ lastPos = i + 2;
108
+ i++;
109
+ a--;
110
+ break;
89
111
  }
90
- ++a
112
+ ++a;
91
113
  }
92
- ++i
114
+ ++i;
93
115
  }
94
116
 
95
- if (lastPos === -1) { return f } else if (lastPos < formatLength) {
96
- str += f.slice(lastPos)
117
+ if (lastPos === -1) { return f; } else if (lastPos < formatLength) {
118
+ str += f.slice(lastPos);
97
119
  }
98
120
 
99
- return str
121
+ return str;
100
122
  }
123
+
124
+ module.exports = { format };
@@ -1,78 +1,78 @@
1
1
  /**
2
2
  * @typedef {import('../types.js').Runtime} Runtime
3
3
  */
4
- const os = require('os')
5
- const Constants = require('./constants')
4
+ const os = require('os');
5
+ const Constants = require('./constants');
6
6
 
7
7
  const getUserInfo = () => {
8
8
  try {
9
- return os.userInfo()
9
+ return os.userInfo();
10
10
  } catch (e) {
11
- return {}
11
+ return {};
12
12
  }
13
- }
13
+ };
14
14
 
15
15
  /**
16
16
  * @param {Runtime} runtime Runtime reference
17
17
  * @returns {void}
18
18
  */
19
19
  exports.registerCommonMetrics = (runtime) => {
20
- const { metrics } = runtime
20
+ const { metrics } = runtime;
21
21
 
22
22
  // Process metrics
23
- metrics.register({ name: Constants.PROCESS_PID, type: 'info', description: 'Process PID' }).set(process.pid)
24
- metrics.register({ name: Constants.PROCESS_PPID, type: 'info', description: 'Process parent PID' }).set(process.ppid)
25
- metrics.register({ name: Constants.PROCESS_UPTIME, type: 'info', description: 'Process uptime' }).set(process.uptime())
23
+ metrics.register({ name: Constants.PROCESS_PID, type: 'info', description: 'Process PID' }).set(process.pid);
24
+ metrics.register({ name: Constants.PROCESS_PPID, type: 'info', description: 'Process parent PID' }).set(process.ppid);
25
+ metrics.register({ name: Constants.PROCESS_UPTIME, type: 'info', description: 'Process uptime' }).set(process.uptime());
26
26
 
27
27
  // Weave metrics
28
- metrics.register({ name: Constants.WEAVE_ENVIRONMENT, type: 'info', description: 'Environment' }).set('Node.js')
29
- metrics.register({ name: Constants.WEAVE_ENVIRONMENT_VERSION, type: 'info', description: 'Runtime version' }).set(process.version)
30
- metrics.register({ name: Constants.WEAVE_VERSION, type: 'info', description: 'Weave version' }).set(runtime.version)
31
- metrics.register({ name: Constants.WEAVE_NODE_ID, type: 'info', description: 'Node ID' }).set(runtime.nodeId)
32
- metrics.register({ name: Constants.WEAVE_NAMESPACE, type: 'info', description: 'Namespace in which the node runs.' }).set(runtime.options.namespace)
28
+ metrics.register({ name: Constants.WEAVE_ENVIRONMENT, type: 'info', description: 'Environment' }).set('Node.js');
29
+ metrics.register({ name: Constants.WEAVE_ENVIRONMENT_VERSION, type: 'info', description: 'Runtime version' }).set(process.version);
30
+ metrics.register({ name: Constants.WEAVE_VERSION, type: 'info', description: 'Weave version' }).set(runtime.version);
31
+ metrics.register({ name: Constants.WEAVE_NODE_ID, type: 'info', description: 'Node ID' }).set(runtime.nodeId);
32
+ metrics.register({ name: Constants.WEAVE_NAMESPACE, type: 'info', description: 'Namespace in which the node runs.' }).set(runtime.options.namespace);
33
33
 
34
34
  // OS Metrics
35
- metrics.register({ name: Constants.OS_HOSTNAME, type: 'info', description: 'Hostname' }).set(os.hostname())
36
- metrics.register({ name: Constants.OS_TYPE, type: 'info', description: 'OS type' }).set(os.type())
37
- metrics.register({ name: Constants.OS_RELEASE, type: 'info', description: 'OS release' }).set(os.release())
38
- metrics.register({ name: Constants.OS_ARCH, type: 'info', description: 'OS architecture' }).set(os.arch())
39
- metrics.register({ name: Constants.OS_PLATTFORM, type: 'info', description: 'OS plattform' }).set(os.platform())
40
- metrics.register({ name: Constants.OS_MEMORY_TOTAL, type: 'gauge', description: 'OS free memory' })
41
- metrics.register({ name: Constants.OS_MEMORY_USED, type: 'gauge', description: 'OS memory used' })
42
- metrics.register({ name: Constants.OS_MEMORY_FREE, type: 'gauge', description: 'OS memory free' })
43
- metrics.register({ name: Constants.OS_UPTIME, type: 'gauge', description: 'OS uptime' }).set(os.uptime())
35
+ metrics.register({ name: Constants.OS_HOSTNAME, type: 'info', description: 'Hostname' }).set(os.hostname());
36
+ metrics.register({ name: Constants.OS_TYPE, type: 'info', description: 'OS type' }).set(os.type());
37
+ metrics.register({ name: Constants.OS_RELEASE, type: 'info', description: 'OS release' }).set(os.release());
38
+ metrics.register({ name: Constants.OS_ARCH, type: 'info', description: 'OS architecture' }).set(os.arch());
39
+ metrics.register({ name: Constants.OS_PLATTFORM, type: 'info', description: 'OS plattform' }).set(os.platform());
40
+ metrics.register({ name: Constants.OS_MEMORY_TOTAL, type: 'gauge', description: 'OS free memory' });
41
+ metrics.register({ name: Constants.OS_MEMORY_USED, type: 'gauge', description: 'OS memory used' });
42
+ metrics.register({ name: Constants.OS_MEMORY_FREE, type: 'gauge', description: 'OS memory free' });
43
+ metrics.register({ name: Constants.OS_UPTIME, type: 'gauge', description: 'OS uptime' }).set(os.uptime());
44
44
 
45
- metrics.register({ name: Constants.OS_CPU_LOAD_1, type: 'gauge', description: 'OS CPU load 1' })
46
- metrics.register({ name: Constants.OS_CPU_LOAD_5, type: 'gauge', description: 'OS CPU load 5' })
47
- metrics.register({ name: Constants.OS_CPU_LOAD_15, type: 'gauge', description: 'OS CPU load 15' })
45
+ metrics.register({ name: Constants.OS_CPU_LOAD_1, type: 'gauge', description: 'OS CPU load 1' });
46
+ metrics.register({ name: Constants.OS_CPU_LOAD_5, type: 'gauge', description: 'OS CPU load 5' });
47
+ metrics.register({ name: Constants.OS_CPU_LOAD_15, type: 'gauge', description: 'OS CPU load 15' });
48
48
 
49
- const userInfo = getUserInfo()
50
- metrics.register({ name: Constants.OS_USER_UID, type: 'info', description: 'User UID' }).set(userInfo.uid)
51
- metrics.register({ name: Constants.OS_USER_GID, type: 'info', description: 'User GID' }).set(userInfo.gid)
52
- metrics.register({ name: Constants.OS_USER_USERNAME, type: 'info', description: 'Username' }).set(userInfo.username)
53
- metrics.register({ name: Constants.OS_USER_HOMEDIR, type: 'info', description: 'User home directory' }).set(userInfo.homedir)
54
- }
49
+ const userInfo = getUserInfo();
50
+ metrics.register({ name: Constants.OS_USER_UID, type: 'info', description: 'User UID' }).set(userInfo.uid);
51
+ metrics.register({ name: Constants.OS_USER_GID, type: 'info', description: 'User GID' }).set(userInfo.gid);
52
+ metrics.register({ name: Constants.OS_USER_USERNAME, type: 'info', description: 'Username' }).set(userInfo.username);
53
+ metrics.register({ name: Constants.OS_USER_HOMEDIR, type: 'info', description: 'User home directory' }).set(userInfo.homedir);
54
+ };
55
55
 
56
56
  /**
57
57
  * @param {Runtime} runtime Runtime reference
58
58
  * @returns {void}
59
59
  */
60
60
  exports.updateCommonMetrics = (runtime) => {
61
- const { metrics } = runtime
61
+ const { metrics } = runtime;
62
62
 
63
- metrics.set(Constants.PROCESS_UPTIME, process.uptime())
64
- const freeMemory = os.freemem()
65
- const totalMemory = os.totalmem()
66
- const usedMemory = totalMemory - freeMemory
63
+ metrics.set(Constants.PROCESS_UPTIME, process.uptime());
64
+ const freeMemory = os.freemem();
65
+ const totalMemory = os.totalmem();
66
+ const usedMemory = totalMemory - freeMemory;
67
67
 
68
- metrics.set(Constants.OS_RELEASE, os.release())
69
- metrics.set(Constants.OS_MEMORY_TOTAL, totalMemory)
70
- metrics.set(Constants.OS_MEMORY_USED, usedMemory)
71
- metrics.set(Constants.OS_MEMORY_FREE, freeMemory)
72
- metrics.set(Constants.OS_UPTIME, os.uptime())
68
+ metrics.set(Constants.OS_RELEASE, os.release());
69
+ metrics.set(Constants.OS_MEMORY_TOTAL, totalMemory);
70
+ metrics.set(Constants.OS_MEMORY_USED, usedMemory);
71
+ metrics.set(Constants.OS_MEMORY_FREE, freeMemory);
72
+ metrics.set(Constants.OS_UPTIME, os.uptime());
73
73
 
74
- const load = os.loadavg()
75
- metrics.set(Constants.OS_CPU_LOAD_1, load[0])
76
- metrics.set(Constants.OS_CPU_LOAD_5, load[1])
77
- metrics.set(Constants.OS_CPU_LOAD_15, load[2])
78
- }
74
+ const load = os.loadavg();
75
+ metrics.set(Constants.OS_CPU_LOAD_1, load[0]);
76
+ metrics.set(Constants.OS_CPU_LOAD_5, load[1]);
77
+ metrics.set(Constants.OS_CPU_LOAD_15, load[2]);
78
+ };
@@ -1,59 +1,59 @@
1
1
  // Process
2
- exports.PROCESS_PID = 'process.pid'
3
- exports.PROCESS_PPID = 'process.ppid'
4
- exports.PROCESS_UPTIME = 'process.uptime'
2
+ exports.PROCESS_PID = 'process.pid';
3
+ exports.PROCESS_PPID = 'process.ppid';
4
+ exports.PROCESS_UPTIME = 'process.uptime';
5
5
 
6
6
  // Service broker
7
- exports.WEAVE_ENVIRONMENT = 'weave.environment'
8
- exports.WEAVE_ENVIRONMENT_VERSION = 'weave.environment-version'
9
- exports.WEAVE_VERSION = 'weave.version'
10
- exports.WEAVE_NODE_ID = 'weave.node-id'
11
- exports.WEAVE_NAMESPACE = 'weave.namespace'
7
+ exports.WEAVE_ENVIRONMENT = 'weave.environment';
8
+ exports.WEAVE_ENVIRONMENT_VERSION = 'weave.environment-version';
9
+ exports.WEAVE_VERSION = 'weave.version';
10
+ exports.WEAVE_NODE_ID = 'weave.node-id';
11
+ exports.WEAVE_NAMESPACE = 'weave.namespace';
12
12
 
13
13
  // Services
14
- exports.REQUESTS_TOTAL = 'weave.requests.total'
15
- exports.REQUESTS_IN_FLIGHT = 'weave.requests.in-flight'
16
- exports.REQUESTS_ERRORS_TOTAL = 'weave.requests.errors.total'
17
- exports.REQUESTS_TIME = 'weave.requests.time'
14
+ exports.REQUESTS_TOTAL = 'weave.requests.total';
15
+ exports.REQUESTS_IN_FLIGHT = 'weave.requests.in-flight';
16
+ exports.REQUESTS_ERRORS_TOTAL = 'weave.requests.errors.total';
17
+ exports.REQUESTS_TIME = 'weave.requests.time';
18
18
 
19
19
  // Events
20
- exports.EVENT_TOTAL_EMITS = 'weave.events.total-emits'
21
- exports.EVENT_TOTAL_BROADCASTS = 'weave.events.total-broadcasts'
22
- exports.EVENT_TOTAL_BROADCASTS_LOCAL = 'weave.events.total-broadcasts-local'
23
- exports.EVENT_TOTAL_RECEIVED = 'weave.events.total-received'
20
+ exports.EVENT_TOTAL_EMITS = 'weave.events.total-emits';
21
+ exports.EVENT_TOTAL_BROADCASTS = 'weave.events.total-broadcasts';
22
+ exports.EVENT_TOTAL_BROADCASTS_LOCAL = 'weave.events.total-broadcasts-local';
23
+ exports.EVENT_TOTAL_RECEIVED = 'weave.events.total-received';
24
24
 
25
25
  // Transporter
26
- exports.TRANSPORT_RECONNECTS = 'weave.transport.reconnects'
27
- exports.TRANSPORTER_PACKETS_SENT = 'weave.transport.packets.sent'
28
- exports.TRANSPORTER_PACKETS_RECEIVED = 'weave.transport.packets.received'
29
- exports.TRANSPORT_IN_FLIGHT_STREAMS = 'weave.transport.streams.in-flight'
26
+ exports.TRANSPORT_RECONNECTS = 'weave.transport.reconnects';
27
+ exports.TRANSPORTER_PACKETS_SENT = 'weave.transport.packets.sent';
28
+ exports.TRANSPORTER_PACKETS_RECEIVED = 'weave.transport.packets.received';
29
+ exports.TRANSPORT_IN_FLIGHT_STREAMS = 'weave.transport.streams.in-flight';
30
30
 
31
31
  // Bulkhead
32
- exports.REQUESTS_BULKHEAD_IN_FLIGHT = 'weave.bulkhead.requests.in-flight'
32
+ exports.BULKHEAD_REQUESTS_IN_FLIGHT = 'weave.bulkhead.requests.in-flight';
33
33
 
34
34
  // OS Metrics
35
- exports.OS_HOSTNAME = 'os.hostname'
36
- exports.OS_TYPE = 'os.type'
37
- exports.OS_RELEASE = 'os.release'
38
- exports.OS_ARCH = 'os.architecture'
39
- exports.OS_PLATTFORM = 'os.plattform'
40
- exports.OS_MEMORY_FREE = 'os.memory.free'
41
- exports.OS_MEMORY_USED = 'os.memory.used'
42
- exports.OS_MEMORY_TOTAL = 'os.memory.total'
43
- exports.OS_UPTIME = 'os.uptime'
44
- exports.OS_USER_UID = 'os.user.uid'
45
- exports.OS_USER_GID = 'os.user.gid'
46
- exports.OS_USER_USERNAME = 'os.user.username'
47
- exports.OS_USER_HOMEDIR = 'os.user.homedir'
48
-
49
- exports.OS_CPU_LOAD_1 = 'os.cpu-load.1'
50
- exports.OS_CPU_LOAD_5 = 'os.cpu-load.5'
51
- exports.OS_CPU_LOAD_15 = 'os.cpu-load.15'
35
+ exports.OS_HOSTNAME = 'os.hostname';
36
+ exports.OS_TYPE = 'os.type';
37
+ exports.OS_RELEASE = 'os.release';
38
+ exports.OS_ARCH = 'os.architecture';
39
+ exports.OS_PLATTFORM = 'os.plattform';
40
+ exports.OS_MEMORY_FREE = 'os.memory.free';
41
+ exports.OS_MEMORY_USED = 'os.memory.used';
42
+ exports.OS_MEMORY_TOTAL = 'os.memory.total';
43
+ exports.OS_UPTIME = 'os.uptime';
44
+ exports.OS_USER_UID = 'os.user.uid';
45
+ exports.OS_USER_GID = 'os.user.gid';
46
+ exports.OS_USER_USERNAME = 'os.user.username';
47
+ exports.OS_USER_HOMEDIR = 'os.user.homedir';
48
+
49
+ exports.OS_CPU_LOAD_1 = 'os.cpu-load.1';
50
+ exports.OS_CPU_LOAD_5 = 'os.cpu-load.5';
51
+ exports.OS_CPU_LOAD_15 = 'os.cpu-load.15';
52
52
 
53
53
  // Cache
54
- exports.CACHE_GET_TOTAL = 'weave.cache.items.get'
55
- exports.CACHE_SET_TOTAL = 'weave.cache.items.set'
56
- exports.CACHE_DELETED_TOTAL = 'weave.cache.items.deleted'
57
- exports.CACHE_FOUND_TOTAL = 'weave.cache.items.found'
58
- exports.CACHE_CLEANED_TOTAL = 'weave.cache.items.cleaned'
59
- exports.CACHE_EXPIRED_TOTAL = 'weave.cache.items.expired'
54
+ exports.CACHE_GET_TOTAL = 'weave.cache.items.get';
55
+ exports.CACHE_SET_TOTAL = 'weave.cache.items.set';
56
+ exports.CACHE_DELETED_TOTAL = 'weave.cache.items.deleted';
57
+ exports.CACHE_FOUND_TOTAL = 'weave.cache.items.found';
58
+ exports.CACHE_CLEANED_TOTAL = 'weave.cache.items.cleaned';
59
+ exports.CACHE_EXPIRED_TOTAL = 'weave.cache.items.expired';
@@ -1,15 +1,15 @@
1
- const { WeaveError } = require('../../errors')
1
+ const { WeaveError } = require('../../errors');
2
2
 
3
3
  module.exports = (options) => {
4
- const cache = {}
4
+ const cache = {};
5
5
 
6
6
  cache.init = (registry) => {
7
- Promise.resolve(new WeaveError('Init method not implemented'))
8
- }
7
+ Promise.resolve(new WeaveError('Init method not implemented'));
8
+ };
9
9
 
10
10
  cache.stop = (registry) => {
11
- Promise.resolve(new WeaveError('Stop method not implemented'))
12
- }
11
+ Promise.resolve(new WeaveError('Stop method not implemented'));
12
+ };
13
13
 
14
- return cache
15
- }
14
+ return cache;
15
+ };