UNPKG

logzio-nodejs-metrics

Version:

A nodejs implementation for sending metrics to Logz.io

62 lines (53 loc) 1.59 kB
const nock = require('nock'); const logzioLogger = require('../lib/logzio-nodejs-metrics.js'); const dummyHost = 'logz.io'; const nockHttpAddress = `http://${dummyHost}:8070`; const token = 'testToken'; const createTestMetrics = function createLogger(options) { const myOptions = options; myOptions.token = token; myOptions.type = 'test-node'; myOptions.debug = true; myOptions.host = dummyHost; myOptions.sendIntervalMs = options.sendIntervalMs || 1000; return logzioLogger.createMetrics(myOptions); }; const sendLogs = (logger, count = 2) => { Array(count) .fill() .forEach((item, i) => { logger.send({ cpu: 0.2 + i / 100 }, { host: `my.host.${i}` }); }); }; describe('metrics', () => { describe('logs a single line', () => { afterEach(done => { nock.restore(); nock.cleanAll(); done(); }); it('sends metrics as an object', done => { const sendIntervalMs = 1; const logger = createTestMetrics({ sendIntervalMs }); nock(nockHttpAddress) .post(`/?token=${token}`) .reply((uri, body) => { const parsedBody = body .split('\n') .filter(row => row !== '') .map(metric => JSON.parse(metric)); expect(parsedBody[0]).toEqual( expect.objectContaining({ metrics: { cpu: 0.2 } }) ); expect(parsedBody[0]).toEqual( expect.objectContaining({ dim: { host: 'my.host.0' } }) ); done(); }); sendLogs(logger); logger.close(); }); }); });