From 6aec44a791131fd311b32a656c80adb192488be1 Mon Sep 17 00:00:00 2001 From: Christine Cao Date: Mon, 12 Dec 2022 11:29:05 +0000 Subject: [PATCH] Remove unknown identifier warnings for metricsinsights alarms --- packages/@aws-cdk/aws-cloudwatch/lib/metric.ts | 2 +- packages/@aws-cdk/aws-cloudwatch/test/metric-math.test.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-cloudwatch/lib/metric.ts b/packages/@aws-cdk/aws-cloudwatch/lib/metric.ts index f3f9400712f02..f2a8093e27685 100644 --- a/packages/@aws-cdk/aws-cloudwatch/lib/metric.ts +++ b/packages/@aws-cdk/aws-cloudwatch/lib/metric.ts @@ -589,7 +589,7 @@ export class MathExpression implements IMetric { const warnings = []; - if (missingIdentifiers.length > 0) { + if (!this.expression.toUpperCase().match('\\s*SELECT\\s.*') && missingIdentifiers.length > 0) { warnings.push(`Math expression '${this.expression}' references unknown identifiers: ${missingIdentifiers.join(', ')}. Please add them to the 'usingMetrics' map.`); } diff --git a/packages/@aws-cdk/aws-cloudwatch/test/metric-math.test.ts b/packages/@aws-cdk/aws-cloudwatch/test/metric-math.test.ts index 480a25e3d748e..72e61cbd0a19a 100644 --- a/packages/@aws-cdk/aws-cloudwatch/test/metric-math.test.ts +++ b/packages/@aws-cdk/aws-cloudwatch/test/metric-math.test.ts @@ -75,6 +75,14 @@ describe('Metric Math', () => { expect(m.warnings).toContainEqual(expect.stringContaining("'m1 + m2' references unknown identifiers")); }); + test('metrics insights expression does not produce warning for unknown identifier', () => { + const m = new MathExpression({ + expression: "SELECT AVG(CpuUsage) FROM EC2 WHERE Instance = '123456'", + }); + + expect(m.warnings).toBeUndefined(); + }); + test('math expression referring to unknown expressions produces a warning, even when nested', () => { const m = new MathExpression({ expression: 'e1 + 5',