No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
fixtures/www.google.com-443
src
test
.editorconfig
.gitignore
LICENSE
README.md
package.json
tsconfig.json
tslint.json

README.md

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