24
24
import software .amazon .lambda .powertools .metrics .ValidationException ;
25
25
import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsColdStartEnabledHandler ;
26
26
import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsEnabledDefaultDimensionHandler ;
27
+ import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsEnabledDefaultNoDimensionHandler ;
27
28
import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsEnabledHandler ;
28
29
import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsEnabledStreamHandler ;
29
30
import software .amazon .lambda .powertools .metrics .handlers .PowertoolsMetricsExceptionWhenNoMetricsHandler ;
@@ -49,7 +50,6 @@ public class LambdaMetricsAspectTest {
49
50
private final PrintStream originalOut = System .out ;
50
51
private final ObjectMapper mapper = new ObjectMapper ();
51
52
private RequestHandler <Object , Object > requestHandler ;
52
- private RequestStreamHandler streamHandler ;
53
53
54
54
55
55
@ BeforeAll
@@ -80,7 +80,7 @@ public void metricsWithoutColdStart() {
80
80
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
81
81
internalWrapper .when (() -> getenv ("_X_AMZN_TRACE_ID" )).thenReturn ("Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1\" " );
82
82
83
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
83
+ MetricsUtils .defaultDimensions ( null );
84
84
requestHandler = new PowertoolsMetricsEnabledHandler ();
85
85
requestHandler .handleRequest ("input" , context );
86
86
@@ -154,14 +154,53 @@ public void metricsWithDefaultDimensionSpecified() {
154
154
}
155
155
}
156
156
157
+ @ Test
158
+ public void metricsWithDefaultNoDimensionSpecified () {
159
+ try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class );
160
+ MockedStatic <software .amazon .lambda .powertools .core .internal .SystemWrapper > internalWrapper = mockStatic (software .amazon .lambda .powertools .core .internal .SystemWrapper .class )) {
161
+
162
+ mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
163
+ internalWrapper .when (() -> getenv ("_X_AMZN_TRACE_ID" )).thenReturn ("Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1\" " );
164
+
165
+ requestHandler = new PowertoolsMetricsEnabledDefaultNoDimensionHandler ();
166
+
167
+ requestHandler .handleRequest ("input" , context );
168
+
169
+ assertThat (out .toString ().split ("\n " ))
170
+ .hasSize (2 )
171
+ .satisfies (s -> {
172
+ Map <String , Object > logAsJson = readAsJson (s [0 ]);
173
+
174
+ assertThat (logAsJson )
175
+ .containsEntry ("Metric2" , 1.0 )
176
+ .containsKey ("_aws" )
177
+ .containsEntry ("xray_trace_id" , "1-5759e988-bd862e3fe1be46a994272793" )
178
+ .containsEntry ("function_request_id" , "123ABC" );
179
+
180
+ Map <String , Object > aws = (Map <String , Object >) logAsJson .get ("_aws" );
181
+
182
+ assertThat (aws .get ("CloudWatchMetrics" ))
183
+ .asString ()
184
+ .contains ("Namespace=ExampleApplication" );
185
+
186
+ logAsJson = readAsJson (s [1 ]);
187
+
188
+ assertThat (logAsJson )
189
+ .containsEntry ("Metric1" , 1.0 )
190
+ .containsEntry ("function_request_id" , "123ABC" )
191
+ .containsKey ("_aws" );
192
+ });
193
+ }
194
+ }
195
+
157
196
@ Test
158
197
public void metricsWithColdStart () {
159
198
160
199
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
161
200
162
201
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
163
202
164
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
203
+ MetricsUtils .defaultDimensions ( null );
165
204
requestHandler = new PowertoolsMetricsColdStartEnabledHandler ();
166
205
167
206
requestHandler .handleRequest ("input" , context );
@@ -196,7 +235,7 @@ public void noColdStartMetricsWhenColdStartDone() {
196
235
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
197
236
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
198
237
199
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
238
+ MetricsUtils .defaultDimensions ( null );
200
239
requestHandler = new PowertoolsMetricsColdStartEnabledHandler ();
201
240
202
241
requestHandler .handleRequest ("input" , context );
@@ -241,8 +280,8 @@ public void metricsWithStreamHandler() throws IOException {
241
280
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
242
281
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
243
282
244
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
245
- streamHandler = new PowertoolsMetricsEnabledStreamHandler ();
283
+ MetricsUtils .defaultDimensions ( null );
284
+ RequestStreamHandler streamHandler = new PowertoolsMetricsEnabledStreamHandler ();
246
285
247
286
streamHandler .handleRequest (new ByteArrayInputStream (new byte []{}), new ByteArrayOutputStream (), context );
248
287
@@ -264,7 +303,7 @@ public void exceptionWhenNoMetricsEmitted() {
264
303
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
265
304
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
266
305
267
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
306
+ MetricsUtils .defaultDimensions ( null );
268
307
requestHandler = new PowertoolsMetricsExceptionWhenNoMetricsHandler ();
269
308
270
309
assertThatExceptionOfType (ValidationException .class )
@@ -279,7 +318,7 @@ public void noExceptionWhenNoMetricsEmitted() {
279
318
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
280
319
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
281
320
282
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
321
+ MetricsUtils .defaultDimensions ( null );
283
322
requestHandler = new PowertoolsMetricsNoExceptionWhenNoMetricsHandler ();
284
323
285
324
requestHandler .handleRequest ("input" , context );
@@ -299,7 +338,7 @@ public void noExceptionWhenNoMetricsEmitted() {
299
338
public void allowWhenNoDimensionsSet () {
300
339
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
301
340
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
302
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
341
+ MetricsUtils .defaultDimensions ( null );
303
342
304
343
requestHandler = new PowertoolsMetricsNoDimensionsHandler ();
305
344
requestHandler .handleRequest ("input" , context );
@@ -321,7 +360,7 @@ public void exceptionWhenTooManyDimensionsSet() {
321
360
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
322
361
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
323
362
324
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
363
+ MetricsUtils .defaultDimensions ( null );
325
364
326
365
requestHandler = new PowertoolsMetricsTooManyDimensionsHandler ();
327
366
@@ -336,7 +375,7 @@ public void metricsPublishedEvenHandlerThrowsException() {
336
375
try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class )) {
337
376
mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
338
377
339
- MetricsUtils .defaultDimensionSet ( new DimensionSet () );
378
+ MetricsUtils .defaultDimensions ( null );
340
379
requestHandler = new PowertoolsMetricsWithExceptionInHandler ();
341
380
342
381
assertThatExceptionOfType (IllegalStateException .class )
0 commit comments