From 6fd36a8e62a010ebb92ff2f08edfa63f21ed0902 Mon Sep 17 00:00:00 2001 From: Thomas Bouldin Date: Wed, 15 Dec 2021 12:52:20 -0800 Subject: [PATCH] Count the number of regions deployed to (#3948) * Count the number of regions deployed to * Add test Co-authored-by: Daniel Lee --- src/deploy/functions/release/reporter.ts | 5 +++++ src/test/deploy/functions/release/reporter.spec.ts | 1 + 2 files changed, 6 insertions(+) diff --git a/src/deploy/functions/release/reporter.ts b/src/deploy/functions/release/reporter.ts index 53ed63dde8b..87eeebe9b7a 100644 --- a/src/deploy/functions/release/reporter.ts +++ b/src/deploy/functions/release/reporter.ts @@ -59,8 +59,10 @@ export async function logAndTrackDeployStats(summary: Summary): Promise { let totalAborts = 0; const reports: Array> = []; + const regions = new Set(); for (const result of summary.results) { const tag = triggerTag(result.endpoint); + regions.add(result.endpoint.region); totalTime += result.durationMs; if (!result.error) { totalSuccesses++; @@ -74,6 +76,9 @@ export async function logAndTrackDeployStats(summary: Summary): Promise { } } + const regionCountTag = regions.size < 5 ? regions.size.toString() : ">=5"; + reports.push(track.track("functions_region_count", regionCountTag, 1)); + const gcfv1 = summary.results.find((r) => r.endpoint.platform === "gcfv1"); const gcfv2 = summary.results.find((r) => r.endpoint.platform === "gcfv2"); const tag = gcfv1 && gcfv2 ? "v1+v2" : gcfv1 ? "v1" : "v2"; diff --git a/src/test/deploy/functions/release/reporter.spec.ts b/src/test/deploy/functions/release/reporter.spec.ts index c87886e37a4..d2727022e7d 100644 --- a/src/test/deploy/functions/release/reporter.spec.ts +++ b/src/test/deploy/functions/release/reporter.spec.ts @@ -132,6 +132,7 @@ describe("reporter", () => { await reporter.logAndTrackDeployStats(summary); + expect(trackStub).to.have.been.calledWith("functions_region_count", "1", 1); expect(trackStub).to.have.been.calledWith("function_deploy_success", "v1.https", 2_000); expect(trackStub).to.have.been.calledWith("function_deploy_failure", "v1.https", 1_000); // Aborts aren't tracked because they would throw off timing metrics