From 474a5dd4f2c4c3332b2e53b7b9009ba2abccab33 Mon Sep 17 00:00:00 2001 From: Joseph T Lyons Date: Fri, 4 Nov 2022 14:16:12 -0400 Subject: [PATCH] Make `App` a user property in Mixpanel Currently, we cannot take advantage of Mixpanel's virtual session end events because they are associated with users, not events; this change moves the property onto users. Co-Authored-By: Max Brunsfeld --- crates/client/src/telemetry.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 1a0238cd0f..f8e7d161c3 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -32,7 +32,6 @@ pub struct Telemetry { struct TelemetryState { metrics_id: Option>, device_id: Option>, - app: &'static str, app_version: Option>, release_channel: Option<&'static str>, os_version: Option>, @@ -80,8 +79,6 @@ struct MixpanelEventProperties { app_version: Option>, #[serde(rename = "Signed In")] signed_in: bool, - #[serde(rename = "App")] - app: &'static str, } #[derive(Serialize)] @@ -120,7 +117,6 @@ impl Telemetry { state: Mutex::new(TelemetryState { os_version: platform.os_version().ok().map(|v| v.to_string().into()), os_name: platform.os_name().into(), - app: "Zed", app_version: platform.app_version().ok().map(|v| v.to_string().into()), release_channel, device_id: None, @@ -205,7 +201,11 @@ impl Telemetry { let json_bytes = serde_json::to_vec(&[MixpanelEngageRequest { token, distinct_id: device_id, - set: json!({ "Staff": is_staff, "ID": metrics_id }), + set: json!({ + "Staff": is_staff, + "ID": metrics_id, + "App": true + }), }])?; let request = Request::post(MIXPANEL_ENGAGE_URL) .header("Content-Type", "application/json") @@ -241,7 +241,6 @@ impl Telemetry { release_channel: state.release_channel, app_version: state.app_version.clone(), signed_in: state.metrics_id.is_some(), - app: state.app, }, }; state.queue.push(event);