Skip to content

Commit 776fefa

Browse files
committed
Simplify tracking of setup_ended events
1 parent 42a8861 commit 776fefa

File tree

2 files changed

+67
-198
lines changed

2 files changed

+67
-198
lines changed

src/plugins/setup.ts

Lines changed: 56 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,7 @@ import {
1616
} from "../utils/license.ts";
1717
import { minDelay } from "../utils/promises.ts";
1818
import { updateDockerImage } from "../utils/setup.ts";
19-
import {
20-
get_setup_ended_on_image_prefetch_cancelled,
21-
get_setup_ended_on_authentication_cancelled,
22-
get_setup_ended_on_cli_setup_cancelled,
23-
get_setup_ended_on_license_setup_cancelled,
24-
get_setup_ended_completed,
25-
} from "../utils/telemetry.ts";
19+
import { get_setup_ended } from "../utils/telemetry.ts";
2620

2721
export default createPlugin(
2822
"setup",
@@ -58,10 +52,10 @@ export default createPlugin(
5852
async (progress, cancellationToken) => {
5953
/////////////////////////////////////////////////////////////////////
6054
let cliInstallSkipped: boolean = false;
61-
let authenticationSkipped: boolean = false;
55+
let cliStatus: "COMPLETED" | "SKIPPED" = "COMPLETED";
56+
let authenticationStatus: "COMPLETED" | "SKIPPED" = "COMPLETED";
6257
{
6358
const installationStartedAt = new Date().toISOString();
64-
6559
const { cancelled, skipped } = await runInstallProcess(
6660
progress,
6761
cancellationToken,
@@ -70,6 +64,7 @@ export default createPlugin(
7064
origin_trigger,
7165
);
7266
cliInstallSkipped = skipped === true;
67+
cliStatus = skipped ? "SKIPPED" : "COMPLETED";
7368
if (cancelled || cancellationToken.isCancellationRequested) {
7469
telemetry.track({
7570
name: "emulator_installed",
@@ -82,7 +77,15 @@ export default createPlugin(
8277
status: "CANCELLED",
8378
},
8479
});
85-
telemetry.track(get_setup_ended_on_cli_setup_cancelled());
80+
telemetry.track(
81+
get_setup_ended(
82+
cliStatus,
83+
"SKIPPED",
84+
"SKIPPED",
85+
"SKIPPED",
86+
"CANCELLED",
87+
),
88+
);
8689
return;
8790
}
8891
}
@@ -113,14 +116,23 @@ export default createPlugin(
113116
status: "CANCELLED",
114117
},
115118
});
116-
telemetry.track(get_setup_ended_on_authentication_cancelled());
119+
telemetry.track(
120+
get_setup_ended(
121+
cliStatus,
122+
"CANCELLED",
123+
"SKIPPED",
124+
"SKIPPED",
125+
"CANCELLED",
126+
await readAuthToken(),
127+
),
128+
);
117129
return;
118130
}
119131
if (authenticated) {
120132
progress.report({
121133
message: "Skipping authentication...",
122134
});
123-
authenticationSkipped = true;
135+
authenticationStatus = "SKIPPED";
124136
telemetry.track({
125137
name: "auth_token_configured",
126138
payload: {
@@ -160,7 +172,14 @@ export default createPlugin(
160172
},
161173
});
162174
telemetry.track(
163-
get_setup_ended_on_authentication_cancelled(),
175+
get_setup_ended(
176+
cliStatus,
177+
"CANCELLED",
178+
"SKIPPED",
179+
"SKIPPED",
180+
"CANCELLED",
181+
await readAuthToken(),
182+
),
164183
);
165184
return;
166185
}
@@ -184,7 +203,14 @@ export default createPlugin(
184203
},
185204
});
186205
telemetry.track(
187-
get_setup_ended_on_authentication_cancelled(authToken),
206+
get_setup_ended(
207+
cliStatus,
208+
"CANCELLED",
209+
"SKIPPED",
210+
"SKIPPED",
211+
"CANCELLED",
212+
authToken,
213+
),
188214
);
189215
return;
190216
}
@@ -231,7 +257,12 @@ export default createPlugin(
231257
},
232258
});
233259
telemetry.track(
234-
get_setup_ended_on_license_setup_cancelled(
260+
get_setup_ended(
261+
cliStatus,
262+
authenticationStatus,
263+
"CANCELLED",
264+
"SKIPPED",
265+
"CANCELLED",
235266
await readAuthToken(),
236267
),
237268
);
@@ -279,7 +310,12 @@ export default createPlugin(
279310

280311
if (cancellationToken.isCancellationRequested) {
281312
telemetry.track(
282-
get_setup_ended_on_image_prefetch_cancelled(
313+
get_setup_ended(
314+
cliStatus,
315+
authenticationStatus,
316+
"COMPLETED",
317+
"COMPLETED",
318+
"CANCELLED",
283319
await readAuthToken(),
284320
),
285321
);
@@ -311,14 +347,13 @@ export default createPlugin(
311347
});
312348
}
313349

314-
const cliStatus = cliInstallSkipped ? "SKIPPED" : "COMPLETED";
315-
const authenticationStatus = authenticationSkipped
316-
? "SKIPPED"
317-
: "COMPLETED";
318350
telemetry.track(
319-
get_setup_ended_completed(
351+
get_setup_ended(
320352
cliStatus,
321353
authenticationStatus,
354+
"COMPLETED",
355+
"COMPLETED",
356+
"COMPLETED",
322357
await readAuthToken(),
323358
),
324359
);

src/utils/telemetry.ts

Lines changed: 11 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -214,179 +214,13 @@ export function createTelemetry(
214214
};
215215
}
216216

217-
export function get_setup_ended_on_cli_setup_cancelled(): Events {
218-
return {
219-
name: "setup_ended",
220-
payload: {
221-
namespace: "onboarding",
222-
steps: [
223-
{
224-
name: "emulator_installed",
225-
is_first_step: true,
226-
is_last_step: false,
227-
step_order: 1,
228-
status: "CANCELLED",
229-
},
230-
{
231-
name: "auth_token_configured",
232-
is_first_step: false,
233-
is_last_step: false,
234-
step_order: 2,
235-
status: "SKIPPED",
236-
},
237-
{
238-
name: "license_setup_ended",
239-
is_first_step: false,
240-
is_last_step: false,
241-
step_order: 3,
242-
status: "SKIPPED",
243-
},
244-
{
245-
name: "aws_profile_configured",
246-
is_first_step: false,
247-
is_last_step: true,
248-
step_order: 4,
249-
status: "SKIPPED",
250-
},
251-
],
252-
status: "CANCELLED",
253-
},
254-
};
255-
}
256-
257-
export function get_setup_ended_on_authentication_cancelled(
258-
authToken: string = "",
259-
): Events {
260-
return {
261-
name: "setup_ended",
262-
payload: {
263-
namespace: "onboarding",
264-
steps: [
265-
{
266-
name: "emulator_installed",
267-
is_first_step: true,
268-
is_last_step: false,
269-
step_order: 1,
270-
status: "COMPLETED",
271-
},
272-
{
273-
name: "auth_token_configured",
274-
is_first_step: false,
275-
is_last_step: false,
276-
step_order: 2,
277-
status: "CANCELLED",
278-
},
279-
{
280-
name: "license_setup_ended",
281-
is_first_step: false,
282-
is_last_step: false,
283-
step_order: 3,
284-
status: "SKIPPED",
285-
},
286-
{
287-
name: "aws_profile_configured",
288-
is_first_step: false,
289-
is_last_step: true,
290-
step_order: 4,
291-
status: "SKIPPED",
292-
},
293-
],
294-
status: "CANCELLED",
295-
auth_token: authToken,
296-
},
297-
};
298-
}
299-
300-
export function get_setup_ended_on_license_setup_cancelled(
301-
auth_token: string,
302-
): Events {
303-
return {
304-
name: "setup_ended",
305-
payload: {
306-
namespace: "onboarding",
307-
steps: [
308-
{
309-
name: "emulator_installed",
310-
is_first_step: true,
311-
is_last_step: false,
312-
step_order: 1,
313-
status: "COMPLETED",
314-
},
315-
{
316-
name: "auth_token_configured",
317-
is_first_step: false,
318-
is_last_step: false,
319-
step_order: 2,
320-
status: "COMPLETED",
321-
},
322-
{
323-
name: "license_setup_ended",
324-
is_first_step: false,
325-
is_last_step: false,
326-
step_order: 3,
327-
status: "CANCELLED",
328-
},
329-
{
330-
name: "aws_profile_configured",
331-
is_first_step: false,
332-
is_last_step: true,
333-
step_order: 4,
334-
status: "SKIPPED",
335-
},
336-
],
337-
status: "CANCELLED",
338-
auth_token: auth_token,
339-
},
340-
};
341-
}
342-
343-
export function get_setup_ended_on_image_prefetch_cancelled(
344-
auth_token: string,
345-
): Events {
346-
return {
347-
name: "setup_ended",
348-
payload: {
349-
namespace: "onboarding",
350-
steps: [
351-
{
352-
name: "emulator_installed",
353-
is_first_step: true,
354-
is_last_step: false,
355-
step_order: 1,
356-
status: "COMPLETED",
357-
},
358-
{
359-
name: "auth_token_configured",
360-
is_first_step: false,
361-
is_last_step: false,
362-
step_order: 2,
363-
status: "COMPLETED",
364-
},
365-
{
366-
name: "license_setup_ended",
367-
is_first_step: false,
368-
is_last_step: false,
369-
step_order: 3,
370-
status: "COMPLETED",
371-
},
372-
{
373-
name: "aws_profile_configured",
374-
is_first_step: false,
375-
is_last_step: true,
376-
step_order: 4,
377-
status: "COMPLETED",
378-
},
379-
],
380-
status: "CANCELLED",
381-
auth_token: auth_token,
382-
},
383-
};
384-
}
385-
386-
export function get_setup_ended_completed(
387-
cli_status: "COMPLETED" | "SKIPPED",
388-
authentication_status: "COMPLETED" | "SKIPPED",
389-
auth_token: string,
217+
export function get_setup_ended(
218+
cli_status: "COMPLETED" | "SKIPPED" | "CANCELLED",
219+
authentication_status: "COMPLETED" | "SKIPPED" | "CANCELLED",
220+
license_setup_status: "COMPLETED" | "SKIPPED" | "CANCELLED",
221+
aws_profile_status: "COMPLETED" | "SKIPPED" | "CANCELLED",
222+
overall_status: "CANCELLED" | "COMPLETED",
223+
auth_token: string = "",
390224
): Events {
391225
return {
392226
name: "setup_ended",
@@ -412,18 +246,18 @@ export function get_setup_ended_completed(
412246
is_first_step: false,
413247
is_last_step: false,
414248
step_order: 3,
415-
status: "COMPLETED",
249+
status: license_setup_status,
416250
},
417251
{
418252
name: "aws_profile_configured",
419253
is_first_step: false,
420254
is_last_step: true,
421255
step_order: 4,
422-
status: "COMPLETED",
256+
status: aws_profile_status,
423257
},
424258
],
425-
status: "COMPLETED",
426-
auth_token: auth_token,
259+
status: overall_status,
260+
auth_token,
427261
},
428262
};
429263
}

0 commit comments

Comments
 (0)