A hapi plugin for sending request response time metrics to AWS CloudWatch.
npm install hapi-cloudwatch
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');
}
});
AWS region to send the metrics to.
Defaults to eu-west-1
The primary dimension added to the CloudWatch metric
Defaults to process.env.NODE_ENV
Turns on/off the sending of metrics to CloudWatch
Defaults to true
A function to call when metrics have been sent to CloudWatch.
Defaults to no-op.
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:
I'll add tests for other hapi and node versions shortly