Add is_via_ssh field to editor events (#18837)

Joseph T. Lyons created

Release Notes:

- N/A

Change summary

crates/client/src/telemetry.rs                  | 2 ++
crates/collab/src/api/events.rs                 | 2 ++
crates/editor/src/editor.rs                     | 4 +++-
crates/telemetry_events/src/telemetry_events.rs | 2 ++
4 files changed, 9 insertions(+), 1 deletion(-)

Detailed changes

crates/client/src/telemetry.rs 🔗

@@ -364,6 +364,7 @@ impl Telemetry {
         operation: &'static str,
         copilot_enabled: bool,
         copilot_enabled_for_language: bool,
+        is_via_ssh: bool,
     ) {
         let event = Event::Editor(EditorEvent {
             file_extension,
@@ -371,6 +372,7 @@ impl Telemetry {
             operation: operation.into(),
             copilot_enabled,
             copilot_enabled_for_language,
+            is_via_ssh,
         });
 
         self.report_event(event)

crates/collab/src/api/events.rs 🔗

@@ -679,6 +679,7 @@ pub struct EditorEventRow {
     minor: Option<i32>,
     patch: Option<i32>,
     checksum_matched: bool,
+    is_via_ssh: bool,
 }
 
 impl EditorEventRow {
@@ -720,6 +721,7 @@ impl EditorEventRow {
             region_code: "".to_string(),
             city: "".to_string(),
             historical_event: false,
+            is_via_ssh: event.is_via_ssh,
         }
     }
 }

crates/editor/src/editor.rs 🔗

@@ -12481,13 +12481,15 @@ impl Editor {
             .settings_at(0, cx)
             .show_inline_completions;
 
-        let telemetry = project.read(cx).client().telemetry().clone();
+        let project = project.read(cx);
+        let telemetry = project.client().telemetry().clone();
         telemetry.report_editor_event(
             file_extension,
             vim_mode,
             operation,
             copilot_enabled,
             copilot_enabled_for_language,
+            project.is_via_ssh(),
         )
     }
 

crates/telemetry_events/src/telemetry_events.rs 🔗

@@ -117,6 +117,8 @@ pub struct EditorEvent {
     pub copilot_enabled: bool,
     /// Whether the user has copilot enabled for the language of the file opened or saved
     pub copilot_enabled_for_language: bool,
+    /// Whether the client is editing a local file or a remote file via SSH
+    pub is_via_ssh: bool,
 }
 
 /// Deprecated since Zed v0.137.0 (2024-05-29). Replaced by InlineCompletionEvent.