Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 2.3 KB

README.md

File metadata and controls

89 lines (57 loc) · 2.3 KB

hapi-cloudwatch

A hapi plugin for sending request response time metrics to AWS CloudWatch.

Build Status Coverage Status npm version Dependencies Status DevDependencies Status Known Vulnerabilities

Installation

npm install hapi-cloudwatch

Usage

To install this plugin on your Hapi server, do something similar to this:

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

var options = {};

server.register({ register: require('hapi-cloudwatch'), options }, function(err) {
  if (err) {
    console.log('error', 'Failed loading plugin: hapi-cloudwatch');
  }
});

Plugin Options

region

AWS region to send the metrics to.

Defaults to eu-west-1

environment

The primary dimension added to the CloudWatch metric

Defaults to process.env.NODE_ENV

enabled

Turns on/off the sending of metrics to CloudWatch

Defaults to true

metricsSentCallback

A function to call when metrics have been sent to CloudWatch.

Defaults to no-op.

Example

A Hapi route configured like this:

server.route({
  method: 'GET',
  path: '/products/{id}',
  handler: function(request, reply) {
    reply('Success!');
  }
});

and run with NODE_ENV=production npm start will send a metric to AWS CloudWatch with the following dimensions:

  • metric name: responseTime
  • environment: production
  • method: GET
  • statusCode: 200
  • path: /products/{id}

Here's an example of what can be graphed in CloudWatch with this metric:

Example CloudWatch Graph

Version Compatibility

Currently in use by me with with: Hapi 16.1.0 (Node v6)

I'll add tests for other hapi and node versions shortly