Skip to content

Commit 9a3e0c5

Browse files
committed
Simplify what disabling monitoring does
1 parent 2be0bb8 commit 9a3e0c5

File tree

19 files changed

+69
-137
lines changed

19 files changed

+69
-137
lines changed

libraries/monitor/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"dependencies": {
1616
"app-root-dir": "^1.0.2",
1717
"chalk": "^2.4.2",
18+
"debug": "^4.1.1",
1819
"fast-json-stable-stringify": "^2.0.0",
1920
"serialize-error": "^3.0.0"
2021
},

libraries/monitor/src/index.js

+10-11
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class MonitorManager {
5353
setup({
5454
level = 'info',
5555
patchGlobal = true,
56-
bailOnUnhandledRejection = false,
56+
bailOnUnhandledRejection = true,
5757
resourceInterval = 60,
5858
mock = false,
5959
enable = true,
@@ -69,13 +69,12 @@ class MonitorManager {
6969
}
7070
this.alreadySetup = true;
7171

72-
if (!enable) {
72+
if (!enable || mock) {
7373
patchGlobal = false;
7474
processName = null;
7575
}
7676

7777
this.mock = mock;
78-
this.enable = enable;
7978
this.pretty = pretty;
8079
this.subject = 'root';
8180
this.metadata = metadata;
@@ -130,7 +129,6 @@ class MonitorManager {
130129
name: `taskcluster.${this.serviceName}.${this.subject}`,
131130
service: this.serviceName,
132131
level: this.levels['root'],
133-
enable,
134132
pretty,
135133
destination: this.destination,
136134
metadata,
@@ -139,19 +137,18 @@ class MonitorManager {
139137
this.rootMonitor = new Monitor({
140138
logger,
141139
verify,
142-
enable,
143140
types: this.types,
144141
});
145142

146-
if (patchGlobal && enable) {
143+
if (patchGlobal) {
147144
this.uncaughtExceptionHandler = this._uncaughtExceptionHandler.bind(this);
148145
process.on('uncaughtException', this.uncaughtExceptionHandler);
149146

150147
this.unhandledRejectionHandler = this._unhandledRejectionHandler.bind(this);
151148
process.on('unhandledRejection', this.unhandledRejectionHandler);
152149
}
153150

154-
if (processName && !mock && enable) {
151+
if (processName) {
155152
this.rootMonitor.resources(processName, resourceInterval);
156153
}
157154

@@ -177,8 +174,12 @@ class MonitorManager {
177174
*/
178175
terminate() {
179176
this.rootMonitor.stopResourceMonitoring();
180-
process.removeListener('uncaughtException', this.uncaughtExceptionHandler);
181-
process.removeListener('unhandledRejection', this.unhandledRejectionHandler);
177+
if (this.uncaughtExceptionHandler) {
178+
process.removeListener('uncaughtException', this.uncaughtExceptionHandler);
179+
}
180+
if (this.unhandledRejectionHandler) {
181+
process.removeListener('unhandledRejection', this.unhandledRejectionHandler);
182+
}
182183
if (this.mock) {
183184
this.destination.end();
184185
}
@@ -204,12 +205,10 @@ class MonitorManager {
204205
return new Monitor({
205206
types: this.types,
206207
verify: this.verify,
207-
enable: this.enable,
208208
logger: new Logger({
209209
name: `taskcluster.${this.serviceName}.${prefix}`,
210210
service: this.serviceName,
211211
level: this.levels[prefix] || this.levels.root,
212-
enable: this.enable,
213212
pretty: this.pretty,
214213
destination: this.destination,
215214
metadata,

libraries/monitor/src/logger.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ const LEVELS = {
1515
};
1616

1717
const LEVELS_REVERSE = [
18+
'EMERGENCY',
19+
'ALERT',
20+
'CRITICAL',
21+
'ERROR',
22+
'WARNING',
23+
'NOTICE',
24+
'INFO',
25+
'DEBUG',
26+
];
27+
28+
const LEVELS_REVERSE_COLOR = [
1829
chalk.red.bold('EMERGENCY'),
1930
chalk.red.bold('ALERT'),
2031
chalk.red.bold('CRITICAL'),
@@ -33,14 +44,13 @@ const LEVELS_REVERSE = [
3344
* later if we want.
3445
*/
3546
class Logger {
36-
constructor({name, service, level, pretty=false, enable=true, destination=process.stdout, metadata=null}) {
47+
constructor({name, service, level, pretty=false, destination=process.stdout, metadata=null}) {
3748
assert(name, 'Must specify Logger name.');
3849

3950
this.name = name;
4051
this.service = service;
4152
this.destination = destination;
4253
this.pretty = pretty;
43-
this.enable = enable;
4454
this.metadata = Object.keys(metadata).length > 0 ? metadata : null;
4555
this.pid = process.pid;
4656
this.hostname = os.hostname();
@@ -51,7 +61,7 @@ class Logger {
5161
}
5262

5363
_log(level, type, fields) {
54-
if (!this.enable || level > this.level) {
64+
if (level > this.level) {
5565
return;
5666
}
5767

@@ -98,7 +108,7 @@ class Logger {
98108
}
99109
return s;
100110
}, '');
101-
const line = chalk`${(new Date()).toJSON()} ${LEVELS_REVERSE[level]} (${type}): {blue ${message}}{gray ${extra}}\n`;
111+
const line = chalk`${(new Date()).toJSON()} ${LEVELS_REVERSE_COLOR[level]} (${type}): {blue ${message}}{gray ${extra}}\n`;
102112
this.destination.write(line);
103113
} else {
104114
this.destination.write(stringify({

libraries/monitor/src/monitor.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
const debug = require('debug');
12
const assert = require('assert');
23
const serializeError = require('serialize-error');
34
const TimeKeeper = require('./timekeeper');
45

56
class Monitor {
6-
constructor({logger, verify = false, enable = true, types = {}}) {
7+
constructor({logger, verify = false, types = {}}) {
78
this._log = logger;
89
this.verify = verify;
9-
this.enable = enable;
1010
this.log = {};
1111
Object.entries(types).forEach(([name, meta]) => {
1212
this.register({name, ...meta});
@@ -269,9 +269,6 @@ class Monitor {
269269
if (!(err instanceof Error)) {
270270
err = new Error(err);
271271
}
272-
if (!this.enable) {
273-
throw err;
274-
}
275272
if (level) {
276273
if (typeof level === 'string') {
277274
extra['legacyLevel'] = level;

libraries/monitor/test/logger_test.js

-14
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,4 @@ suite('Logging', function() {
173173
assert(message.includes('ERROR'));
174174
assert(message.includes('whatever: foo\\nbar'));
175175
});
176-
177-
test('disabling works', function() {
178-
const b = new MonitorManager({
179-
serviceName: 'taskcluster-level',
180-
});
181-
b.setup({
182-
level: 'debug',
183-
mock: true,
184-
enable: false,
185-
});
186-
const m = b.monitor();
187-
m.info('something', {whatever: 5}); // This should not get logged
188-
assert.equal(b.messages.length, 0);
189-
});
190176
});

services/auth/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ test:
155155
signingKey: not-a-secret-so-you-cant-guess-it
156156
cryptoKey: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
157157
monitoring:
158+
level: warning
158159
enable: false
159160
# Test bucket for STS credentials
160161
test:

services/built-in-workers/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ test:
2323
publishMetaData: false
2424

2525
monitoring:
26+
level: warning
2627
enable: false

services/github/config.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ test:
127127
accountId: 'jungle'
128128

129129
monitoring:
130-
mock: true
130+
level: warning
131+
enable: false
131132

132133
server:
133134
port: 60415

services/hooks/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ test:
7272
signingKey: 'not a secret'
7373
cryptoKey: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
7474
monitoring:
75+
level: warning
7576
enable: false
7677
server:
7778
port: 60401

services/index/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ test:
100100
listenerQueueName: 'test-queue'
101101

102102
monitoring:
103+
level: warning
103104
enable: false
104105
server:
105106
port: 60020

services/login/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ ngrok:
7171
clientId: !env TASKCLUSTER_CLIENT_ID
7272
accessToken: !env TASKCLUSTER_ACCESS_TOKEN
7373
monitoring:
74+
level: warning
7475
enable: false
7576
server:
7677
port: 60174

services/notify/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ test:
8282
azure:
8383
accountId: 'jungle'
8484
monitoring:
85+
level: warning
8586
enable: false
8687
server:
8788
port: 60401

services/purge-cache/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ test:
6363
cachePurgeExpirationDelay: '7 days'
6464

6565
monitoring:
66+
level: warning
6667
enable: false
67-
project: 'taskcluster-purge-cache'
6868

6969
azure:
7070
accountId: 'jungle'

services/queue/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ load-test:
232232
azureReportChance: 0.0
233233
azureReportThreshold: 1000000
234234
monitoring:
235+
level: warning
235236
enable: false
236237
server:
237238
env: development

services/secrets/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ test:
8282
signingKey: 'REALULTIMATEPOWER.NET'
8383

8484
monitoring:
85+
level: warning
8586
enable: false
8687

8788
server:

services/treeherder/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ defaults:
3232

3333
test:
3434
monitoring:
35+
level: warning
3536
enable: false
3637

3738
staging:

services/web-server/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ development:
4444
# taskcluster-web's dev server assumes port 3050
4545
port: 3050
4646
monitoring:
47-
project: taskcluster-web-server
47+
level: warning
4848
enable: false
4949

5050
production:

services/worker-manager/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ test:
3434
taskcluster:
3535
rootUrl: 'http://localhost:5555'
3636
monitoring:
37+
level: warning
3738
enable: false
3839
server:
3940
port: 5555

0 commit comments

Comments
 (0)