Skip to content

Latest commit

 

History

History
91 lines (76 loc) · 2.6 KB

README.md

File metadata and controls

91 lines (76 loc) · 2.6 KB

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