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