Skip to content

Commit e6e2eb0

Browse files
jeromevdlJason Harris
authored and
Jason Harris
committed
fix #1500 (#1506)
1 parent 494d73f commit e6e2eb0

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

Diff for: powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/MetricsUtils.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,12 @@ private static void captureRequestAndTraceId(MetricsLogger metricsLogger) {
178178

179179
private static String defaultNameSpace() {
180180
MetricsContext context = MetricsLoggerHelper.metricsContext();
181-
return "aws-embedded-metrics".equals(context.getNamespace()) ?
182-
SystemWrapper.getenv("POWERTOOLS_METRICS_NAMESPACE") : context.getNamespace();
181+
if ("aws-embedded-metrics".equals(context.getNamespace())) {
182+
String namespace = SystemWrapper.getenv("POWERTOOLS_METRICS_NAMESPACE");
183+
return namespace != null ? namespace : "aws-embedded-metrics";
184+
} else {
185+
return context.getNamespace();
186+
}
183187
}
184188

185189
private static Optional<String> awsRequestId() {

Diff for: powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/MetricsLoggerTest.java

+31
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,37 @@ void singleMetricsCaptureUtility() {
112112
.containsEntry("Dimension1", "Value1")
113113
.containsKey("_aws")
114114
.containsEntry("xray_trace_id", "1-5759e988-bd862e3fe1be46a994272793");
115+
116+
Map<String, Object> aws = (Map<String, Object>) logAsJson.get("_aws");
117+
118+
assertThat(aws.get("CloudWatchMetrics"))
119+
.asString()
120+
.contains("Namespace=test");
121+
});
122+
}
123+
}
124+
125+
@Test
126+
void singleMetricsCaptureUtilityWithNullNamespace() {
127+
try (MockedStatic<SystemWrapper> mocked = mockStatic(SystemWrapper.class);
128+
MockedStatic<software.amazon.lambda.powertools.core.internal.SystemWrapper> internalWrapper = mockStatic(
129+
software.amazon.lambda.powertools.core.internal.SystemWrapper.class)) {
130+
mocked.when(() -> SystemWrapper.getenv("AWS_EMF_ENVIRONMENT")).thenReturn("Lambda");
131+
// POWERTOOLS_METRICS_NAMESPACE is not defined
132+
133+
MetricsUtils.withSingleMetric("Metric1", 1, Unit.COUNT,
134+
metricsLogger -> metricsLogger.setDimensions(DimensionSet.of("Dimension1", "Value1")));
135+
136+
assertThat(out.toString())
137+
.satisfies(s ->
138+
{
139+
Map<String, Object> logAsJson = readAsJson(s);
140+
141+
Map<String, Object> aws = (Map<String, Object>) logAsJson.get("_aws");
142+
143+
assertThat(aws.get("CloudWatchMetrics"))
144+
.asString()
145+
.contains("Namespace=aws-embedded-metrics");
115146
});
116147
}
117148
}

0 commit comments

Comments
 (0)