Skip to content

Commit 97e1498

Browse files
author
Pankaj Agrawal
committed
Single metrics capture utility
1 parent 77d2457 commit 97e1498

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
package software.amazon.lambda.powertools.metrics;
22

3+
import java.util.function.Consumer;
4+
35
import software.amazon.cloudwatchlogs.emf.logger.MetricsLogger;
6+
import software.amazon.cloudwatchlogs.emf.model.Unit;
47

58
public final class PowertoolsMetricsLogger {
69
private static MetricsLogger metricsLogger = new MetricsLogger();
710

811
public static MetricsLogger logger() {
912
return metricsLogger;
1013
}
14+
15+
public static void withSingleMetric(final String name,
16+
final double value,
17+
final Unit unit,
18+
final String namespace,
19+
final Consumer<MetricsLogger> logger) {
20+
MetricsLogger metricsLogger = new MetricsLogger();
21+
try {
22+
metricsLogger.setNamespace(namespace);
23+
metricsLogger.putMetric(name, value, unit);
24+
logger.accept(metricsLogger);
25+
} finally {
26+
metricsLogger.flush();
27+
}
28+
}
1129
}

powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/internal/LambdaMetricsAspectTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import static org.mockito.ArgumentMatchers.any;
1616
import static org.mockito.Mockito.verify;
1717
import static org.mockito.Mockito.when;
18-
import static org.mockito.MockitoAnnotations.initMocks;
18+
import static org.mockito.MockitoAnnotations.openMocks;
1919
import static software.amazon.cloudwatchlogs.emf.model.Unit.BYTES;
2020

2121
public class LambdaMetricsAspectTest {
@@ -30,7 +30,7 @@ public class LambdaMetricsAspectTest {
3030

3131
@BeforeEach
3232
void setUp() throws IllegalAccessException {
33-
initMocks(this);
33+
openMocks(this);
3434
setupContext();
3535
writeStaticField(PowertoolsMetricsLogger.class, "metricsLogger", logger, true);
3636
requestHandler = new PowertoolsMetricsEnabledHandler();

0 commit comments

Comments
 (0)