serverless-plugin-cloudwatch
Advanced tools
Comparing version 0.1.1 to 0.1.2
{ | ||
"name": "serverless-plugin-cloudwatch", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"description": "Generate CloudWatch Dashboard including widgets with configured metrics", | ||
@@ -5,0 +5,0 @@ "main": "src/DashboardPlugin.js", |
@@ -22,9 +22,10 @@ 'use strict' | ||
constructor(serverless, options) { | ||
this.logger = msg => serverless.cli.log('[serverless-plugin-cloudwatch]: ' + msg) | ||
this.logger = msg => serverless.cli.log('[serverless-plugin-cloudwatch]: ' + msg); | ||
// Serverless service: whole serverless.yml | ||
this.service = serverless.service | ||
this.service = serverless.service; | ||
this.options = options; | ||
// for ex, eu-central-1 | ||
this.region = this.service.provider.region | ||
this.region = this.service.provider.region; | ||
this.stage = this.service.provider.stage | ||
this.stage = this.getDeploymentStage(); | ||
@@ -46,11 +47,11 @@ this.hooks = { | ||
addDashboard() { | ||
const dashboard = this.createDashboard() | ||
const dashboard = this.createDashboard(); | ||
if (!ObjectUtil.isEmpty(dashboard)) { | ||
const resourceName = 'ProjectOverviewDashboard' | ||
var dashboardResource = {} | ||
const resourceName = 'ProjectOverviewDashboard'; | ||
var dashboardResource = {}; | ||
dashboardResource[resourceName] = dashboard; | ||
const template = this.service.provider.compiledCloudFormationTemplate | ||
template.Resources = Object.assign(dashboardResource, template.Resources) | ||
this.service.provider.compiledCloudFormationTemplate = template | ||
const template = this.service.provider.compiledCloudFormationTemplate; | ||
template.Resources = Object.assign(dashboardResource, template.Resources); | ||
this.service.provider.compiledCloudFormationTemplate = template; | ||
} | ||
@@ -65,21 +66,21 @@ } | ||
// get dashboard config from serverless.yml | ||
const dashboardConfig = this.getDashboardConfig() | ||
const dynamoDBConfig = dashboardConfig.dynamoDB || {} | ||
const lambdaConfig = dashboardConfig.lambda || {} | ||
const s3Config = dashboardConfig.s3 || {} | ||
const apiGatewayConfig = dashboardConfig.apiGateway || {} | ||
const dashboardConfig = this.getDashboardConfig(); | ||
const dynamoDBConfig = dashboardConfig.dynamoDB || {}; | ||
const lambdaConfig = dashboardConfig.lambda || {}; | ||
const s3Config = dashboardConfig.s3 || {}; | ||
const apiGatewayConfig = dashboardConfig.apiGateway || {}; | ||
// get Resources (S3 AND DynamoDB) | ||
const serverlessResources = this.service.resources || {} | ||
const cfResources = serverlessResources.Resources || {} | ||
const serverlessResources = this.service.resources || {}; | ||
const cfResources = serverlessResources.Resources || {}; | ||
// get Lamda functions | ||
const functions = this.service.functions || {} | ||
const functions = this.service.functions || {}; | ||
// create new dashboard (only one for the current stage) | ||
const widgetFactory = new WidgetFactory(this.logger, this.region, dynamoDBConfig, lambdaConfig, s3Config, apiGatewayConfig, cfResources, functions) | ||
const dashboardWidgets = widgetFactory.createWidgets() | ||
const widgetFactory = new WidgetFactory(this.logger, this.region, dynamoDBConfig, lambdaConfig, s3Config, apiGatewayConfig, cfResources, functions); | ||
const dashboardWidgets = widgetFactory.createWidgets(); | ||
if (ArrayUtil.notEmpty(dashboardWidgets)) { | ||
const dashboardName = this.service.service + '-' + this.stage | ||
const dashboard = new Dashboard(dashboardName, dashboardWidgets) | ||
const dashboardName = this.service.service + '-' + this.stage; | ||
const dashboard = new Dashboard(dashboardName, dashboardWidgets); | ||
return dashboard.create(); | ||
@@ -95,7 +96,16 @@ } | ||
getDashboardConfig() { | ||
const customConfig = this.service.custom || {} | ||
return customConfig.dashboard || {} | ||
const customConfig = this.service.custom || {}; | ||
return customConfig.dashboard || {}; | ||
} | ||
/** | ||
* Get the stage properly resolved | ||
* See https://github.com/serverless/serverless/issues/2631 | ||
* | ||
* @return {string} - Stage option | ||
* */ | ||
getDeploymentStage() { | ||
return this.options.stage || 'dev' | ||
} | ||
} | ||
module.exports = DashboardPlugin |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34256
775