Skip to content

Commit 97cf069

Browse files
author
Eugene Cheung
authored
fix(MetricFactory): wrap search query dimensions with quotes to handle potential whitespace (#591)
--- _By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license_
1 parent fe0e226 commit 97cf069

File tree

7 files changed

+38
-35
lines changed

7 files changed

+38
-35
lines changed

lib/common/metric/MetricFactory.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,19 @@ export class MetricFactory {
150150
const finalPeriod =
151151
period ?? this.globalDefaults.period ?? DefaultMetricPeriod;
152152
const searchNamespace = this.getNamespaceWithFallback(namespace);
153+
const keysWithQuotations = Object.keys(dimensionsMap).map(
154+
(key) => `"${key}"`,
155+
);
153156
const namespacePlusDimensionKeys = [
154-
searchNamespace,
155-
...Object.keys(dimensionsMap),
157+
`"${searchNamespace}"`,
158+
...keysWithQuotations,
156159
].join(",");
157160
const metricSchema = `{${namespacePlusDimensionKeys}}`;
158161

159162
const dimensionKeysAndValues = Object.entries(
160163
this.removeUndefinedEntries(dimensionsMap),
161164
)
162-
.map(([key, value]) => `${key}="${value}"`)
165+
.map(([key, value]) => `"${key}"="${value}"`)
163166
.join(" ");
164167

165168
const expression = `SEARCH('${metricSchema} ${dimensionKeysAndValues} ${query}', '${statistic}', ${finalPeriod.toSeconds()})`;

test/common/metric/__snapshots__/MetricFactory.test.ts.snap

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/facade/__snapshots__/MonitoringAspect.test.ts.snap

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/facade/__snapshots__/MonitoringFacade.test.ts.snap

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)