stackdriver-statsd-backend

Send metric data from statsd to Stackdriver

npm install stackdriver-statsd-backend
83 downloads in the last week
360 downloads in the last month

stackdriver-statsd-backend

Backend plugin for statsd to publish output to the Stackdriver custom metrics API over HTTPS.

Installation

Install statsd normally. We'll call the root directory of the statsd install $STATSD_HOME

From your $STATSD_HOME directory run $ npm install stackdriver-statsd-backend will install this module into the appropriate place, and the configurations below will reference it as a backend.

For now you can pull stackdriver.js and put it in the backends directory of your statsd and it will be configurable like below.

Configuration Examples

To set up the Stackdriver backend, you need a Stackdriver account and API key. Everything else is optional. Any of the configurations below can be put into a stackdriverConfig.js and used as a statsd config on startup.

$ bin/statsd stackdriverConfig.js

Please set flushInterval to 1 minute (60000 milliseconds) or more, as that is the highest frequency we support at this time (another good reason to use this statsd plugin).

{
    flushInterval: 60000,
    backends: [ "stackdriver-statsd-backend" ], 
    stackdriver: {
        apiKey: "YOUR_API_KEY_HERE"
    }
}

To associate the metrics with a particular instance (such as the one statsd is running on) add the source parameter to your configuration. The custom metrics generated will be associated with that AWS or Rackspace Cloud instance. For AWS, instance ID is in the form i-00000000.

{
    flushInterval: 60000,
    backends: [ "stackdriver-statsd-backend" ], 
    stackdriver: {
        apiKey: "YOUR_API_KEY_HERE",
        source: "AWS Instance ID here"
    }
}

If you are sending to Stackdriver from an aggregated metrics source (for example into a statsd cluster) the instance can be inferred from a prefix on the metric name rather than a fixed value. If your metric names look like "instanceName|metricName", you would use:

{
    flushInterval: 60000,
    backends: [ "stackdriver-statsd-backend" ], 
    stackdriver: {
        apiKey: "YOUR_API_KEY_HERE",
        sourceFromPrefix: true,
        sourcePrefixSeparator: "|"
    }
}

To output additional logging information, add the debug parameter set to true. It will be more verbose, and can be helpful to tell what exactly is being sent to Stackdriver.

{
    flushInterval: 60000,
    backends: [ "stackdriver-statsd-backend" ], 
    stackdriver: {
        apiKey: "YOUR_API_KEY_HERE",
        debug: "true"
    }
}
npm loves you