Skip to content

Commit 41547ac

Browse files
authored
Use common metrics code and fix bug (#433)
* Use common metrics code and fix bug * Fix tests * Fix linting order
1 parent e75446d commit 41547ac

2 files changed

Lines changed: 19 additions & 21 deletions

File tree

lambdas/update-letter-queue/src/__tests__/update-letter-queue.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import {
55
} from "@internal/datastore";
66
import { mockDeep } from "jest-mock-extended";
77
import pino from "pino";
8+
import { MetricStatus } from "@internal/helpers";
89
import {
910
Context,
1011
DynamoDBRecord,
1112
KinesisStreamEvent,
1213
KinesisStreamRecordPayload,
1314
} from "aws-lambda";
15+
import { Unit } from "aws-embedded-metrics";
1416
import { Deps } from "../deps";
1517
import createHandler from "../update-letter-queue";
1618
import { EnvVars } from "../env";
@@ -301,13 +303,14 @@ function assertSuccessMetricLogged(count: number) {
301303
expect.objectContaining({
302304
Metrics: [
303305
expect.objectContaining({
304-
Name: "letters queued successfully",
306+
Name: MetricStatus.Success,
305307
Value: count,
306308
}),
307309
],
308310
}),
309311
]),
310312
}),
313+
success: count,
311314
}),
312315
);
313316
}
@@ -320,13 +323,15 @@ function assertFailureMetricLogged(count: number) {
320323
expect.objectContaining({
321324
Metrics: [
322325
expect.objectContaining({
323-
Name: "letters queued failed",
326+
Name: MetricStatus.Failure,
324327
Value: count,
328+
Unit: Unit.Count,
325329
}),
326330
],
327331
}),
328332
]),
329333
}),
334+
failure: count,
330335
}),
331336
);
332337
}

lambdas/update-letter-queue/src/update-letter-queue.ts

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
} from "aws-lambda";
77
import { unmarshall } from "@aws-sdk/util-dynamodb";
88
import { Unit } from "aws-embedded-metrics";
9+
import { MetricStatus, buildEMFObject } from "@internal/helpers";
910
import {
1011
InsertPendingLetter,
1112
Letter,
@@ -82,8 +83,8 @@ function recordProcessing(
8283
totalProcessed: successCount + failureCount,
8384
});
8485

85-
deps.logger.info(buildMetric("letters queued successfully", successCount));
86-
deps.logger.info(buildMetric("letters queued failed", failureCount));
86+
deps.logger.info(buildMetric(MetricStatus.Success, successCount));
87+
deps.logger.info(buildMetric(MetricStatus.Failure, failureCount));
8788
}
8889

8990
function isNewPendingLetter(record: DynamoDBRecord): boolean {
@@ -135,22 +136,14 @@ function mapLetterToPendingLetter(letter: Letter): InsertPendingLetter {
135136
};
136137
}
137138

138-
function buildMetric(name: string, count: number) {
139-
const namespace =
140-
process.env.AWS_LAMBDA_FUNCTION_NAME || "update-letter-queue";
141-
return {
142-
LogGroup: namespace,
143-
ServiceName: namespace,
144-
_aws: {
145-
Timestamp: Date.now(),
146-
CloudWatchMetrics: [
147-
{
148-
Namespace: namespace,
149-
Dimensions: [["ServiceName", "LogGroup"]],
150-
Metrics: [{ Name: name, Value: count, Unit: Unit.Count }],
151-
},
152-
],
139+
function buildMetric(status: MetricStatus, count: number) {
140+
return buildEMFObject(
141+
"update-letter-queue",
142+
{},
143+
{
144+
key: status,
145+
value: count,
146+
unit: Unit.Count,
153147
},
154-
"events published": count,
155-
};
148+
);
156149
}

0 commit comments

Comments
 (0)