Configuring 3rd-Party StatsD Services

 

Contents

Introduction

Grafana

Datadog

InfluxDB

Graphite

Hosted Graphite

AppDynamics

AWS Cloudwatch

New Relic

Librato

Zabbix

Anodot

Sentry

 

Introduction

StatsD sends metrics into any graphing or alerting backend application using backend extensions. Backend is a .js file that communicates with the target service, for example Graphite. The credentials required to connect with the remote service (i.e. address, API key, password..) is placed in the config.json file that is sent as a parameter to StatsD.

The config.json has pre-populated configuration samples for all the services listed here. Uncomment the sections relevant to the services you want to use, and fill in the your credentials. StatsD configuration data is personal to your machine, and is protected.

If you’re using the prepackaged StatsD node (Linux only), all the relevant backend files have been provided. If you’re using your own StatsD node, make sure you’ve installed the appropriate StatsD backend for any of the following services (click to jump to instructions):

Grafana, Datadog, InfluxDB, Graphite, Hosted Graphite, AppDynamics, AWS Cloudwatch, New Relic, Librato, Zabbix, Anodot, Sentry

 

Grafana

Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite and InfluxDB.

OverOps supports sending data via StatsD using the InfluxDB and Graphite extensions.

 

Datadog

Datadog is a service which aggregates metrics and events across the full devops stack.

Configuring the extension:

{
 backends: ["statsd-datadog-backend"] // identify this as a Datadog backend
 datadogApiKey: "your_api_key", // Your API key. See here -
                                //app.datadoghq.com/account/settings#api

}

Learn more about additional Datadog options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:  npm install statsd-datadog-backend

 

InfluxDB

InfluxDB is designed to track data from tens of thousands of sensors all sampling at rates of once a second or more.

Configuring the extension:

{
 backends: ["statsd-influxdb-backend"] // identify this as an InfluxDB backend
 influxdb: {
   host: '127.0.0.1',   // InfluxDB host
   port: 8086,          // InfluxDB port
   version: 0.9,        // InfluxDB version
   database: 'dbname',  // InfluxDB database instance (required)
   flush: {
     enable: true       // Enable regular flush strategy
   },
 },
}

Learn more about additional InfluxDB options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:  npm install statsd-influxdb-backend

 

Graphite

Graphite is a highly scalable real-time graphing system. Graphite processes, stores and visualizes numeric time-series data through a web interface.

Configuring the extension:

{
 backends: [ "./backends/graphite" ]   // identify this backend as Graphite
 graphitePort: 2003,                   // port of Graphite server
 graphiteHost: "graphite.example.com", // hostname or IP of Graphite server
 deleteCounters: true,
 graphite: {  // Graphite tweaks for Takipi
   prefixCounter: "",
   prefixGauge: "",
   globalPrefix: "",
   legacyNamespace: false
 }
}

Learn more about additional Graphite options here.

Graphite is the default backend for StatsD, and as such no .js extension needs to be installed.

 

Hosted Graphite

Hosted Graphite is a monitoring service which visualizes data produced by your apps using Grafana dashboards.

Configuring the extension:

{
 backends: ['./backends/graphite'] // identify this backend as Hosted Graphite
 graphiteHost: "carbon.hostedgraphite.com",
 deleteCounters: true,
 graphite: {
   prefixCounter: "",
   prefixGauge: "",
   globalPrefix: "",
   legacyNamespace: false,
   globalPrefix: "your-api-key-here" // Your hosted graphite
 }
}

Learn more about additional Hosted Graphite options here.

Installing the extension:

Hosted Graphite uses the original StatsD Graphite backend already included in all StatsD installations.

 

AppDynamics

AppDynamics gives an integrated view of real-time application performance, user experiences, and infrastructure capacity.

Note: Make sure Machine agent API is on. For more information.

Configuring the extension:

{
 backends: ["statsd-appdynamics-backend"] //identify as AppDynamics backend
 appdynamics:
 {
   //URL to the Machine Agent listener
   base_url: 'http://localhost:8081/machineagent/metrics',
   hide_statsd: false // enable to suppress the statsd.bad_lines_seen
                      // and statsd.packets_received metrics
 },
}

Learn more about additional App Dynamics options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:npm install statsd-appdynamics-backend

 

AWS Cloudwatch

Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS.

Configuring the extension:

{
 backends: [ "aws-cloudwatch-statsd-backend" ], // AWS CloudWatch backend
 cloudwatch: {
   region: "YOUR_REGION",              //Example: EU_WEST_1, US_EAST_1
   accessKeyId: 'YOUR_ACCESS_KEY_ID',  //See here: http://amzn.to/1sT9aw0
   secretAccessKey: 'YOUR_SECRET_ACCESS_KEY'  
 }
}

Learn more about additional AWS CloudWatch options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:npm install aws-cloudwatch-statsd-backend

 

New Relic

A software analytics tool suite used by developers, ops, and software companies to understand how your applications are performing in development and production.

Configuring the extension:

{
 backends: ['statsd-newrelic-backend'],    //identify as NewRelic backend
 newRelicLicense: 'YOUR_LICENSE_KEY_HERE', //API Key - http://bit.ly/1MJdEBR
 newRelicApp: 'YOUR_APP_NAME_HERE'
}

Learn more about additional New Relic options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:npm install statsd-newrelic-backend

 

Librato

Librato is a real-time operations analytics service that accepts metrics from any source for aggregation and transformation, anomaly detection, alerting, visual analysis and storage.

Configuring the extension:

{
 backends: ["statsd-librato-backend"] // identify this as a Librato backend
 librato: {
   email:  "myemail@example.com", // the Librato account email
   token:  "API_KEY_TOKEN",       // api key from the Librato account page.
   source: "takipi"               // a logical identifier for this metrics group
 },
}

Learn more about additional Librato options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:npm install statsd-librato-backend

 

Zabbix

Zabbix is an enterprise-level software designed for real-time monitoring of millions of metrics collected from tens of thousands of servers, virtual machines and network devices.

Configuring the extension:

{
 backends: ["statsd-zabbix-backend"]     // Identify this as a Zabbix backend
 zabbixPort: 10051,                      // Zabbix port
 zabbixHost: "localhost",                // Zabbix host
 zabbixSender: "/usr/bin/zabbix_sender", // Zabbix sender
}

Learn more about additional Zabbix options here.

Installing the extension:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:npm install statsd-zabbix-backend

 

Anodot

Anodot is a service which captures data to detect anomalies and group them into one event which tells a single story.

Configuring the extension:

{
 backends: ["statsd-anodot-backend"] //identify this as an Anodot backend
 anodotApiToken: "API_KEY",   // The API key
 anodotApiHost: “<api_host”>, // The API host
}

Learn more about additional Anodot options here.

Installing the backend:

If you’re using the OverOps supplied StatsD node, the StatsD backend has already been installed. Otherwise run:  npm install statsd-anodot-backend

 

Sentry

Sentry is an exception tracing service that gives you insight into the errors that affect your customers.

To set up Sentry use the alerting integration.

Have more questions? Submit a request