Add method to loging telemetry of a UI interaction

This commit is contained in:
Robert
2023-01-11 12:02:18 +00:00
parent 0b6f2c248b
commit bdfb2f29da
3 changed files with 28 additions and 1 deletions

View File

@@ -504,6 +504,11 @@ export interface CancelVariantAnalysisMessage {
t: "cancelVariantAnalysis";
}
export interface TelemetryMessage {
t: "telemetry";
action: string;
}
export type ToVariantAnalysisMessage =
| SetVariantAnalysisMessage
| SetRepoResultsMessage
@@ -517,4 +522,5 @@ export type FromVariantAnalysisMessage =
| CopyRepositoryListMessage
| ExportResultsMessage
| OpenLogsMessage
| CancelVariantAnalysisMessage;
| CancelVariantAnalysisMessage
| TelemetryMessage;

View File

@@ -17,6 +17,7 @@ import {
VariantAnalysisViewManager,
} from "./variant-analysis-view-manager";
import { showAndLogWarningMessage } from "../helpers";
import { telemetryListener } from "../telemetry";
export class VariantAnalysisView
extends AbstractWebview<ToVariantAnalysisMessage, FromVariantAnalysisMessage>
@@ -149,6 +150,9 @@ export class VariantAnalysisView
case "openLogs":
await this.openLogs();
break;
case "telemetry":
telemetryListener?.sendUIInteraction(msg.action);
break;
default:
assertNever(msg);
}

View File

@@ -168,6 +168,23 @@ export class TelemetryListener extends ConfigListener {
);
}
sendUIInteraction(name: string) {
if (!this.reporter) {
return;
}
const isCanary = (!!CANARY_FEATURES.getValue<boolean>()).toString();
this.reporter.sendTelemetryEvent(
"ui-interaction",
{
name,
isCanary,
},
{},
);
}
/**
* Displays a popup asking the user if they want to enable telemetry
* for this extension.