Skip to content

Commit bdfb2f2

Browse files
Add method to loging telemetry of a UI interaction
1 parent 0b6f2c2 commit bdfb2f2

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

extensions/ql-vscode/src/pure/interface-types.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,11 @@ export interface CancelVariantAnalysisMessage {
504504
t: "cancelVariantAnalysis";
505505
}
506506

507+
export interface TelemetryMessage {
508+
t: "telemetry";
509+
action: string;
510+
}
511+
507512
export type ToVariantAnalysisMessage =
508513
| SetVariantAnalysisMessage
509514
| SetRepoResultsMessage
@@ -517,4 +522,5 @@ export type FromVariantAnalysisMessage =
517522
| CopyRepositoryListMessage
518523
| ExportResultsMessage
519524
| OpenLogsMessage
520-
| CancelVariantAnalysisMessage;
525+
| CancelVariantAnalysisMessage
526+
| TelemetryMessage;

extensions/ql-vscode/src/remote-queries/variant-analysis-view.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
VariantAnalysisViewManager,
1818
} from "./variant-analysis-view-manager";
1919
import { showAndLogWarningMessage } from "../helpers";
20+
import { telemetryListener } from "../telemetry";
2021

2122
export class VariantAnalysisView
2223
extends AbstractWebview<ToVariantAnalysisMessage, FromVariantAnalysisMessage>
@@ -149,6 +150,9 @@ export class VariantAnalysisView
149150
case "openLogs":
150151
await this.openLogs();
151152
break;
153+
case "telemetry":
154+
telemetryListener?.sendUIInteraction(msg.action);
155+
break;
152156
default:
153157
assertNever(msg);
154158
}

extensions/ql-vscode/src/telemetry.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,23 @@ export class TelemetryListener extends ConfigListener {
168168
);
169169
}
170170

171+
sendUIInteraction(name: string) {
172+
if (!this.reporter) {
173+
return;
174+
}
175+
176+
const isCanary = (!!CANARY_FEATURES.getValue<boolean>()).toString();
177+
178+
this.reporter.sendTelemetryEvent(
179+
"ui-interaction",
180+
{
181+
name,
182+
isCanary,
183+
},
184+
{},
185+
);
186+
}
187+
171188
/**
172189
* Displays a popup asking the user if they want to enable telemetry
173190
* for this extension.

0 commit comments

Comments
 (0)