serverless-datadog-metrics
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

serverless-datadog-metrics

This library logs useful metrics from AWS Lambda functions, so that they can be accumulated via Datadog's AWS Lambda integration. See Related Documents below.

  1. Confilgure Datadog AWS Integration

TIP: Add an account tag to identify metrics per AWS account: account:<human readable name>

  1. Install library:

npm install --save serverless-datadog-metrics

  1. Integrate monitoring:

Wrap the handler function.

const monitor = require('serverless-datadog-metrics').monitor;

exports.handler = monitor(
  function(event, context, callback) {
    // . . .
    callback();
  }
)

Initialize some additional environment variables.

 environment:
   ACCOUNT_NAME: ${opt:account}
   SERVERLESS_STAGE: ${opt:stage}
   SERVERLESS_PROJECT: ${self:service}
   MONITOR_ADVANCED: true
  1. Record custom metrics as needed:
const metrics = require('serverless-datadog-metrics');

metrics.count('custom.count', 1);
metrics.gauge('custom.gauge', 2);
metrics.histogram('custom.histogram', 3);
metrics.check('custom.check', 0);
metrics.error(err);

const timer = new metrics.Timer('custom.timer');
sleep(1);
timer.checkpoint('cp1');
sleep(1);
timer.end();

Metrics

These metrics are automatically collected.

  • Lambda
    • aws.lambda.coldstart.count (count)
    • aws.lambda.handler (histogram)
    • aws.lambda.handler.error.count (count)
    • aws.lambda.check (check)
  • Outbound HTTP Requests
    • http.request (histogram)
    • http.request.4xxerror (count)
    • http.request.5xxerror (count)
  • System
    • node.process.uptime (gauge)
    • node.mem.heap.utilization (gauge)
    • node.mem.os.utilization (gauge)
    • node.cpu.utilization (gauge)
    • Optional (process.env.MONITOR_ADVANCED === 'true')
      • node.os.uptime (gauge)
      • node.mem.rss (gauge)
      • node.mem.heap.free (gauge)
      • node.mem.heap.used (gauge)
      • node.mem.heap.total (gauge)
      • node.mem.os.free (gauge)
      • node.mem.os.used (gauge)
      • node.mem.os.total (gauge)
      • node.cpu.elapsed.user (gauge)
      • node.cpu.elapsed.system (gauge)
      • node.os.loadavg.1m (gauge)
      • node.os.loadavg.5m (gauge)
      • node.os.loadavg.15m (gauge)

Related Documentation

Package Sidebar

Install

npm i serverless-datadog-metrics

Weekly Downloads

58

Version

1.0.1

License

MIT

Unpacked Size

30.2 kB

Total Files

24

Last publish

Collaborators

  • jgilbert01