|
6 | 6 | } from "aws-lambda"; |
7 | 7 | import { unmarshall } from "@aws-sdk/util-dynamodb"; |
8 | 8 | import { Unit } from "aws-embedded-metrics"; |
| 9 | +import { MetricStatus, buildEMFObject } from "@internal/helpers"; |
9 | 10 | import { |
10 | 11 | InsertPendingLetter, |
11 | 12 | Letter, |
@@ -82,8 +83,8 @@ function recordProcessing( |
82 | 83 | totalProcessed: successCount + failureCount, |
83 | 84 | }); |
84 | 85 |
|
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)); |
87 | 88 | } |
88 | 89 |
|
89 | 90 | function isNewPendingLetter(record: DynamoDBRecord): boolean { |
@@ -135,22 +136,14 @@ function mapLetterToPendingLetter(letter: Letter): InsertPendingLetter { |
135 | 136 | }; |
136 | 137 | } |
137 | 138 |
|
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, |
153 | 147 | }, |
154 | | - "events published": count, |
155 | | - }; |
| 148 | + ); |
156 | 149 | } |
0 commit comments