Skip to content

Commit 1d20bd6

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

File tree

2 files changed

+67
-200
lines changed

2 files changed

+67
-200
lines changed

src/plugins/setup.ts

Lines changed: 56 additions & 23 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",
@@ -57,19 +51,18 @@ export default createPlugin(
5751
},
5852
async (progress, cancellationToken) => {
5953
/////////////////////////////////////////////////////////////////////
60-
let cliInstallSkipped: boolean = false;
61-
let authenticationSkipped: boolean = false;
54+
let cliStatus: "COMPLETED" | "SKIPPED" = "COMPLETED";
55+
let authenticationStatus: "COMPLETED" | "SKIPPED" = "COMPLETED";
6256
{
6357
const installationStartedAt = new Date().toISOString();
64-
6558
const { cancelled, skipped } = await runInstallProcess(
6659
progress,
6760
cancellationToken,
6861
outputChannel,
6962
telemetry,
7063
origin_trigger,
7164
);
72-
cliInstallSkipped = skipped === true;
65+
cliStatus = skipped === true ? "SKIPPED" : "COMPLETED";
7366
if (cancelled || cancellationToken.isCancellationRequested) {
7467
telemetry.track({
7568
name: "emulator_installed",
@@ -82,7 +75,15 @@ export default createPlugin(
8275
status: "CANCELLED",
8376
},
8477
});
85-
telemetry.track(get_setup_ended_on_cli_setup_cancelled());
78+
telemetry.track(
79+
get_setup_ended(
80+
cliStatus,
81+
"SKIPPED",
82+
"SKIPPED",
83+
"SKIPPED",
84+
"CANCELLED",
85+
),
86+
);
8687
return;
8788
}
8889
}
@@ -113,14 +114,23 @@ export default createPlugin(
113114
status: "CANCELLED",
114115
},
115116
});
116-
telemetry.track(get_setup_ended_on_authentication_cancelled());
117+
telemetry.track(
118+
get_setup_ended(
119+
cliStatus,
120+
"CANCELLED",
121+
"SKIPPED",
122+
"SKIPPED",
123+
"CANCELLED",
124+
await readAuthToken(),
125+
),
126+
);
117127
return;
118128
}
119129
if (authenticated) {
120130
progress.report({
121131
message: "Skipping authentication...",
122132
});
123-
authenticationSkipped = true;
133+
authenticationStatus = "SKIPPED";
124134
telemetry.track({
125135
name: "auth_token_configured",
126136
payload: {
@@ -160,7 +170,14 @@ export default createPlugin(
160170
},
161171
});
162172
telemetry.track(
163-
get_setup_ended_on_authentication_cancelled(),
173+
get_setup_ended(
174+
cliStatus,
175+
"CANCELLED",
176+
"SKIPPED",
177+
"SKIPPED",
178+
"CANCELLED",
179+
await readAuthToken(),
180+
),
164181
);
165182
return;
166183
}
@@ -184,7 +201,14 @@ export default createPlugin(
184201
},
185202
});
186203
telemetry.track(
187-
get_setup_ended_on_authentication_cancelled(authToken),
204+
get_setup_ended(
205+
cliStatus,
206+
"CANCELLED",
207+
"SKIPPED",
208+
"SKIPPED",
209+
"CANCELLED",
210+
authToken,
211+
),
188212
);
189213
return;
190214
}
@@ -231,7 +255,12 @@ export default createPlugin(
231255
},
232256
});
233257
telemetry.track(
234-
get_setup_ended_on_license_setup_cancelled(
258+
get_setup_ended(
259+
cliStatus,
260+
authenticationStatus,
261+
"CANCELLED",
262+
"SKIPPED",
263+
"CANCELLED",
235264
await readAuthToken(),
236265
),
237266
);
@@ -279,7 +308,12 @@ export default createPlugin(
279308

280309
if (cancellationToken.isCancellationRequested) {
281310
telemetry.track(
282-
get_setup_ended_on_image_prefetch_cancelled(
311+
get_setup_ended(
312+
cliStatus,
313+
authenticationStatus,
314+
"COMPLETED",
315+
"COMPLETED",
316+
"CANCELLED",
283317
await readAuthToken(),
284318
),
285319
);
@@ -311,14 +345,13 @@ export default createPlugin(
311345
});
312346
}
313347

314-
const cliStatus = cliInstallSkipped ? "SKIPPED" : "COMPLETED";
315-
const authenticationStatus = authenticationSkipped
316-
? "SKIPPED"
317-
: "COMPLETED";
318348
telemetry.track(
319-
get_setup_ended_completed(
349+
get_setup_ended(
320350
cliStatus,
321351
authenticationStatus,
352+
"COMPLETED",
353+
"COMPLETED",
354+
"COMPLETED",
322355
await readAuthToken(),
323356
),
324357
);

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)