From 809960b04d8b1e3a90a7aa5cac4c2ba268fc227c Mon Sep 17 00:00:00 2001 From: Erica Windisch Date: Tue, 4 Apr 2017 14:54:20 +0000 Subject: [PATCH 1/4] Disable NAGLE for lower latency sockets. Signed-off-by: Erica Windisch --- index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.js b/index.js index da97377..91a2a22 100644 --- a/index.js +++ b/index.js @@ -17,6 +17,17 @@ const httpsAgent = new https.Agent({ maxCachedSessions: 1, keepAlive: true }); +httpsAgent.createConnection = function(options, callback) { + /* noDelay is documented as defaulting to true, but docs lie. + this sacrifices throughput for latency and should be faster + for how we submit data. */ + var socket = net.createConnection(options).noDelay(true) + if (callback) { + callback(undefined, socket) + return + } + return socket +} // Default on module load; changed to false on first handler invocation. var COLDSTART = true From e0cc398fa71812bd57f6f5a19433555db2ef079f Mon Sep 17 00:00:00 2001 From: Erica Windisch Date: Mon, 10 Apr 2017 14:39:17 -0400 Subject: [PATCH 2/4] Update index.js --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 91a2a22..324f953 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,7 @@ var Promise = require('bluebird') var request = require('request') var os = require('os') var https = require('https') +var net = require('net') var system = (process.platform === 'linux') ? require('./src/system.js') : require('./src/mockSystem.js') var getCollectorUrl = require('./src/collector.js') From 6a0e2db951883a45d18e60dcc3ccf0ffe7df4abd Mon Sep 17 00:00:00 2001 From: Pam Selle Date: Fri, 21 Apr 2017 14:58:48 -0400 Subject: [PATCH 3/4] Patch, calling super method to get socket first --- index.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 324f953..8d7bf3c 100644 --- a/index.js +++ b/index.js @@ -18,15 +18,14 @@ const httpsAgent = new https.Agent({ maxCachedSessions: 1, keepAlive: true }); -httpsAgent.createConnection = function(options, callback) { + +httpsAgent.originalCreateConnection = httpsAgent.createConnection +httpsAgent.createConnection = function(port, host, options) { /* noDelay is documented as defaulting to true, but docs lie. this sacrifices throughput for latency and should be faster for how we submit data. */ - var socket = net.createConnection(options).noDelay(true) - if (callback) { - callback(undefined, socket) - return - } + var socket = httpsAgent.originalCreateConnection(port, host, options); + socket.setNoDelay(true); return socket } From dca6ab6f9fe38cac0d7511ecc413cecce2e3e30f Mon Sep 17 00:00:00 2001 From: Pam Selle Date: Fri, 21 Apr 2017 15:01:23 -0400 Subject: [PATCH 4/4] Remove net --- index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/index.js b/index.js index 8d7bf3c..7b90a24 100644 --- a/index.js +++ b/index.js @@ -5,7 +5,6 @@ var Promise = require('bluebird') var request = require('request') var os = require('os') var https = require('https') -var net = require('net') var system = (process.platform === 'linux') ? require('./src/system.js') : require('./src/mockSystem.js') var getCollectorUrl = require('./src/collector.js')