0.0.8 • Published 4 years ago

@blitt/good-influx v0.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@blitt/good-influx

InfluxDB broadcasting for Good process monitor, based on good-http. It can write to HTTP or UDP Telegraf endpoints.

@blitt/good-influx will format your Good data according to the InfluxDB Line Protocol.

Usage

@blitt/good-influx is a write stream used to send events to InfluxDB endpoints in batches. If your endpoint is http:// or https://, it makes a "POST" request with a plain-text payload to the supplied endpoint. It will make a final "POST" request to the endpoint to flush the rest of the data on "finish".

If the supplied endpoint is a udp:// endpoint then @blitt/good-influx will send the stats via UDP. This may improve application performance since UDP does not wait for a response. Though it does fail silently, so you run the risk that your stats are failing to record and you don't know about it.

Example

const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection();

const options = {
	ops: {
	    interval: 1000
	},
    reporters: {
    	// Send only 'ops' events to InfluxDB
        influx: [{
            module: 'good-squeeze',
            name: 'Squeeze',
            args: [{ ops: '*' }]
        }, {
            module: '@blitt/good-influx',
            args: ['http://localhost:8086/write?db=good', {
                threshold: 10,
                metadata: {
                    serviceName: 'SuperAwesomeService'
                }
        	}]
        }]
    }
};

server.register({
    register: require('good'),
    options: options
}, (err) => {

    if (err) {
        console.error(err);
    } else {
        server.start(() => {
            console.info('Server started at ' + server.info.uri);
        });
    }
});

Good Influx

GoodInflux (endpoint, config)

Creates a new GoodInflux object where:

  • endpoint - full path to remote server's InfluxDB HTTP API end point to transmit InfluxDB statistics (e.g. http://localhost:8086/write?db=good)
  • config - configuration object (Optional)
    • [threshold] - number of events to hold before transmission. Defaults to 20. Set to 0 to have every event start transmission instantly. It is recommended to have a set threshold to make data transmission more efficient.
    • [errorThreshold] - number of erroring message sends to tolerate before the plugin fails. Default is 0.
    • [wreck] - configuration object to pass into wreck. Defaults to { timeout: 60000, headers: {} }. content-type is always "text/plain".
    • [udpType] - UDP type; defaults to udp4. Probably not necessary to change, but more documentation is available on the NodeJS Dgram Documentation
    • [metadata] - arbitrary information you would like to include in your InfluxDB stats. This helps you query InfluxDB for the statistics you want.

Series

Error

timehostpiderroridmethodurl

Log

timehostpiddatatags

Ops

timehostpidosprocmetadata (optional)
  • os includes: cpu1m, cpu5m, cpu15m, freemem, totalmem and uptime
  • proc includes: delay, heapTotal, heapUsed, rss and uptime
  • metadata (optional) includes any decorators you may have added as part of the metadata config option above.

Request

timehostpiddataidmethodpathtags

Response

timehostpidhttpVersionidinstancelabelsmethodpathquery
refererremoteAddressresponseTimestatusCodeuserAgent

License

MIT

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago