Skip to content

Commit 53dfbf1

Browse files
committed
Add hooking points for instrumentation
Instead of hooking methods, changing a bit the parser to return raw event and parsed event
1 parent 652402a commit 53dfbf1

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ var Emitter = require('component-emitter');
88
var binary = require('./binary');
99
var isArray = require('isarray');
1010
var isBuf = require('./is-buffer');
11+
const EventEmitter = require('events');
12+
13+
const metricsEmitter = new EventEmitter();
14+
exports.metricsEmitter = metricsEmitter;
1115

1216
/**
1317
* Protocol version.
@@ -132,6 +136,7 @@ Encoder.prototype.encode = function(obj, callback){
132136
encodeAsBinary(obj, callback);
133137
} else {
134138
var encoding = encodeAsString(obj);
139+
metricsEmitter.emit('outgoing-packet', { raw: obj, encoded: encoding });
135140
callback([encoding]);
136141
}
137142
};
@@ -248,6 +253,7 @@ Decoder.prototype.add = function(obj) {
248253
this.emit('decoded', packet);
249254
}
250255
} else { // non-binary full packet
256+
metricsEmitter.emit('incoming-packet', { raw: obj, packet })
251257
this.emit('decoded', packet);
252258
}
253259
} else if (isBuf(obj) || obj.base64) { // raw binary data

0 commit comments

Comments
 (0)