sumo
A Node.js SDK for Sumo Logic's Search Job API
API
createReadStream
Create a readable stream of messages or records that result from a Sumo Logic
search. Messages are the raw log messages, records are the result of
a search with some form of aggregation (e.g. count by _sourceCategory
).
Credentials can be provided explicitly, or read from environment variables:
SUMO_LOGIC_ACCESS_ID
and SUMO_LOGIC_ACCESS_KEY
.
Parameters
type
string one of messages
or records
search
object Sumo Logic search parameters
search.query
string the query stringsearch.from
number the starting timestamp in mssearch.to
number the ending timestamp in mssearch.auth
object? Sumo Logic credentials
search.auth.accessId
string? Sumo Logic access IDsearch.auth.accessKey
string? Sumo Logic access key
options
object readable stream options
Examples
const sumo = require('@mapbox/sumo');
const search = {
query: '"error" | count by _sourceCategory',
from: 1487733054071,
to: 1487733356114,
auth: {
accessId: xxx,
accessKey: xxxx
}
};
const messages = sumo.createReadStream('messages', search);
messages.on('data', (msg) => console.log(msg));
Returns object a readable stream of messages or records
search
Perform a search limited to less that 100 results. This will return both
raw messages and aggregate records where applicable. Credentials can be
provided explicitly, or read from environment variables:
SUMO_LOGIC_ACCESS_ID
and SUMO_LOGIC_ACCESS_KEY
.
Parameters
search
object Sumo Logic search parameters
search.query
string the query stringsearch.from
number the starting timestamp in mssearch.to
number the ending timestamp in mssearch.limit
number? the maximum number of messages/records (optional, default 100
)search.auth
object? Sumo Logic credentials
search.auth.accessId
string? Sumo Logic access IDsearch.auth.accessKey
string? Sumo Logic access key
callback
function? a function to call with the results
Examples
const sumo = require('@mapbox/sumo');
const search = {
query: '"error" | count by _sourceCategory',
from: 1487733054071,
to: 1487733356114,
auth: {
accessId: xxx,
accessKey: xxxx
}
};
sumo.search(search, (err, data) => {
if (err) throw err;
data.messages.forEach((msg) => console.log(msg));
data.records.forEach((rec) => console.log(rec));
});
Returns promise resolves with the results, an object with two properties,
each of which are an array: .messages
and .records