/statsd-instrumental-backend

StatsD Backend for Instrumental Application Monitoring

Primary LanguageJavaScriptMIT LicenseMIT

StatsD Instrumental Backend

Overview

Instrumental is a application monitoring platform built for developers who want a better understanding of their production software. Powerful tools, like the Instrumental Query Language, combined with an exploration-focused interface allow you to get real answers to complex questions, in real-time.

This is a pluggable StatsD backend for sending metrics to Instrumental.

Requirements

Installation

$ cd /path/to/statsd
$ npm install statsd-instrumental-backend

Configuration

See our example config file for a complete StatsD configuration.

Otherwise, add the following basic configuration information to your StatsD config file.

{
  instrumental: {
    key: "[project token]",       // REQUIRED
    secure: true,                 // OPTIONAL (boolean), whether or not to use secure protocol to connect to Instrumental, default true
    verifyCert: true,             // OPTIONAL (boolean), should we attempt to verify the server certificate before allowing communication, default true
    timeout: 10000,               // OPTIONAL (integer), number of milliseconds to wait for establishing a connection to Instrumental before giving up, default 10s
    recordCounterRates: true,     // OPTIONAL (boolean) whether or not to send ".rate" metrics with counters, default true
    metricPrefix: "",             // OPTIONAL (string) this will be prepended (with a dot) to ALL of your metrics
    metricFiltersExclude: [],     // OPTIONAL (array of regexes) any metrics matching these filters will be dropped. e.g, [/\.rate$/, /\.[^\.]*_99$/] would filter out counter rates and extra metrics for stats like upper_99, mean_99, etc.
    metricFiltersInclude: []      // OPTIONAL (array of regexes) any metrics _NOT_ matching at least one of these filters will be dropped
  }
}

Filtering Metrics

Metrics can be filtered with either the metricFiltersExclude or metricFiltersInclude options. Note that for a metric to be sent, it must match at least one include and no excludes. An empty or missing metricFiltersInclude option will allow all metrics (assuming the exclusion filter does not exclude any).

Enabling

This is already done if you are using our example configuration.

Otherwise, add statsd-instrumental-backend backend to the list of StatsD backends in the StatsD configuration file:

{
  backends: ["statsd-instrumental-backend"]
}

Start/restart the statsd daemon and your StatsD metrics should now be pushed to your Instrumental account.

NPM Dependencies

None

Development

Contributing:

  • Fork the project
  • Make your feature addition or bug fix
  • Commit. Do not mess with package.json, version, or history.
  • Send a pull request. Bonus points for topic branches.