node-loggly-bulk
Advanced tools
Comparing version 1.2.0 to 1.2.1
@@ -8,3 +8,6 @@ /* | ||
*/ | ||
// | ||
// Setting constant value of EVENT_SIZE variable | ||
// | ||
var EVENT_SIZE = 1000 * 1000; | ||
var events = require('events'), | ||
@@ -27,2 +30,13 @@ util = require('util'), | ||
// | ||
// function to truncate message over 1 MB | ||
// | ||
function truncateLargeMessage(message) { | ||
var maximumBytesAllowedToLoggly = EVENT_SIZE; | ||
var bytesLengthOfLogMessage = Buffer.byteLength(message); | ||
if(bytesLengthOfLogMessage > maximumBytesAllowedToLoggly) { | ||
message = message.slice(0, maximumBytesAllowedToLoggly); | ||
} | ||
return message; | ||
} | ||
// | ||
// function createClient (options) | ||
@@ -61,2 +75,3 @@ // Creates a new instance of a Loggly client. | ||
this.isBulk = options.isBulk || false; | ||
this.bufferOptions = options.bufferOptions || {size: 500, retriesInMilliSeconds: 30 * 1000}; | ||
// | ||
@@ -96,2 +111,3 @@ // Set the tags on this instance. | ||
Loggly.prototype.log = function (msg, tags, callback) { | ||
msg.message = truncateLargeMessage(msg.message) | ||
if (!callback && typeof tags === 'function') { | ||
@@ -126,2 +142,3 @@ callback = tags; | ||
isBulk: this.isBulk, | ||
bufferOptions: this.bufferOptions, | ||
headers: { | ||
@@ -128,0 +145,0 @@ host: this.host, |
@@ -16,2 +16,13 @@ /* | ||
// | ||
// Variables for buffer array | ||
// | ||
var arrBufferedMsg = [], | ||
timerFunctionForBufferedLogs = null; | ||
// | ||
// flag variable to validate authToken | ||
// | ||
var isValidToken = true; | ||
var https = require('https'), | ||
@@ -81,3 +92,4 @@ util = require('util'), | ||
isBulk, | ||
uri; | ||
uri, | ||
bufferOptions; | ||
@@ -104,2 +116,3 @@ // | ||
proxy = args[0].proxy; | ||
bufferOptions = args[0].bufferOptions; | ||
} | ||
@@ -119,2 +132,14 @@ } | ||
function onError(err) { | ||
if(!isValidToken){ | ||
console.log(err); | ||
return; | ||
} | ||
var arrayLogs = []; | ||
if(isBulk) { | ||
arrayLogs = requestOptions.body.split('\n'); | ||
} else { | ||
arrayLogs.push(requestOptions.body); | ||
} | ||
storeLogs(arrayLogs); | ||
if (!responded) { | ||
@@ -132,2 +157,4 @@ responded = true; | ||
var requestOptionsForBufferedLogs = JSON.parse(JSON.stringify(requestOptions)) | ||
if (auth) { | ||
@@ -146,5 +173,6 @@ requestOptions.headers.authorization = 'Basic ' + new Buffer(auth.username + ':' + auth.password).toString('base64'); | ||
var statusCode = res.statusCode.toString(); | ||
if(statusCode === '403') isValidToken = false; | ||
if (Object.keys(failCodes).indexOf(statusCode) !== -1) { | ||
return onError((new Error('Loggly Error (' + statusCode + '): ' + failCodes[statusCode]))); | ||
} | ||
} | ||
success(res, body); | ||
@@ -165,2 +193,3 @@ }); | ||
requestOptions.body = arrMsg.join('\n'); | ||
arrMsg.length = 0; | ||
try { | ||
@@ -172,2 +201,3 @@ request(requestOptions, function (err, res, body) { | ||
var statusCode = res.statusCode.toString(); | ||
if(statusCode === '403') isValidToken = false; | ||
if (Object.keys(failCodes).indexOf(statusCode) !== -1) { | ||
@@ -182,10 +212,4 @@ return onError((new Error('Loggly Error (' + statusCode + '): ' + failCodes[statusCode]))); | ||
} | ||
finally { | ||
// | ||
// Empty the array | ||
// | ||
arrMsg.length = 0; | ||
} | ||
} | ||
if (isBulk === true) { | ||
if (isBulk && isValidToken) { | ||
if (timerFunction === null) { | ||
@@ -201,5 +225,44 @@ timerFunction = setInterval(function () { | ||
} | ||
else { | ||
else if(isValidToken) { | ||
sendLogs(); | ||
} | ||
// | ||
// retries to send buffered logs to loggly in every 30 sec | ||
// | ||
if (timerFunctionForBufferedLogs === null) { | ||
timerFunctionForBufferedLogs = setInterval(function () { | ||
if (arrBufferedMsg.length) sendBufferdLogstoLoggly(); | ||
}, bufferOptions.retriesInMilliSeconds); | ||
} | ||
function sendBufferdLogstoLoggly() { | ||
if (!arrBufferedMsg.length) return; | ||
var arrayMessage = []; | ||
var bulkModeBunch = arrSize; | ||
var inputModeBunch = 1; | ||
var logsInBunch = isBulk ? bulkModeBunch : inputModeBunch; | ||
arrayMessage = arrBufferedMsg.slice(0, logsInBunch); | ||
requestOptionsForBufferedLogs.body = isBulk ? arrayMessage.join('\n') : arrayMessage[0]; | ||
request(requestOptionsForBufferedLogs, function (err, res, body) { | ||
if(err) return; | ||
var statusCode = res.statusCode.toString(); | ||
if(statusCode === "200") { | ||
arrBufferedMsg.splice(0, logsInBunch); | ||
sendBufferdLogstoLoggly(); | ||
} | ||
}); | ||
requestOptionsForBufferedLogs.body = ''; | ||
} | ||
// | ||
// This function will store logs into buffer | ||
// | ||
function storeLogs(logs) { | ||
if (!logs.length) return; | ||
var numberOfLogsToBeRemoved = (arrBufferedMsg.length + logs.length) - bufferOptions.size; | ||
if (numberOfLogsToBeRemoved > 0) arrBufferedMsg = arrBufferedMsg.splice(numberOfLogsToBeRemoved); | ||
arrBufferedMsg = arrBufferedMsg.concat(logs); | ||
} | ||
}; | ||
@@ -206,0 +269,0 @@ // |
{ | ||
"name": "node-loggly-bulk", | ||
"description": "A client implementation for Loggly cloud Logging-as-a-Service API", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"author": { | ||
@@ -20,3 +20,3 @@ "name": "Charlie Robbins", | ||
"dependencies": { | ||
"request": "2.67.x", | ||
"request": ">=2.76.0 <3.0.0", | ||
"timespan": "2.3.x", | ||
@@ -41,3 +41,3 @@ "json-stringify-safe": "5.0.x" | ||
}, | ||
"gitHead": "eb81e212cbc6c20fcd4607a290d90e2156301b05", | ||
"gitHead": "4fcdb4b5a02e3123b87baa74d79a8256b481cbb1", | ||
"bugs": { | ||
@@ -47,28 +47,35 @@ "url": "https://github.com/loggly/node-loggly-bulk/issues" | ||
"homepage": "https://github.com/loggly/node-loggly-bulk#readme", | ||
"_id": "node-loggly-bulk@1.1.1", | ||
"_shasum": "8860d2fc5abe434112178ccfb3cd07cb6682f86b", | ||
"_id": "node-loggly-bulk@1.1.3", | ||
"_shasum": "a6adf86180b44ce40967549ed53cdc272a6e33d8", | ||
"_from": "node-loggly-bulk@>=1.1.0 <1.2.0", | ||
"_npmVersion": "2.15.5", | ||
"_nodeVersion": "4.4.5", | ||
"_npmVersion": "2.15.9", | ||
"_nodeVersion": "4.6.0", | ||
"_npmUser": { | ||
"name": "psquickitjayant", | ||
"email": "jayantvarshney018@gmail.com" | ||
"name": "psqshweta", | ||
"email": "shweta.jain@psquickit.com" | ||
}, | ||
"dist": { | ||
"shasum": "8860d2fc5abe434112178ccfb3cd07cb6682f86b", | ||
"tarball": "https://registry.npmjs.org/node-loggly-bulk/-/node-loggly-bulk-1.1.1.tgz" | ||
"shasum": "a6adf86180b44ce40967549ed53cdc272a6e33d8", | ||
"tarball": "https://registry.npmjs.org/node-loggly-bulk/-/node-loggly-bulk-1.1.3.tgz" | ||
}, | ||
"maintainers": [ | ||
{ | ||
"name": "loggly", | ||
"email": "sjain@loggly.com" | ||
}, | ||
{ | ||
"name": "psqshweta", | ||
"email": "shweta.jain@psquickit.com" | ||
}, | ||
{ | ||
"name": "psquickitjayant", | ||
"email": "jayantvarshney018@gmail.com" | ||
"email": "psurothiya@loggly.com" | ||
} | ||
], | ||
"_npmOperationalInternal": { | ||
"host": "packages-16-east.internal.npmjs.com", | ||
"tmp": "tmp/node-loggly-bulk-1.1.1.tgz_1466092672467_0.38912156177684665" | ||
"host": "packages-18-east.internal.npmjs.com", | ||
"tmp": "tmp/node-loggly-bulk-1.1.3.tgz_1484912634118_0.8453252469189465" | ||
}, | ||
"directories": {}, | ||
"_resolved": "https://registry.npmjs.org/node-loggly-bulk/-/node-loggly-bulk-1.1.1.tgz", | ||
"readme": "ERROR: No README data found!" | ||
"_resolved": "https://registry.npmjs.org/node-loggly-bulk/-/node-loggly-bulk-1.1.3.tgz" | ||
} |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
57084
1523
1
+ Addedajv@6.12.6(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaws-sign2@0.7.0(transitive)
+ Addedaws4@1.13.0(transitive)
+ Addedcaseless@0.12.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedform-data@2.3.3(transitive)
+ Addedhar-schema@2.0.0(transitive)
+ Addedhar-validator@5.1.5(transitive)
+ Addedhttp-signature@1.2.0(transitive)
+ Addedjson-schema-traverse@0.4.1(transitive)
+ Addedoauth-sign@0.9.0(transitive)
+ Addedperformance-now@2.1.0(transitive)
+ Addedpsl@1.9.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedqs@6.5.3(transitive)
+ Addedrequest@2.88.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedtough-cookie@2.5.0(transitive)
+ Addedtunnel-agent@0.6.0(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addeduuid@3.4.0(transitive)
- Removedansi-regex@2.1.1(transitive)
- Removedansi-styles@2.2.1(transitive)
- Removedassert-plus@0.2.0(transitive)
- Removedasync@2.6.4(transitive)
- Removedaws-sign2@0.6.0(transitive)
- Removedbl@1.0.3(transitive)
- Removedboom@2.10.1(transitive)
- Removedcaseless@0.11.0(transitive)
- Removedchalk@1.1.3(transitive)
- Removedcommander@2.20.3(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedcryptiles@2.0.5(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedform-data@1.0.1(transitive)
- Removedgenerate-function@2.3.1(transitive)
- Removedgenerate-object-property@1.2.0(transitive)
- Removedhar-validator@2.0.6(transitive)
- Removedhas-ansi@2.0.0(transitive)
- Removedhawk@3.1.3(transitive)
- Removedhoek@2.16.3(transitive)
- Removedhttp-signature@1.1.1(transitive)
- Removedinherits@2.0.4(transitive)
- Removedis-my-ip-valid@1.0.1(transitive)
- Removedis-my-json-valid@2.20.6(transitive)
- Removedis-property@1.0.2(transitive)
- Removedisarray@1.0.0(transitive)
- Removedjsonpointer@5.0.1(transitive)
- Removedlodash@4.17.21(transitive)
- Removednode-uuid@1.4.8(transitive)
- Removedoauth-sign@0.8.2(transitive)
- Removedpinkie@2.0.4(transitive)
- Removedpinkie-promise@2.0.1(transitive)
- Removedprocess-nextick-args@1.0.7(transitive)
- Removedqs@5.2.1(transitive)
- Removedreadable-stream@2.0.6(transitive)
- Removedrequest@2.67.0(transitive)
- Removedsntp@1.0.9(transitive)
- Removedstring_decoder@0.10.31(transitive)
- Removedstringstream@0.0.6(transitive)
- Removedstrip-ansi@3.0.1(transitive)
- Removedsupports-color@2.0.0(transitive)
- Removedtough-cookie@2.2.2(transitive)
- Removedtunnel-agent@0.4.3(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removedxtend@4.0.2(transitive)
Updatedrequest@>=2.76.0 <3.0.0