summaryrefslogtreecommitdiff
path: root/extension/src/telemetry.ts
diff options
context:
space:
mode:
Diffstat (limited to 'extension/src/telemetry.ts')
-rw-r--r--extension/src/telemetry.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/extension/src/telemetry.ts b/extension/src/telemetry.ts
new file mode 100644
index 00000000..ea71a545
--- /dev/null
+++ b/extension/src/telemetry.ts
@@ -0,0 +1,51 @@
+import * as Segment from "@segment/analytics-node";
+import * as vscode from "vscode";
+
+// Setup Segment
+const SEGMENT_WRITE_KEY = "57yy2uYXH2bwMuy7djm9PorfFlYqbJL1";
+const analytics = new Segment.Analytics({ writeKey: SEGMENT_WRITE_KEY });
+analytics.identify({
+ userId: vscode.env.machineId,
+ // traits: {
+ // name: "Michael Bolton",
+ // email: "mbolton@example.com",
+ // createdAt: new Date("2014-06-14T02:00:19.467Z"),
+ // },
+});
+
+// Enum of telemetry events
+export enum TelemetryEvent {
+ // Extension has been activated
+ ExtensionActivated = "ExtensionActivated",
+ // Suggestion has been accepted
+ SuggestionAccepted = "SuggestionAccepted",
+ // Suggestion has been rejected
+ SuggestionRejected = "SuggestionRejected",
+ // Queried universal prompt
+ UniversalPromptQuery = "UniversalPromptQuery",
+ // `Explain Code` button clicked
+ ExplainCode = "ExplainCode",
+ // `Generate Ideas` button clicked
+ GenerateIdeas = "GenerateIdeas",
+ // `Suggest Fix` button clicked
+ SuggestFix = "SuggestFix",
+ // `Create Test` button clicked
+ CreateTest = "CreateTest",
+ // `AutoDebug This Test` button clicked
+ AutoDebugThisTest = "AutoDebugThisTest",
+ // Command run to generate docstring
+ GenerateDocstring = "GenerateDocstring",
+}
+
+export function sendTelemetryEvent(
+ event: TelemetryEvent,
+ properties?: Record<string, any>
+) {
+ if (!vscode.env.isTelemetryEnabled) return;
+
+ analytics.track({
+ event,
+ userId: vscode.env.machineId,
+ properties,
+ });
+} \ No newline at end of file