Skip to content
This repository was archived by the owner on Apr 3, 2024. It is now read-only.

Commit d2d1d21

Browse files
authored
Removed dependency on @google/cloud-diagnostics-common (#215)
PR-URL: #215
1 parent 90be573 commit d2d1d21

14 files changed

+161
-65
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@
3232
"proxyquire": "^1.4.0"
3333
},
3434
"dependencies": {
35-
"@google-cloud/common": "^0.9.0",
36-
"@google/cloud-diagnostics-common": "0.3.0",
35+
"@google-cloud/common": "^0.11.0",
3736
"acorn": "^4.0.3",
3837
"async": "^2.1.2",
3938
"coffee-script": "^1.9.3",

src/agent/debuglet.js

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,13 @@ var util = require('util');
2525
var semver = require('semver');
2626
var _ = require('lodash');
2727
var metadata = require('gcp-metadata');
28+
var common = require('@google-cloud/common');
2829

2930
var v8debugapi = require('./v8debugapi.js');
3031
var Debuggee = require('../debuggee.js');
3132
var DebugletApi = require('../controller.js');
3233
var defaultConfig = require('./config.js');
3334
var scanner = require('./scanner.js');
34-
var common = require('@google/cloud-diagnostics-common');
35-
var Logger = common.logger;
3635
var StatusMessage = require('../status-message.js');
3736
var SourceMapper = require('./sourcemapper.js');
3837
var pjson = require('../../package.json');
@@ -44,6 +43,43 @@ var NODE_VERSION_MESSAGE = 'Node.js version not supported. Node.js 5.2.0 and ' +
4443
var BREAKPOINT_ACTION_MESSAGE = 'The only currently supported breakpoint actions' +
4544
' are CAPTURE and LOG.';
4645

46+
/**
47+
* Formats a breakpoint object prefixed with a provided message as a string
48+
* intended for logging.
49+
* @param {string} msg The message that prefixes the formatted breakpoint.
50+
* @param {Breakpoint} breakpoint The breakpoint to format.
51+
* @return {string} A formatted string.
52+
*/
53+
var formatBreakpoint = function(msg, breakpoint) {
54+
var text = msg + util.format('breakpoint id: %s,\n\tlocation: %s',
55+
breakpoint.id, util.inspect(breakpoint.location));
56+
if (breakpoint.createdTime) {
57+
var unixTime = parseInt(breakpoint.createdTime.seconds, 10);
58+
var date = new Date(unixTime * 1000); // to milliseconds.
59+
text += '\n\tcreatedTime: ' + date.toString();
60+
}
61+
if (breakpoint.condition) {
62+
text += '\n\tcondition: ' + util.inspect(breakpoint.condition);
63+
}
64+
if (breakpoint.expressions) {
65+
text += '\n\texpressions: ' + util.inspect(breakpoint.expressions);
66+
}
67+
return text;
68+
};
69+
70+
/**
71+
* Formats a map of breakpoint objects prefixed with a provided message as a
72+
* string intended for logging.
73+
* @param {string} msg The message that prefixes the formatted breakpoint.
74+
* @param {Object.<string, Breakpoint>} breakpoints A map of breakpoints.
75+
* @return {string} A formatted string.
76+
*/
77+
var formatBreakpoints = function(msg, breakpoints) {
78+
return msg + Object.keys(breakpoints).map(function (b) {
79+
formatBreakpoint('', b);
80+
}).join('\n');
81+
};
82+
4783
module.exports = Debuglet;
4884

4985
/**
@@ -80,8 +116,11 @@ function Debuglet(debug, config) {
80116
/** @private {boolean} */
81117
this.fetcherActive_ = false;
82118

83-
/** @private {Logger} */
84-
this.logger_ = Logger.create(this.config_.logLevel, '@google-cloud/debug');
119+
/** @private {common.logger} */
120+
this.logger_ = new common.logger({
121+
level: common.logger.LEVELS[this.config_.logLevel],
122+
tag: '@google-cloud/debug'
123+
});
85124

86125
/** @private {DebugletApi} */
87126
this.debugletApi_ = new DebugletApi(this.debug_);
@@ -274,7 +313,7 @@ Debuglet.prototype.getProjectId_ = function(callback) {
274313
// to access the metadata service as a test for that.
275314
// TODO: change this to getProjectId in the future.
276315
metadata.project(
277-
'numeric-project-id', function(err, response, metadataProject) {
316+
'project-id', function(err, response, metadataProject) {
278317
// We should get an error if we are not on GCP.
279318
var onGCP = !err;
280319

@@ -407,8 +446,8 @@ Debuglet.prototype.scheduleBreakpointFetch_ = function(seconds) {
407446
});
408447
that.updateActiveBreakpoints_(bps);
409448
if (Object.keys(that.activeBreakpointMap_).length) {
410-
that.logger_.breakpoints(Logger.INFO, 'Active Breakpoints:',
411-
that.activeBreakpointMap_);
449+
that.logger_.info(formatBreakpoint('Active Breakpoints: ',
450+
that.activeBreakpointMap_));
412451
}
413452
that.scheduleBreakpointFetch_(that.config_.breakpointUpdateIntervalSec);
414453
return;
@@ -427,7 +466,8 @@ Debuglet.prototype.updateActiveBreakpoints_ = function(breakpoints) {
427466
var updatedBreakpointMap = this.convertBreakpointListToMap_(breakpoints);
428467

429468
if (breakpoints.length) {
430-
that.logger_.breakpoints(Logger.INFO, 'Server breakpoints:', updatedBreakpointMap);
469+
that.logger_.info(formatBreakpoints('Server breakpoints: ',
470+
updatedBreakpointMap));
431471
}
432472

433473
breakpoints.forEach(function(breakpoint) {

src/agent/v8debugapi.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
/** @const */ var semver = require('semver');
2323

2424
/** @const */ var state = require('./state.js');
25-
/** @const */ var logModule = require('@google/cloud-diagnostics-common').logger;
2625
/** @const */ var StatusMessage = require('../status-message.js');
2726

2827
/** @const */ var messages = {
@@ -46,6 +45,18 @@
4645
/** @const */ var MODULE_WRAP_PREFIX_LENGTH = require('module').wrap('☃')
4746
.indexOf('☃');
4847

48+
/**
49+
* Formats a provided message and a high-resolution interval of the format
50+
* [seconds, nanoseconds] (for example, from process.hrtime()) prefixed with a
51+
* provided message as a string intended for logging.
52+
* @param {string} msg The mesage that prefixes the formatted interval.
53+
* @param {number[]} interval The interval to format.
54+
* @return {string} A formatted string.
55+
*/
56+
var formatInterval = function(msg, interval) {
57+
return msg + (interval[0] * 1000 + interval[1] / 1000000) + 'ms';
58+
};
59+
4960
var singleton;
5061
module.exports.create = function(logger_, config_, jsFiles_, sourcemapper_) {
5162
if (singleton) {
@@ -468,7 +479,7 @@ module.exports.create = function(logger_, config_, jsFiles_, sourcemapper_) {
468479
messages.CAPTURE_BREAKPOINT_DATA + err);
469480
}
470481
var end = process.hrtime(start);
471-
logger.interval(logModule.INFO, 'capture time', end);
482+
logger.info(formatInterval('capture time: ', end));
472483
callback(null);
473484
}
474485

test/fixtures/fib.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ debug.startAgent({
2929
breakpointUpdateIntervalSec: 1
3030
});
3131

32+
// Make troubleshooting easier if run by itself
33+
if (!process.send) {
34+
process.send = console.log;
35+
}
36+
3237
var timedOut = false;
3338
var registrationTimeout = setTimeout(function() {
3439
timedOut = true;

test/nocks.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function nockOAuth2(validator) {
2626
validator = validator || accept;
2727
return nock('https://accounts.google.com')
2828
.post('/o/oauth2/token', validator)
29+
.once()
2930
.reply(200, {
3031
refresh_token: 'hello',
3132
access_token: 'goodbye',
@@ -37,17 +38,19 @@ function nockRegister(validator) {
3738
validator = validator || accept;
3839
return nock('https://clouddebugger.googleapis.com')
3940
.post('/v2/controller/debuggees/register', validator)
41+
.once()
4042
.reply(200);
4143
}
4244

43-
function nockNumericProjectId(reply) {
45+
function nockProjectId(reply) {
4446
return nock('http://metadata.google.internal')
45-
.get('/computeMetadata/v1/project/numeric-project-id')
47+
.get('/computeMetadata/v1/project/project-id')
48+
.once()
4649
.reply(reply);
4750
}
4851

4952
module.exports = {
5053
oauth2: nockOAuth2,
51-
numericProjectId: nockNumericProjectId,
54+
projectId: nockProjectId,
5255
register: nockRegister
5356
};

test/standalone/test-duplicate-expressions.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var breakpointInFoo = {
2929
var assert = require('assert');
3030
var extend = require('extend');
3131
var v8debugapi = require('../../src/agent/v8debugapi.js');
32-
var logModule = require('@google/cloud-diagnostics-common').logger;
32+
var common = require('@google-cloud/common');
3333
var defaultConfig = require('../../src/agent/config.js');
3434
var SourceMapper = require('../../src/agent/sourcemapper.js');
3535
var scanner = require('../../src/agent/scanner.js');
@@ -47,7 +47,7 @@ describe('v8debugapi', function() {
4747
var config = extend({}, defaultConfig, {
4848
workingDirectory: path.join(process.cwd(), 'test', 'standalone')
4949
});
50-
var logger = logModule.create(config.logLevel);
50+
var logger = common.logger({ logLevel: config.logLevel });
5151
var api = null;
5252

5353
beforeEach(function(done) {

test/standalone/test-duplicate-nested-expressions.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
var assert = require('assert');
2828
var extend = require('extend');
2929
var v8debugapi = require('../../src/agent/v8debugapi.js');
30-
var logModule = require('@google/cloud-diagnostics-common').logger;
30+
var common = require('@google-cloud/common');
3131
var defaultConfig = require('../../src/agent/config.js');
3232
var SourceMapper = require('../../src/agent/sourcemapper.js');
3333
var scanner = require('../../src/agent/scanner.js');
@@ -46,7 +46,7 @@ describe('v8debugapi', function() {
4646
var config = extend({}, defaultConfig, {
4747
workingDirectory: path.join(process.cwd(), 'test', 'standalone')
4848
});
49-
var logger = logModule.create(config.logLevel);
49+
var logger = common.logger({ logLevel: config.logLevel });
5050
var api = null;
5151

5252
beforeEach(function(done) {

test/standalone/test-fat-arrow.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
var assert = require('assert');
1919
var extend = require('extend');
2020
var v8debugapi = require('../../src/agent/v8debugapi.js');
21-
var logModule = require('@google/cloud-diagnostics-common').logger;
21+
var common = require('@google-cloud/common');
2222
var defaultConfig = require('../../src/agent/config.js');
2323
var SourceMapper = require('../../src/agent/sourcemapper.js');
2424
var scanner = require('../../src/agent/scanner.js');
@@ -39,7 +39,7 @@ describe('v8debugapi', function() {
3939
var config = extend({}, defaultConfig, {
4040
workingDirectory: path.join(process.cwd(), 'test')
4141
});
42-
var logger = logModule.create(config.logLevel);
42+
var logger = common.logger({ logLevel: config.logLevel });
4343
var api = null;
4444
var foo;
4545
before(function () {

test/standalone/test-max-data-size.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ process.env.GCLOUD_DIAGNOSTICS_CONFIG = 'test/fixtures/test-config.js';
2323

2424
var assert = require('assert');
2525
var extend = require('extend');
26-
var logModule = require('@google/cloud-diagnostics-common').logger;
26+
var common = require('@google-cloud/common');
2727
var v8debugapi = require('../../src/agent/v8debugapi.js');
2828
var SourceMapper = require('../../src/agent/sourcemapper.js');
2929
var scanner = require('../../src/agent/scanner.js');
@@ -40,7 +40,7 @@ describe('maxDataSize', function() {
4040

4141
before(function(done) {
4242
if (!api) {
43-
var logger = logModule.create(config.logLevel);
43+
var logger = common.logger({ logLevel: config.logLevel });
4444
scanner.scan(true, config.workingDirectory, /.js$/,
4545
function(err, fileStats, hash) {
4646
assert(!err);

test/standalone/test-this-context.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
var assert = require('assert');
2828
var extend = require('extend');
2929
var v8debugapi = require('../../src/agent/v8debugapi.js');
30-
var logModule = require('@google/cloud-diagnostics-common').logger;
30+
var common = require('@google-cloud/common');
3131
var defaultConfig = require('../../src/agent/config.js');
3232
var SourceMapper = require('../../src/agent/sourcemapper.js');
3333
var scanner = require('../../src/agent/scanner.js');
@@ -46,7 +46,7 @@ describe('v8debugapi', function() {
4646
var config = extend({}, defaultConfig, {
4747
workingDirectory: path.join(process.cwd(), 'test', 'standalone')
4848
});
49-
var logger = logModule.create(config.logLevel);
49+
var logger = common.logger({ logLevel: config.logLevel });
5050
var api = null;
5151

5252
beforeEach(function(done) {

0 commit comments

Comments
 (0)