A connector that collects data using appmetrics and sends it to a configured StatsD server using hot-shots, a fork of node-statsd.
The StatsD Connector for Node Application Metrics can be installed via npm:
$ npm install appmetrics-statsdThe connector can be used in your application by requiring it as the first line of your application:
var appstatsd = require('appmetrics-statsd').StatsD();Configuration of the connection to the StatsD server is possible by passing parameters to the StatsD() function. These are passed directly though to the StatsD constructor in the node-statsd module. Information for that module is available here:
https://www.npmjs.com/package/node-statsd
Additional data may also be sent to StatsD using the standard node-statsd module Client APIs, eg.
var statsd = require('appmetrics-statsd').StatsD();
statsd.gauge('gauge', 10.4);The connector sends the following data values to StatsD from Node Application Metrics:
The hot-shots package provides all of the base statsd functionality for the below, and
also includes additional functionality for users of Datadog and Telegraf. See the
hot-shots documentation for more details.
Gauges
- cpu.processthe CPU usage of the application as a percentage of total machine CPU
- cpu.systemthe CPU usage of the system as a percentage of total machine CPU
Gauges
- memory.process.privatethe amount of memory used by the Node.js application that cannot be shared with other processes, in bytes.
- memory.process.physicalthe amount of RAM used by the Node.js application in bytes.
- memory.process.virtualthe memory address space used by Node.js application in bytes.
- memory.system.usedthe total amount of RAM in use on the system in bytes.
- memory.system.totalthe total amount of RAM available on the system in bytes.
####Event Loop
- eventloop.latency.minthe shortest sampled latency for processing an event
- eventloop.latency.maxthe longest sampled latency for processing an event
- eventloop.latency.avgthe mean sampled latency for processing an event
####Garbage Collection
Gauges
- gc.sizethe size of the JavaScript heap in bytes.
- gc.usedthe amount of memory used on the JavaScript heap in bytes.
Timers
- gc.durationthe duration of the GC cycle in milliseconds.
####HTTP Requests
Timers
- httpthe time taken for the HTTP request to be responded to in ms.
####Socket.io
Timers
- socketio.broadcast.<event>the time taken for the broadcast to all clients of the named socketio event.
- socketio.emit.<event>the time taken for the emit to a single client of the named socketio event.
- socketio.receive.<event>the time taken for a received named socketio event to be handled.
####MySQL Queries
Timers
- mysqlthe time taken for the given MySQL query to be responded to in ms.
####MongoDB Queries
Timers
- mongothe time taken for the given MongoDB query to be responded to in ms.
####Leveldown Queries
Timers
- levedown.getthe time taken for the Leveldown- getto be responded to in ms.
- levedown.putthe time taken for the Leveldown- putto be responded to in ms.
- levedown.delthe time taken for the Leveldown- delto be responded to in ms.
- levedown.batchthe time taken for the Leveldown- batchto be run in ms.
####Redis Queries
Timers
- redis.<cmd>the time taken for the given Redis command to be responded to in ms.
####Memcached Operations
Timers
- memcached.<method>the time taken for the given Memcached method to be responded to in ms.
####PostgreSQL Queries
Timers
- postgresthe time taken for the given PostgresSQL query to be responded to in ms.
####MQTT Messaging
Timers
- mqtt.<method>.<topic>the time taken for a MQTT message to handled on a given topic in ms.
####MQLight Messaging
Timers
- mqlight.<method>.<topic>the time taken for a MQLight message to handled on a given topic in ms.
The Node Application Metrics to StatsD Connector is licensed using an Apache v2.0 License.
3.1.0
3.1.0 Use hot-shots rather thab node-statsd
3.0.0 Remove fixed version of appmetrics in package.json
2.0.0 Update appmetrics version to 3.x.x
1.0.1 Add support for Event Loop, HTTP, Socketio, MongoDB, MySQL, Leveldown, Redis, Memcached, POstgreSQL, MQTT and MQLight
1.0.0 Initial release