Serverless CloudWatch Dashboards Plugin

serverless MIT Licence

Serverless plugin to generate AWS CloudWatch dashboard for deployed lambdas

Requirements:

  • Serverless v1.12.x or higher
  • AWS provider

Setup

Installation

Install via npm in the root of your Serverless service:

npm install serverless-plugin-cloudwatch-dashboard

Add the plugin to the plugins array of your Serverless service in serverless.yml:

plugins:
  - serverless-plugin-cloudwatch-dashboard

Configuration

The plugin can be configured by adding a property called dashboard to the custom properties of the Serverless service. Following dashboards are currently supported:

Lambda Dashboards

The configuration can specify the lambda metrics together with the stats of the metrics to be added. The plugin will then generate one dashboard for each metric, with each dashboard containing the specified statistics for each lambda function.

Lambda dashboards can be globally activated/deactivated for all functions by adding an enabled flag to the configuration.

This is the minimum required configuration:

dashboard:
  lambda:
    enabled: true

The default configuration looks like this:

dashboard:
  lambda:
    metrics: [ Duration, Errors, Invocations, Throttles ]
    stats: [p99, p95, p90, p50]
    enabled: true

To gain maximum control over which functions to be included, you can disable lambda dashboards globally,

dashboard:
  lambda:
    enabled: false

and enable it only for specific functions, by setting the dashboard flag for those functions to true:

functions:
    myFunction:
      handler: some_handler
      dashboard: true

DynamoDB Dashboards

The configuration can specify the metrics for DynamoDB Tables and GlobalSecondaryIndexes to be added. The plugin will then generate a new dashboard containing one widget for each metric.

DynamoDB dashboards can be globally activated/deactivated for all tables by adding an enabled flag to the configuration.

This is the minimum required configuration:

dashboard:
  dynamoDB:
    enabled: true

The default configuration looks like this:

dashboard:
  dynamoDB:
    enabled: true
    metrics:
      - ProvisionedReadCapacityUnits
      - ConsumedReadCapacityUnits
      - ProvisionedWriteCapacityUnits
      - ConsumedWriteCapacityUnits

Contribute

Any contribution is more than welcome.

  • Clone the code
  • Install the dependencies with npm install
  • Create a feature branch git checkout -b new_feature
  • Lint with standard npm run lint
  • Create a pull request

License

This software is released under the MIT license. See the license file for more details.