# Telemetry ## How it works - We use Segment to record telemetry about user actions - We record client-side and server-side events - This data is sent to a Google BigQuery data warehouse - Data is only updated daily on the free version of Segment - You can query this data using the Trevor.io tool ## What we track ### Event Every time a user takes an action that triggers one of the event types below, we record the VS Code machine ID, time of the event, and the type of event as well as some additional properties for some of the events. ### Event types #### ExtensionActivated Description: Recorded when the VS Code extension is activated. Location: Client Properties - user_id #### SuggestionAccepted Description: Recorded when a code fix suggestion is accepted. Location: Client Properties - user_id #### SuggestionRejected Description: Recorded when a code fix suggestion is rejected. Location: Client Properties - user_id #### UniversalPromptQuery Description: Recorded when a user asks a question to the prompt opened by `cmd+shift+j` on MacOS or `ctrl+shift+j` on Windows. Location: Client Properties - user_id - question #### ExplainCode Description: Recorded when the `Explain Code` button is clicked. Location: Client Properties - user_id #### GenerateIdeas Description: Recorded when the `Generate Ideas` button is clicked. Location: Client Properties - user_id #### SuggestFix Description: Recorded when the `Suggest Fix` button is clicked. Location: Client Properties - user_id #### CreateTest Description: Recorded when the `Create Test` button is clicked. Location: Client Properties - user_id #### DebugThisTest Description: Recorded when the `Debug This Test` button is clicked. Location: Client Properties - user_id #### GenerateDocstring Description: Recorded when a user generates a docstring for a function using `cmd+shift+l` on MacOS or `ctrl+shift+l` on Windows. Location: Client Properties - user_id #### CodeExplained Description: Recorded when the server generates a code explanation. Location: Server Properties - user_id - language - traceback - bug_description - ranges_in_files - filesystem - explanation #### IdeasGenerated Description: Recorded when the server generates ideas for how to fix. Location: Server Properties - user_id - language - traceback - bug_description - ranges_in_files - filesystem - ideas #### FixSuggested Description: Recorded when the server generates a suggested fix. Location: Server Properties - user_id - language - traceback - bug_description - ranges_in_files - filesystem - suggestion #### TestCreated Description: Recorded when the server generates a unit test. Location: Server Properties - user_id - language - ranges_in_files - filesystem - generated_test #### DocstringGenerated Description: Recorded when the server generates a docstring. Location: Server Properties - user_id - language - ranges_in_files - filesystem - docstring - line_num ### Future Ideas Client side - Collect `Enable Highlight` button clicked - Collect `Disable Highlight` button clicked - Collect the files that were edited - Collect the code at a later time to see what it ultimately ended up - Collect when a debugging session starts - Collect when a debugging session ends - Add an ID for bugs based on debugging window (plus, new stack trace)