Skip to content

Commit b827893

Browse files
authored
Add wrangler version components to metrics properties (#11673)
* test: add parsed wrangler version components to metrics events * Added changeset
1 parent b993d95 commit b827893

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

.changeset/young-crews-learn.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"wrangler": minor
3+
---
4+
5+
Breaks out version numbers into sortable number types for analytics logging

packages/wrangler/src/__tests__/metrics.test.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,28 @@ describe("metrics", () => {
9292
await Promise.all(dispatcher.requests);
9393
expect(requests.count).toBe(1);
9494
expect(std.debug).toMatchInlineSnapshot(
95-
`"Metrics dispatcher: Posting data {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}"`
95+
`"Metrics dispatcher: Posting data {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"wranglerMajorVersion\\":1,\\"wranglerMinorVersion\\":2,\\"wranglerPatchVersion\\":3,\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}"`
9696
);
9797
expect(std.out).toMatchInlineSnapshot(`""`);
9898
expect(std.warn).toMatchInlineSnapshot(`""`);
9999
expect(std.err).toMatchInlineSnapshot(`""`);
100100
});
101101

102+
it("should include parsed wrangler version components in events", async () => {
103+
const requests = mockMetricRequest();
104+
105+
const dispatcher = getMetricsDispatcher({
106+
sendMetrics: true,
107+
});
108+
dispatcher.sendAdhocEvent("version-test");
109+
await Promise.all(dispatcher.requests);
110+
expect(requests.count).toBe(1);
111+
expect(std.debug).toContain('"wranglerVersion":"1.2.3"');
112+
expect(std.debug).toContain('"wranglerMajorVersion":1');
113+
expect(std.debug).toContain('"wranglerMinorVersion":2');
114+
expect(std.debug).toContain('"wranglerPatchVersion":3');
115+
});
116+
102117
it("should write a debug log if the dispatcher is disabled", async () => {
103118
const requests = mockMetricRequest();
104119
const dispatcher = getMetricsDispatcher({
@@ -108,7 +123,7 @@ describe("metrics", () => {
108123

109124
expect(requests.count).toBe(0);
110125
expect(std.debug).toMatchInlineSnapshot(
111-
`"Metrics dispatcher: Dispatching disabled - would have sent {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}."`
126+
`"Metrics dispatcher: Dispatching disabled - would have sent {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"wranglerMajorVersion\\":1,\\"wranglerMinorVersion\\":2,\\"wranglerPatchVersion\\":3,\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}."`
112127
);
113128
expect(std.out).toMatchInlineSnapshot(`""`);
114129
expect(std.warn).toMatchInlineSnapshot(`""`);
@@ -128,7 +143,7 @@ describe("metrics", () => {
128143
await Promise.all(dispatcher.requests);
129144

130145
expect(std.debug).toMatchInlineSnapshot(`
131-
"Metrics dispatcher: Posting data {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}
146+
"Metrics dispatcher: Posting data {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"wranglerMajorVersion\\":1,\\"wranglerMinorVersion\\":2,\\"wranglerPatchVersion\\":3,\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}
132147
Metrics dispatcher: Failed to send request: Failed to fetch"
133148
`);
134149
expect(std.out).toMatchInlineSnapshot(`""`);
@@ -147,7 +162,7 @@ describe("metrics", () => {
147162

148163
expect(requests.count).toBe(0);
149164
expect(std.debug).toMatchInlineSnapshot(
150-
`"Metrics dispatcher: Source Key not provided. Be sure to initialize before sending events {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}"`
165+
`"Metrics dispatcher: Source Key not provided. Be sure to initialize before sending events {\\"deviceId\\":\\"f82b1f46-eb7b-4154-aa9f-ce95f23b2288\\",\\"event\\":\\"some-event\\",\\"timestamp\\":1733961600000,\\"properties\\":{\\"category\\":\\"Workers\\",\\"wranglerVersion\\":\\"1.2.3\\",\\"wranglerMajorVersion\\":1,\\"wranglerMinorVersion\\":2,\\"wranglerPatchVersion\\":3,\\"os\\":\\"foo:bar\\",\\"a\\":1,\\"b\\":2}}"`
151166
);
152167
expect(std.out).toMatchInlineSnapshot(`""`);
153168
expect(std.warn).toMatchInlineSnapshot(`""`);

packages/wrangler/src/metrics/metrics-dispatcher.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ export function getMetricsDispatcher(options: MetricsConfigOptions) {
5959
const SPARROW_SOURCE_KEY = process.env.SPARROW_SOURCE_KEY ?? "";
6060
const requests: Array<Promise<void>> = [];
6161
const wranglerVersion = getWranglerVersion();
62+
const [wranglerMajorVersion, wranglerMinorVersion, wranglerPatchVersion] =
63+
wranglerVersion.split(".").map((v) => parseInt(v, 10));
6264
const amplitude_session_id = Date.now();
6365
let amplitude_event_id = 0;
6466

@@ -76,6 +78,9 @@ export function getMetricsDispatcher(options: MetricsConfigOptions) {
7678
properties: {
7779
category: "Workers",
7880
wranglerVersion,
81+
wranglerMajorVersion,
82+
wranglerMinorVersion,
83+
wranglerPatchVersion,
7984
os: getOS(),
8085
...properties,
8186
},

0 commit comments

Comments
 (0)