From a27cc7605b8751d9086df63e7389b54e8f423cdc Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Fri, 25 Mar 2022 18:23:35 -0300 Subject: [PATCH 1/4] feat: add support for external created API Gateway #215 --- README.md | 8 ++++++++ src/dashboards/index.js | 10 +++++++++- src/dashboards/widgets/api-gw/latency/numbers.js | 3 ++- src/dashboards/widgets/api-gw/latency/time-series.js | 3 ++- src/dashboards/widgets/api-gw/requests/numbers.js | 3 ++- src/dashboards/widgets/api-gw/requests/time-series.js | 3 ++- src/index.js | 4 +++- 7 files changed, 28 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8c3edf5..b5a8101 100644 --- a/README.md +++ b/README.md @@ -490,6 +490,14 @@ dashboards: - default ``` +Using external API Gateway: +```yaml +alarms: + dashboards: true + dashboardConfig: + apiName: 'my-api-name-here' +``` + ## License MIT © [A Cloud Guru](https://acloud.guru/) diff --git a/src/dashboards/index.js b/src/dashboards/index.js index 1b82d2e..654f989 100644 --- a/src/dashboards/index.js +++ b/src/dashboards/index.js @@ -5,7 +5,14 @@ const dashboards = { vertical: require('./configs/vertical.json'), }; -const createDashboard = (service, stage, region, functions, name) => { +const createDashboard = ( + service, + stage, + region, + functions, + name, + dashboardConfig +) => { const dashboard = dashboards[name]; if (!dashboard) { @@ -21,6 +28,7 @@ const createDashboard = (service, stage, region, functions, name) => { coordinates: w.coordinates, title: w.title, functions, + dashboardConfig, }; return widget.createWidget(config); diff --git a/src/dashboards/widgets/api-gw/latency/numbers.js b/src/dashboards/widgets/api-gw/latency/numbers.js index f8564d7..25491f2 100644 --- a/src/dashboards/widgets/api-gw/latency/numbers.js +++ b/src/dashboards/widgets/api-gw/latency/numbers.js @@ -1,5 +1,6 @@ const createWidget = (config) => { - const apiName = `${config.stage}-${config.service}`; + const apiName = + config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/dashboards/widgets/api-gw/latency/time-series.js b/src/dashboards/widgets/api-gw/latency/time-series.js index 6e7e6cf..1d91e8a 100644 --- a/src/dashboards/widgets/api-gw/latency/time-series.js +++ b/src/dashboards/widgets/api-gw/latency/time-series.js @@ -1,5 +1,6 @@ const createWidget = (config) => { - const apiName = `${config.stage}-${config.service}`; + const apiName = + config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/dashboards/widgets/api-gw/requests/numbers.js b/src/dashboards/widgets/api-gw/requests/numbers.js index 71cc70a..3c80809 100644 --- a/src/dashboards/widgets/api-gw/requests/numbers.js +++ b/src/dashboards/widgets/api-gw/requests/numbers.js @@ -1,5 +1,6 @@ const createWidget = (config) => { - const apiName = `${config.stage}-${config.service}`; + const apiName = + config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/dashboards/widgets/api-gw/requests/time-series.js b/src/dashboards/widgets/api-gw/requests/time-series.js index 7bb34f8..4c00568 100644 --- a/src/dashboards/widgets/api-gw/requests/time-series.js +++ b/src/dashboards/widgets/api-gw/requests/time-series.js @@ -1,5 +1,6 @@ const createWidget = (config) => { - const apiName = `${config.stage}-${config.service}`; + const apiName = + config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/index.js b/src/index.js index 6609061..8ffdb67 100644 --- a/src/index.js +++ b/src/index.js @@ -482,6 +482,7 @@ class AlertsPlugin { const provider = service.provider; const stage = this.options.stage; const region = this.options.region || provider.region; + const config = this.getConfig(); const dashboardTemplates = this.getDashboardTemplates( configDashboards, stage @@ -497,7 +498,8 @@ class AlertsPlugin { stage, region, functions, - d + d, + config.dashboardConfig ?? {} ); const cfResource = From 69b7851139c119995466af411aea9719eb82c678 Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Fri, 25 Mar 2022 18:40:31 -0300 Subject: [PATCH 2/4] fix: node 12 support --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 8ffdb67..cb8c6c1 100644 --- a/src/index.js +++ b/src/index.js @@ -499,7 +499,7 @@ class AlertsPlugin { region, functions, d, - config.dashboardConfig ?? {} + config.dashboardConfig ? config.dashboardConfig : {} ); const cfResource = From 0f437f11cd04e936d03a26af240a4e47bccb559a Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Fri, 25 Mar 2022 18:46:50 -0300 Subject: [PATCH 3/4] fix: node12 supprot --- src/dashboards/widgets/api-gw/latency/numbers.js | 5 +++-- src/dashboards/widgets/api-gw/latency/time-series.js | 5 +++-- src/dashboards/widgets/api-gw/requests/numbers.js | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/dashboards/widgets/api-gw/latency/numbers.js b/src/dashboards/widgets/api-gw/latency/numbers.js index 25491f2..757b2c6 100644 --- a/src/dashboards/widgets/api-gw/latency/numbers.js +++ b/src/dashboards/widgets/api-gw/latency/numbers.js @@ -1,6 +1,7 @@ const createWidget = (config) => { - const apiName = - config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; + const apiName = config.dashboardConfig.apiName + ? config.dashboardConfig.apiName + : `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/dashboards/widgets/api-gw/latency/time-series.js b/src/dashboards/widgets/api-gw/latency/time-series.js index 1d91e8a..6821d88 100644 --- a/src/dashboards/widgets/api-gw/latency/time-series.js +++ b/src/dashboards/widgets/api-gw/latency/time-series.js @@ -1,6 +1,7 @@ const createWidget = (config) => { - const apiName = - config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; + const apiName = config.dashboardConfig.apiName + ? config.dashboardConfig.apiName + : `${config.stage}-${config.service}`; const widget = { type: 'metric', diff --git a/src/dashboards/widgets/api-gw/requests/numbers.js b/src/dashboards/widgets/api-gw/requests/numbers.js index 3c80809..3fdc692 100644 --- a/src/dashboards/widgets/api-gw/requests/numbers.js +++ b/src/dashboards/widgets/api-gw/requests/numbers.js @@ -1,6 +1,7 @@ const createWidget = (config) => { - const apiName = - config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; + const apiName = config.dashboardConfig.apiName + ? config.dashboardConfig.apiName + : `${config.stage}-${config.service}`; const widget = { type: 'metric', From 206451b674a826ddf2e5ca435fe787ebfc2d3c6e Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Fri, 25 Mar 2022 18:47:03 -0300 Subject: [PATCH 4/4] fix: node12 support --- src/dashboards/widgets/api-gw/requests/time-series.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dashboards/widgets/api-gw/requests/time-series.js b/src/dashboards/widgets/api-gw/requests/time-series.js index 4c00568..42f9b4d 100644 --- a/src/dashboards/widgets/api-gw/requests/time-series.js +++ b/src/dashboards/widgets/api-gw/requests/time-series.js @@ -1,6 +1,7 @@ const createWidget = (config) => { - const apiName = - config.dashboardConfig.apiName ?? `${config.stage}-${config.service}`; + const apiName = config.dashboardConfig.apiName + ? config.dashboardConfig.apiName + : `${config.stage}-${config.service}`; const widget = { type: 'metric',