From 3333a1b68c2eba1f9c7ab89772868d58ffbe87c8 Mon Sep 17 00:00:00 2001 From: Markus Siebert Date: Mon, 14 Mar 2022 13:56:19 +0100 Subject: [PATCH 01/11] feat: implement additional props --- packages/@aws-cdk/aws-cloudwatch/README.md | 14 ++++++ .../aws-cloudwatch/lib/alarm-status-widget.ts | 43 +++++++++++++++++++ .../test/alarm-status-widget.test.ts | 35 ++++++++++++++- 3 files changed, 91 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/README.md b/packages/@aws-cdk/aws-cloudwatch/README.md index 37a31f636b3ad..fd9e71e0cc28e 100644 --- a/packages/@aws-cdk/aws-cloudwatch/README.md +++ b/packages/@aws-cdk/aws-cloudwatch/README.md @@ -380,6 +380,20 @@ dashboard.addWidgets(new cloudwatch.AlarmWidget({ })); ``` +An alarm widget only showing alarms firing, sorted by state and timestamp: + +```ts +declare const dashboard: cloudwatch.Dashboard; +declare const errorAlarm: cloudwatch.Alarm; + +dashboard.addWidgets(new cloudwatch.AlarmWidget({ + title: "Errors", + alarm: errorAlarm, + sortBy: cloudwatch.AlarmStatusWidgetSortBy.STATE_UPDATED_TIMESTAMP, + states: [cloudwatch.AlarmState.ALARM], +})); +``` + ### Single value widget A single-value widget shows the latest value of a set of metrics (as opposed diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index 3562a0b9cba6b..8a349e2286b8e 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -1,6 +1,29 @@ import { IAlarm } from './alarm-base'; +import { AlarmState } from './alarm-rule'; import { ConcreteWidget } from './widget'; +export enum AlarmStatusWidgetSortBy { + + /** + * Choose DEFAULT to sort them in alphabetical order by alarm name. + */ + DEFAULT = 'default', + + /** + * Choose STATE_UPDATED_TIMESTAMP to sort them first by alarm state, with alarms in ALARM state first, + * INSUFFICIENT_DATA alarms next, and OK alarms last. + * Within each group, the alarms are sorted by when they last changed state, with more recent state changes listed first. + */ + STATE_UPDATED_TIMESTAMP = 'stateUpdatedTimestamp', + + /** + * Choose TIMESTAMP to sort them by the time when the alarms most recently changed state, + * no matter the current alarm state. + * The alarm that changed state most recently is listed first. + */ + TIMESTAMP = 'timestamp', +} + /** * Properties for an Alarm Status Widget */ @@ -27,6 +50,24 @@ export interface AlarmStatusWidgetProps { * @default 3 */ readonly height?: number; + + /** + * Specifies how to sort the alarms in the widget. + * + * @default DEFAULT + */ + readonly sortBy?: AlarmStatusWidgetSortBy; + + /** + * Use this field to filter the list of alarms displayed in the widget to only those alarms currently in the specified states. + * You can specify one or more alarm states in the value for this field. + * The alarm states that you can specify are ALARM, INSUFFICIENT_DATA, and OK. + * + * If you omit this field or specify an empty array, all the alarms specifed in alarms are displayed. + * + * @default - [] - all the alarms specifed in alarms are displayed. + */ + readonly states?: AlarmState[]; } /** @@ -56,6 +97,8 @@ export class AlarmStatusWidget extends ConcreteWidget { properties: { title: this.props.title ? this.props.title : 'Alarm Status', alarms: this.props.alarms.map((alarm) => alarm.alarmArn), + states: this.props.states ?? [], + sortBy: AlarmStatusWidgetSortBy.DEFAULT, }, }, ]; diff --git a/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts b/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts index 3c771ba47ea05..337ffac2f169e 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts +++ b/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts @@ -1,5 +1,5 @@ import { Stack } from '@aws-cdk/core'; -import { Metric, Alarm, AlarmStatusWidget } from '../lib'; +import { Metric, Alarm, AlarmStatusWidget, AlarmStatusWidgetSortBy, AlarmState } from '../lib'; describe('Alarm Status Widget', () => { test('alarm status widget', () => { // GIVEN @@ -25,10 +25,43 @@ describe('Alarm Status Widget', () => { properties: { title: 'Alarm Status', alarms: [{ 'Fn::GetAtt': ['Alarm7103F465', 'Arn'] }], + sortBy: 'default', + states: [], }, }, ]); + }); + test('alarm status widget custom props', () => { + // GIVEN + const stack = new Stack(); + const metric = new Metric({ namespace: 'CDK', metricName: 'Test' }); + const alarm = new Alarm(stack, 'Alarm', { + metric, + threshold: 1, + evaluationPeriods: 1, + }); + + // WHEN + const widget = new AlarmStatusWidget({ + alarms: [alarm], + sortBy: AlarmStatusWidgetSortBy.STATE_UPDATED_TIMESTAMP, + states: [AlarmState.ALARM], + }); + // THEN + expect(stack.resolve(widget.toJson())).toEqual([ + { + type: 'alarm', + width: 6, + height: 3, + properties: { + title: 'Alarm Status', + alarms: [{ 'Fn::GetAtt': ['Alarm7103F465', 'Arn'] }], + sortBy: 'stateUpdatedTimestamp', + states: ['ALARM'], + }, + }, + ]); }); }); From 5e768481f2b8f115d97404ed4da14a77c0c4f1ce Mon Sep 17 00:00:00 2001 From: Markus Siebert Date: Mon, 14 Mar 2022 14:26:39 +0100 Subject: [PATCH 02/11] fix: linting issues --- .../aws-cloudwatch/lib/alarm-status-widget.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index 8a349e2286b8e..f978e2f38384e 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -2,6 +2,10 @@ import { IAlarm } from './alarm-base'; import { AlarmState } from './alarm-rule'; import { ConcreteWidget } from './widget'; + +/** + * The sort possibilities for AlarmStatusWidgets + */ export enum AlarmStatusWidgetSortBy { /** @@ -53,18 +57,18 @@ export interface AlarmStatusWidgetProps { /** * Specifies how to sort the alarms in the widget. - * + * * @default DEFAULT */ readonly sortBy?: AlarmStatusWidgetSortBy; /** - * Use this field to filter the list of alarms displayed in the widget to only those alarms currently in the specified states. - * You can specify one or more alarm states in the value for this field. + * Use this field to filter the list of alarms displayed in the widget to only those alarms currently in the specified states. + * You can specify one or more alarm states in the value for this field. * The alarm states that you can specify are ALARM, INSUFFICIENT_DATA, and OK. - * + * * If you omit this field or specify an empty array, all the alarms specifed in alarms are displayed. - * + * * @default - [] - all the alarms specifed in alarms are displayed. */ readonly states?: AlarmState[]; From b9f3010d6b8b136972d5c878576a7cf0d9225790 Mon Sep 17 00:00:00 2001 From: markussiebert Date: Mon, 14 Mar 2022 14:40:49 +0100 Subject: [PATCH 03/11] fix: allow sortBy --- packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index f978e2f38384e..b7110524859ce 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -102,7 +102,7 @@ export class AlarmStatusWidget extends ConcreteWidget { title: this.props.title ? this.props.title : 'Alarm Status', alarms: this.props.alarms.map((alarm) => alarm.alarmArn), states: this.props.states ?? [], - sortBy: AlarmStatusWidgetSortBy.DEFAULT, + sortBy: this.props.sortBy ?? AlarmStatusWidgetSortBy.DEFAULT, }, }, ]; From cc5d211f2d5c66b9ca55459f17da03baf3152645 Mon Sep 17 00:00:00 2001 From: Markus Siebert Date: Mon, 14 Mar 2022 18:13:41 +0100 Subject: [PATCH 04/11] fix: README --- packages/@aws-cdk/aws-cloudwatch/README.md | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/README.md b/packages/@aws-cdk/aws-cloudwatch/README.md index fd9e71e0cc28e..682d3b30c55b0 100644 --- a/packages/@aws-cdk/aws-cloudwatch/README.md +++ b/packages/@aws-cdk/aws-cloudwatch/README.md @@ -380,20 +380,6 @@ dashboard.addWidgets(new cloudwatch.AlarmWidget({ })); ``` -An alarm widget only showing alarms firing, sorted by state and timestamp: - -```ts -declare const dashboard: cloudwatch.Dashboard; -declare const errorAlarm: cloudwatch.Alarm; - -dashboard.addWidgets(new cloudwatch.AlarmWidget({ - title: "Errors", - alarm: errorAlarm, - sortBy: cloudwatch.AlarmStatusWidgetSortBy.STATE_UPDATED_TIMESTAMP, - states: [cloudwatch.AlarmState.ALARM], -})); -``` - ### Single value widget A single-value widget shows the latest value of a set of metrics (as opposed @@ -450,6 +436,20 @@ dashboard.addWidgets( ); ``` +An alarm status widget only showing firing alarms, sorted by state and timestamp: + +```ts +declare const dashboard: cloudwatch.Dashboard; +declare const errorAlarm: cloudwatch.Alarm; + +dashboard.addWidgets(new cloudwatch.AlarmStatusWidget({ + title: "Errors", + alarms: [errorAlarm], + sortBy: cloudwatch.AlarmStatusWidgetSortBy.STATE_UPDATED_TIMESTAMP, + states: [cloudwatch.AlarmState.ALARM], +})); +``` + ### Query results widget A `LogQueryWidget` shows the results of a query from Logs Insights: From f6a725cfa31f55ee2c672e8f0f8afaf2d2f9ed7b Mon Sep 17 00:00:00 2001 From: markussiebert Date: Wed, 23 Mar 2022 11:12:22 +0100 Subject: [PATCH 05/11] Update packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts Co-authored-by: Madeline Kusters <80541297+madeline-k@users.noreply.github.com> --- packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index b7110524859ce..2ed41ac78cdcb 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -69,7 +69,7 @@ export interface AlarmStatusWidgetProps { * * If you omit this field or specify an empty array, all the alarms specifed in alarms are displayed. * - * @default - [] - all the alarms specifed in alarms are displayed. + * @default - all the alarms specified in alarms are displayed. */ readonly states?: AlarmState[]; } From 64725c19c184a5702a7e76299116331b2193312c Mon Sep 17 00:00:00 2001 From: markussiebert Date: Wed, 23 Mar 2022 11:12:34 +0100 Subject: [PATCH 06/11] Update packages/@aws-cdk/aws-cloudwatch/README.md Co-authored-by: Madeline Kusters <80541297+madeline-k@users.noreply.github.com> --- packages/@aws-cdk/aws-cloudwatch/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/README.md b/packages/@aws-cdk/aws-cloudwatch/README.md index 682d3b30c55b0..8404c6ce9ad7a 100644 --- a/packages/@aws-cdk/aws-cloudwatch/README.md +++ b/packages/@aws-cdk/aws-cloudwatch/README.md @@ -444,7 +444,7 @@ declare const errorAlarm: cloudwatch.Alarm; dashboard.addWidgets(new cloudwatch.AlarmStatusWidget({ title: "Errors", - alarms: [errorAlarm], + alarms: [errorAlarm], sortBy: cloudwatch.AlarmStatusWidgetSortBy.STATE_UPDATED_TIMESTAMP, states: [cloudwatch.AlarmState.ALARM], })); From abb8f4c29622c57be274e6580c7284f1d0df2d88 Mon Sep 17 00:00:00 2001 From: markussiebert Date: Wed, 23 Mar 2022 11:12:41 +0100 Subject: [PATCH 07/11] Update packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts Co-authored-by: Madeline Kusters <80541297+madeline-k@users.noreply.github.com> --- packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index 2ed41ac78cdcb..da7de6ca6eefe 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -58,7 +58,7 @@ export interface AlarmStatusWidgetProps { /** * Specifies how to sort the alarms in the widget. * - * @default DEFAULT + * @default - alphabetical order */ readonly sortBy?: AlarmStatusWidgetSortBy; From ac7d50c9dd0ac0ee316cb55d51b70dde82bb8739 Mon Sep 17 00:00:00 2001 From: Markus Date: Wed, 23 Mar 2022 18:51:55 +0100 Subject: [PATCH 08/11] fix: don't set unnecessary defaults --- packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts index da7de6ca6eefe..852fe4051ac5f 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/alarm-status-widget.ts @@ -101,8 +101,8 @@ export class AlarmStatusWidget extends ConcreteWidget { properties: { title: this.props.title ? this.props.title : 'Alarm Status', alarms: this.props.alarms.map((alarm) => alarm.alarmArn), - states: this.props.states ?? [], - sortBy: this.props.sortBy ?? AlarmStatusWidgetSortBy.DEFAULT, + states: this.props.states, + sortBy: this.props.sortBy, }, }, ]; From 4c3f996c1dd56ed3eccfb0b44b878ff12a4bc5b7 Mon Sep 17 00:00:00 2001 From: Markus Date: Wed, 23 Mar 2022 18:53:11 +0100 Subject: [PATCH 09/11] fix tests --- .../@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts b/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts index 337ffac2f169e..31cb33c724237 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts +++ b/packages/@aws-cdk/aws-cloudwatch/test/alarm-status-widget.test.ts @@ -25,8 +25,6 @@ describe('Alarm Status Widget', () => { properties: { title: 'Alarm Status', alarms: [{ 'Fn::GetAtt': ['Alarm7103F465', 'Arn'] }], - sortBy: 'default', - states: [], }, }, ]); From 51108dbcf1fc12905ea3d27897f2e6d6a76aaaad Mon Sep 17 00:00:00 2001 From: Markus Date: Wed, 23 Mar 2022 20:25:29 +0100 Subject: [PATCH 10/11] feat: add some integ test --- .../integ.alarm-and-dashboard.expected.json | 25 ++++++++++++------- .../test/integ.alarm-and-dashboard.ts | 4 +++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json index cdd7382b40f17..3a936ae9221e4 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json +++ b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json @@ -45,7 +45,14 @@ "Arn" ] }, - "\"]},\"yAxis\":{}}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":8,\"properties\":{\"view\":\"timeSeries\",\"title\":\"More messages in queue with alarm annotation\",\"region\":\"", + "\"]},\"yAxis\":{}}},{\"type\":\"alarm\",\"width\":6,\"height\":3,\"x\":0,\"y\":8,\"properties\":{\"title\":\"Messages in queue\",\"alarms\":[\"", + { + "Fn::GetAtt": [ + "Alarm7103F465", + "Arn" + ] + }, + "\"]}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":11,\"properties\":{\"view\":\"timeSeries\",\"title\":\"More messages in queue with alarm annotation\",\"region\":\"", { "Ref": "AWS::Region" }, @@ -56,7 +63,7 @@ "QueueName" ] }, - "\"]],\"annotations\":{\"horizontal\":[{\"label\":\"ApproximateNumberOfMessagesVisible >= 100 for 2 datapoints within 15 minutes\",\"value\":100,\"yAxis\":\"left\"}]},\"yAxis\":{}}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":14,\"properties\":{\"view\":\"singleValue\",\"title\":\"Current messages in queue\",\"region\":\"", + "\"]],\"annotations\":{\"horizontal\":[{\"label\":\"ApproximateNumberOfMessagesVisible >= 100 for 2 datapoints within 15 minutes\",\"value\":100,\"yAxis\":\"left\"}]},\"yAxis\":{}}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":17,\"properties\":{\"view\":\"singleValue\",\"title\":\"Current messages in queue\",\"region\":\"", { "Ref": "AWS::Region" }, @@ -67,27 +74,27 @@ "QueueName" ] }, - "\"]]}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":17,\"properties\":{\"view\":\"table\",\"title\":\"Errors in my log group\",\"region\":\"", + "\"]]}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":20,\"properties\":{\"view\":\"table\",\"title\":\"Errors in my log group\",\"region\":\"", { "Ref": "AWS::Region" }, - "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":23,\"properties\":{\"view\":\"bar\",\"title\":\"Errors in my log group - bar\",\"region\":\"", + "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":26,\"properties\":{\"view\":\"bar\",\"title\":\"Errors in my log group - bar\",\"region\":\"", { "Ref": "AWS::Region" }, - "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":29,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Errors in my log group - line\",\"region\":\"", + "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":32,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Errors in my log group - line\",\"region\":\"", { "Ref": "AWS::Region" }, - "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\",\"stacked\":false}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":35,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Errors in my log group - stacked\",\"region\":\"", + "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\",\"stacked\":false}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":38,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Errors in my log group - stacked\",\"region\":\"", { "Ref": "AWS::Region" }, - "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\",\"stacked\":true}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":41,\"properties\":{\"view\":\"pie\",\"title\":\"Errors in my log group - pie\",\"region\":\"", + "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\",\"stacked\":true}},{\"type\":\"log\",\"width\":6,\"height\":6,\"x\":0,\"y\":44,\"properties\":{\"view\":\"pie\",\"title\":\"Errors in my log group - pie\",\"region\":\"", { "Ref": "AWS::Region" }, - "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":47,\"properties\":{\"view\":\"singleValue\",\"title\":\"Sent message size\",\"region\":\"", + "\",\"query\":\"SOURCE 'my-log-group' | fields @message\\n | filter @message like /Error/\"}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":50,\"properties\":{\"view\":\"singleValue\",\"title\":\"Sent message size\",\"region\":\"", { "Ref": "AWS::Region" }, @@ -98,7 +105,7 @@ "QueueName" ] }, - "\"]],\"singleValueFullPrecision\":false}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":50,\"properties\":{\"view\":\"singleValue\",\"title\":\"Sent message size with full precision\",\"region\":\"", + "\"]],\"singleValueFullPrecision\":false}},{\"type\":\"metric\",\"width\":6,\"height\":3,\"x\":0,\"y\":53,\"properties\":{\"view\":\"singleValue\",\"title\":\"Sent message size with full precision\",\"region\":\"", { "Ref": "AWS::Region" }, diff --git a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.ts b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.ts index 799dad893e227..d76f441d3c28c 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.ts +++ b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.ts @@ -45,6 +45,10 @@ dashboard.addWidgets(new cloudwatch.AlarmWidget({ title: 'Messages in queue', alarm, })); +dashboard.addWidgets(new cloudwatch.AlarmStatusWidget({ + title: 'Firing alarms', + alarms: [alarm], +})); dashboard.addWidgets(new cloudwatch.GraphWidget({ title: 'More messages in queue with alarm annotation', left: [numberOfMessagesVisibleMetric], From 0a0c804344416519b7b32e5efd99d8fc417e7b3c Mon Sep 17 00:00:00 2001 From: Markus Date: Wed, 23 Mar 2022 21:22:51 +0100 Subject: [PATCH 11/11] fix tst --- .../aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json index 3a936ae9221e4..ab719f5952e61 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json +++ b/packages/@aws-cdk/aws-cloudwatch/test/integ.alarm-and-dashboard.expected.json @@ -45,7 +45,7 @@ "Arn" ] }, - "\"]},\"yAxis\":{}}},{\"type\":\"alarm\",\"width\":6,\"height\":3,\"x\":0,\"y\":8,\"properties\":{\"title\":\"Messages in queue\",\"alarms\":[\"", + "\"]},\"yAxis\":{}}},{\"type\":\"alarm\",\"width\":6,\"height\":3,\"x\":0,\"y\":8,\"properties\":{\"title\":\"Firing alarms\",\"alarms\":[\"", { "Fn::GetAtt": [ "Alarm7103F465",